Three changes to the conversation surface, each measured on the running app rather than asserted. All merged.
The cap was 50% of the viewport and never past 800 px, so a 1440 px laptop stopped at 720. The ceiling turned out to live in nine places — eight call sites plus a wrapper default that no call site showed — so raising the shared cap alone would have changed nothing on five drawers.
DockedPanel consumer.EntityDetailDrawer, the surface that would have shown 780 px.DockedPanel through the EntityDetailDrawer wrapper, which carried its own maxWidth = 780 default. Deleting that is what makes the agents drawer read 1134 instead of 780.
It was Clara violet (#F5F3FF), which beside the #007AFF outgoing bubble read as a washed-out second blue. It shipped first as #E9E9EB — and that was still too dark in use.
systemGray5, #E5E5EA — darker than the first attempt, so copying the documented hex would have moved away from the fix. Since iOS 26's Liquid Glass the real bubble is translucent: on a white thread it composites toward white and reads lighter than any solid swatch can, so a flat fill looks heavier than the thing it copies. Apple publishes no hex for the composited result, so rather than invent one this takes the lighter Apple gray that already exists, systemGray6.
TraceDetailBody passes --color-bg-muted, where the old #E9E9EB sat 2/2/4 from its ground and was effectively invisible. That argues for the change, and it means the ground can move per host, not just per theme.
Arrival handed the descent to the browser with behavior: 'smooth', whose duration scales with the distance travelled — so the wait grew with the length of the thread, and the conversations most worth reading were the slowest to become readable.