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

Manual real-app proof, web client, OpenCode 1.19.5, two exact commits.
Base: f7b81e1d1115bc7284b39161d3cd6c7f3184eb1c
Head: f07c9c6543a93b019ac10195b5fb99b459fbfac5

No test double replaces T3 or OpenCode. provider-driver.py is a synthetic OpenAI-compatible HTTP endpoint standing in for the remote model. It emits real tool calls through OpenCode, rejects the coding request after large tool output with HTTP 400/context_length_exceeded, accepts OpenCode's compaction-summary request, and supplies the subsequent tool call and final response. The configured context budget is 32000; overflow is deterministically injected when the large tool output reaches the coding request rather than relying on an external vendor's tokenizer. The synthetic endpoint is not a real hosted model.

Fresh databases were created with T3CODE_DEV_SEED=0. Both sides used the same empty committed project, settings, driver and prompt. Each parent calls orchestrator_capabilities, then delegate_task with isolation=worktree and mode=wait. The child emits about 63000 characters of synthetic tool output, hits overflow, compacts, writes recovered.txt, and replies. A separate fresh head run used compaction.auto=false.

Before: child run fails at overflow; parent receives failure before compaction finishes. OpenCode subsequently writes recovered.txt, but the UI has no compaction or final response in that turn.
After: child completes, compaction marker and subsequent output/file diff remain in the active turn; parent receives completion only after recovery finishes.
Control: child fails, no compaction request or recovery file.

Captures: Chromium, 1440x1000 CSS pixels, dark theme, on both commits. Videos crop the right details panel and are scaled to 1140x1000 to exclude private host metadata; stills additionally crop unused lower space to 1140x450. No behavior or transcript text was changed. Videos are continuous captures; navigation/loading is retained. runtime-transcript.json contains only selected persisted run states, endpoint action timestamps and existence of recovered.txt. Raw requests, credentials, host names and internal paths are omitted.

The config files use only a synthetic model identifier and dummy API key. Set their baseURL port to match the driver. T3 settings must enable the opencode instance and disable other real providers.
