Composer footer performance proof

App: real T3 Code development web client and server, isolated fresh databases.
Base: f00afc6cda56ff39a3993e15cf45bede9ca5b63e
Head: 7a51fbdf04c1a432db283f6ff2695f75e47f318e
Environment: same Linux machine, headless Chromium 156.0.8078.4, GPU disabled,
1280x800 viewport, dark theme, 4x CPU throttling through Chrome DevTools Protocol.

Seed with seed.mjs: add a synthetic git project, start devReplay/multi-turn,
then send 19 more messages with --wait to create 20 completed turns.
Run drive.mjs on each app, passing a fresh pairing URL and the seeded thread id.
RECORD_VIDEO=0 WARMUPS=10 selects ten warm-up iterations then nine measured runs.
Each iteration clicks the composer, Ctrl+A/Backspace, waits 2.5 seconds, verifies
it is empty, resets counters, types 'the quick brown fox ' at 150 ms/key,
waits two seconds, and verifies the exact text. No message is sent.
The nine measured runs are consecutive; warm-ups are retained in raw JSON.
No test fixtures or mocked UI are used. Incomplete startup attempts and an
aborted series whose rich-text reset failed are not measurement evidence;
the final driver checks the empty state and exact output on every iteration.
The all-raw directory preserves every saved JSON series, including pilot runs
and the discarded base-timing-2-retry series with its invalid accumulated input.

The DevTools hook installs before React. Component counts use the repository's
render-counter traversal: component PerformedWork flags, skipping bailed-out
subtrees. React render time sums root.current.actualDuration over the window.
Browser Event Timing keydown.duration measures through the next paint, is
quantized in 8 ms increments, and records events of at least 16 ms.
The data also includes a keydown-to-requestAnimationFrame-followed-by-timer proxy.
Per-run percentiles use the nearest-rank definition. The summary is the median
of nine per-run values. It prints the complete range for each metric, so a
lower median alone is not treated as a stable performance proof. Spread means maximum minus minimum across those runs. The primary proof
metric is total React render duration for the 20-character action: its median
improvement is compared with each side's full run range. Browser presentation
latency is a secondary metric and its insufficient margin is reported separately.

The earlier seven-run video-recorded series is retained for transparency.
It showed the render reduction and lower head medians but had wide base timing
variation. A second series disabled video encoding on both sides and used two warm-ups;
it retained a warm-up trend and considerable timing variation. The final series
uses ten warm-ups followed by nine measured runs on each commit, with encoding
disabled on both sides. All complete series remain in the data package. The two final recordings use the same driver with recording enabled, two
warm-ups, and one measured iteration. They show the same scripted action; video timings
are not substituted for the repeated unrecorded measurements.

Final stills require two identical screenshots 500 ms apart. Published app stills
and videos conceal only the machine label. No composer pixels are altered.
Pairing tokens, real user data, machine names, and local workspace paths are
excluded from this package.
