# Environment and limits

- Before: e34067edef2eba03c1e40bca7d2b2d933ae12b85. After: dd3b029f5325ae8e67ca89f37c426bdbe92449e6.
- Host fs-14, Linux; OpenCode 1.18.18; Node v26.12.1; vite-plus 1.4.0 (global vp 1.3.0); pnpm 12.14.0.
- 15/15 matrix rows captured. Five live scenarios × two SHAs, plus 26 synthetic fixtures per SHA (31 paired fixtures total).
- LIVE: production makeOpenCodeAdapterV2 and real OpenCodeRuntime.layer/SDK, against unmodified real `opencode serve`, fake OpenAI-compatible model `fake/fake`, external serverUrl. Each run uses its own isolated OpenCode XDG homes, fresh synthetic workspace/session, exact pinned checkout and same scenario driver/config. R2 disables auto compaction; R3 makes summary overflow; R4 gates summary until the T3 interrupt call returns. Models are HTTP fixtures; LIVE native session events are never manufactured.
- UNIT: existing adapter.test.ts fixtures/helpers, explicitly synthetic native events/SDK. Captures use stream-handling acknowledgments, promise/Deferred gates and TestClock for command timeout, without sleeps or polling. These are capture cases; 26/26 completing is distinct from assertion coverage. The separate evidence audit passed 202/202 transcript invariant checks.
- The ordered logs correlate observed T3 runtime events and native SDK events; raw native SSE and complete fake-model requests are retained. A queued T3 observer can lag native processing. Therefore live logs also pause the SDK iterator after a real error/compacted/idle is handled and read the adapter's provider-turn snapshot before yielding the next native event. This proves failure timing independently of observer scheduling. These reads do not inject or change native events. Collection continues through native idle even after a baseline T3 failure. `scopeCleanup` marks subsequent teardown; extra native abort/idle events during teardown remain visible in raw logs.
- The external OpenCode server is started/stopped by tracked driver PIDs. The runtime layer's server ledger is a no-op fixture because T3 does not own the external server. Host scaffolding supplies isolated cwd and no attachments/MCP sessions. This does not test server ownership cleanup.
- No T3 dev server or browser was started. No orchestration persistence, persisted failure items, parent delegate notification, client rendering, desktop/mobile path, or OpenCode 2 adapter claim is made. Viewport/theme N/A. No live userdata was seeded or read. No code was committed, pushed, or changed in the PR.
- The requested original adapter suites: before 34 passed; after 36 passed. The head test file against baseline source, filtered to the two new overflow tests: recovery fails (`expected failed to equal completed`), no-compaction guard passes (1 failed, 1 passed; 34 excluded). The archived preliminary and selected guard capture logs complete 24/24 and 26/26 cases respectively.
- Unverified rows: none within the specified minimum LIVE/UNIT matrix. Live native-child task execution, explicit live `/compact`, live EOF disruption, and whole-app persistence are outside this capture's claims.
