Skip to content

fix(acp): keep one answer through tool progress - #868

Merged
rynfar merged 2 commits into
pylonfrom
upstream/2026-09-26-acp-progress-boundary
Sep 27, 2026
Merged

rynfar merged 2 commits into
pylonfrom
upstream/2026-09-26-acp-progress-boundary

Conversation

@rynfar

@rynfar rynfar commented Sep 27, 2026 •

Copy link
Copy Markdown
Collaborator

ACP tool progress updates currently complete the active assistant item, which splits one streaming answer into separate items. This is visible when a background command reports progress while the agent is writing a markdown table.

Track recently shown tool-call IDs and close the assistant segment only for a newly shown tool. An active call remains recognized if its ID ages out of the bounded recent-ID cache; terminal and repeated updates keep their emitted tool state without splitting prose. The change selectively ports T3 source e759847f932c0de08261ec98a5fac3bae037120f (#13386) into Pylon's ACP runtime, without changing wire contracts.

Pylon's Prime adapter also used every tool update as a final-response boundary. It now consumes the ACP runtime's explicit boundary decision, so a background tool completing after the final text cannot cause a false missing-final-response warning. A new tool after text still resets that response state.

Focused validation on 3d4fa44c10e2957f3a7c086ef5e8633b123e2ab1: vp test run apps/server/src/provider/acp/AcpJsonRpcConnection.test.ts apps/server/src/provider/Layers/PrimeAgentAdapter.test.ts (27 passed), vp run --filter t3 typecheck, scoped vp lint, and scoped vp fmt --check. The regressions cover progress, completion, repeated completion, an active tool aged out after 256 later calls, and Prime settlement with no text after the background completion. The existing Prime tool-only test still checks the missing-final-response warning.

Tracking: #865. Independent adversarial review and final-head CI remain pending.

Model: GPT-6 (Codex in Pylon harness).

Co-authored-by: adeebahmad01 <52380344+adeebahmad01@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
(cherry picked from commit e759847f932c0de08261ec98a5fac3bae037120f)
@vercel

vercel Bot commented Sep 27, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated
pylon-marketing Ignored Ignored Preview Sep 27, 2026 5:27am UTC

@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:L labels Sep 27, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

Provider Metric Main baseline This PR Impact PR ceiling
Codex Total thread wire 14.0 KiB 14.0 KiB −28 B (−0.2%) 15.1 KiB ✅
Codex Thread snapshot wire 7.2 KiB 7.3 KiB +12 B (+0.2%) 7.3 KiB ✅
Codex Live turn WebSocket wire 6.8 KiB 6.7 KiB −40 B (−0.6%) 7.8 KiB ✅
Codex Live turn WebSocket decoded 58.0 KiB 58.0 KiB −44 B (−0.1%) 66.4 KiB ✅
Codex Live turn messages 10 9 −1 (−10.0%) 21 ✅
Claude Total thread wire 14.0 KiB 14.0 KiB −9 B (−0.1%) 15.1 KiB ✅
Claude Thread snapshot wire 7.2 KiB 7.3 KiB +9 B (+0.1%) 7.3 KiB ✅
Claude Live turn WebSocket wire 6.8 KiB 6.7 KiB −18 B (−0.3%) 7.8 KiB ✅
Claude Live turn WebSocket decoded 58.9 KiB 58.9 KiB −44 B (−0.1%) 66.4 KiB ✅
Claude Live turn messages 10 9 −1 (−10.0%) 21 ✅

Baseline: 415c668 · PR result: 3d4fa44 · Source CI: success

Scenario and decoded snapshot size

10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.

  • Codex decoded thread snapshot: 115.7 KiB
  • Claude decoded thread snapshot: 116.4 KiB

Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed.

@rynfar
rynfar merged commit d126c14 into pylon Sep 27, 2026
20 checks passed
@rynfar
rynfar deleted the upstream/2026-09-26-acp-progress-boundary branch September 27, 2026 05:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants