main server source: e5909e53c32a9d5b51caf6352d1f17fd73e86db7 client: real web app, Playwright, /usr/bin/google-chrome provider: @agentclientprotocol/claude-agent-acp, Claude Haiku 4.5 through local proxy real five-tool turn, no mocks or injected provider frames last usage_update: {"used":38593,"size":200000,"cost":{"amount":0.08375305,"currency":"USD"}} idle turn spending: {"inputTokens":50,"outputTokens":670,"cachedReadTokens":227113,"cachedWriteTokens":1373,"totalTokens":229206} persisted provider thread contextUsage: {"usedTokens":229206} pr server source: 698e2e29976948b8833b4ba156c7f1b0ef5ee691 client: real web app, Playwright, /usr/bin/google-chrome provider: @agentclientprotocol/claude-agent-acp, Claude Haiku 4.5 through local proxy real five-tool turn, no mocks or injected provider frames last usage_update: {"used":39655,"size":200000,"cost":{"amount":0.08376335000000001,"currency":"USD"}} idle turn spending: {"inputTokens":50,"outputTokens":762,"cachedReadTokens":195316,"cachedWriteTokens":39601,"totalTokens":235729} persisted provider thread contextUsage: {"usedTokens":39655,"maxTokens":200000,"cost":{"amount":0.08376335000000001,"currency":"USD"}} Nearby behavior through the web composer on the PR: - Claude ACP -> native Codex gpt-6.1-sol: handoff ready/injected; response "return handoff ready." - Native Codex follow-up in the same thread: response "follow-up verified." - Fresh ACP-only thread: two real shell calls completed; idle spending 65888; context 33039/200000 retained with cost; UI tooltip 33k of 200k tokens used. - Both changed existing test files: 68 tests passed on Blacksmith. - Existing head CI: 31 successful, 0 failing, 0 pending. Limits: did not reproduce the exact insufficient-handoff-allowance error, exercise native desktop/mobile, or run a real ACP child session. Mixed-provider tooltip can show an older native Codex turn count; the ACP-only tooltip and persisted provider snapshot were checked separately.