Evidence environment, both sides: Web dev servers from independent detached worktrees at the two specified commits. Chromium browser, 1280 x 800 CSS pixels, light theme, same browser profile. Fresh per-worktree databases, automatic real-data seeding disabled. Synthetic Claude protocol executable (included) produces a completed conversation, 250001 context tokens and a five-minute prompt-cache lifetime. No paid turn. Driver seed() is run through the authenticated app WebSocket RPC. Create example.txt containing: Synthetic file for the narrow composer demonstration. Pass the executable and sample-directory locations to seed() at runtime. Wait at least six minutes after each turn to cover cache expiry and the minute clock. Close thread details, open the right panel, choose Files, double-click example.txt. At the default panel width the composer container is already 388 CSS pixels. Record: drag the panel divider toward the thread-details button, reducing the composer to 361 CSS pixels on both sides; hover chip; click Keep; retain pointer for two seconds; click Compact; retain pointer for two seconds; close right panel; observe Compact label; click Keep and observe Keep label; click Compact to restore. Both recordings use this same sequence. The synthetic model label is fixture data. AI-assisted; verified with the tests and tools listed above.