Synthetic UI fixture for the mobile compaction choice

Each commit runs its own unmodified server and Metro bundle, fresh T3 home,
and the same iOS development client on the same pooled phone. No live database
or conversation was copied. The seed uses the app CLI; provider.mjs emits a
synthetic Claude SDK transcript so no paid model or large prompt is needed.
The server persists 248000 tokens and a five-minute prompt-cache TTL. Let that
TTL expire naturally. Set idleCompaction to onReturn (When you return).

Open Idle history, start recording, choose Keep the full history, and inspect
the composer. Base loses the notice. Head retains the kept-history notice and
Compact first. On head, tap Compact first to restore the compaction notice,
then Keep the full history again. No send is required to demonstrate this bug.

Captures crop to the conversation/composer to exclude environment identifiers
and model selectors. No UI content is replaced. The corresponding raw captures
were inspected before cropping and the final crops were inspected too.

AI-assisted; verified with the tests and tools listed above.
