# OpenCode usage runtime proof

Real Linux web app, Chrome 151, 1440x1000, light theme. Two separate checkouts and fresh T3 databases; T3CODE_DEV_SEED=0. Base f313d0a6cb843551fb60e57a454a71e71a3a8c04; head e1f4bb3fd23ef98228b632ca238f1232560e0b08.

Run seed.py with a new fixture-directory argument and retain its process so WAL stays open. Each app runs with OPENCODE_DATA_DIR pointing to that same synthetic fixture. The fixture contains 4096 recent assistant rows, each carrying approximately 540 KB of synthetic history. Initial expected totals: 4,505,600 tokens and $40.96.

Create a project with the app CLI and a replay-provider thread (model multi-turn). Open the web client, pair locally, open Usage, select All environments, OpenCode and 30 days, and wait for the initial load. Other providers are filtered out of the captures; the server still scans its default sources, so whole-refresh timings include that overhead.

Install probe.js through agent-browser eval --stdin in each browser. It only adds an explicitly labelled evidence overlay and fetches the real server's /.well-known/t3/environment through the app proxy every 100 ms. A MutationObserver times the real Refresh usage button's aria-busy interval. It does not alter usage or server responses.

Run capture.py SESSION SIDE SERVER_PID PHASE for each side, sequentially. It records the actual browser refresh and reads Linux /proc/PID/io rchar before/after; rchar includes all server process reads, not just SQLite and not physical disk bytes. Run mutate.py FIXTURE_DIRECTORY once, then repeat the same capture on each side. Mutation adds a 110,000-token/$1 row and increases an existing row by 110,000 tokens/$2. Expected updated totals: 4,725,600 tokens and $43.96.

Finally execute PRAGMA wal_checkpoint(full) against the fixture and repeat on each side. This invalidates the head row cache without changing logical usage and forces real SQLite body reads. For these recordings capture.py also takes CHECKOUT THREAD_ID and sends Concurrent responsiveness probe to an existing replay thread while triggering the Usage refresh. CLI elapsed time includes Node startup and local authentication. Both replies report delivery=started. This measures command acceptance, not completion of the simulated replay stream.

Videos are raw 15 fps browser recordings. Completed stills were taken after freezing only the evidence overlay, with two screenshots 500 ms apart verified pixel-identical. Captures were inspected through extracted video frames/contact sheets and full-size stills. Runtime metrics contain only synthetic fixture results and measured counters. No tests are used as evidence.

Limits: this is an OpenCode-compatible synthetic WAL database, not history generated by a paid live OpenCode turn. No desktop shell, remote environment, connection timeout, or multi-minute scan is claimed. No per-SQL read tracing is claimed; row reuse and event-loop responsiveness are demonstrated by process I/O and concurrent real-server latency.
