Define legacy ACP standing-context re-delivery after provider compaction
- Dominant language
- Rust
- Stars
- 32.7k
- Forks
- 4.3k
- Avg merge
- 1d 13h
- Merged PRs (30d)
- 253
Description
## Problem
The Buzz-only standing-context optimization sends `[Base]`, persona/system, team instructions, core memory, and canvas once per live legacy ACP v1 session. If the provider later compacts or truncates that session, Buzz has no signal or threshold for re-delivering the standing context. A sufficiently long-lived session can therefore lose its framing.
## Decision needed
Choose and implement a re-delivery policy for legacy adapters, for example:
- rotate legacy sessions after a non-zero turn/token threshold;
- re-send standing context when the adapter exposes a compaction signal; or
- periodically re-send using a bounded threshold.
The policy must preserve the cost/context gains from standing-context-once while avoiding silently unframed long-lived sessions.
## Acceptance criteria
- Product semantics are documented.
- Tests cover the threshold/signal boundary, failed re-delivery, rotation, and modern ACP v2 non-regression.
- Delivery state remains scoped to the exact live ACP session.
Related: #3242. Durable restart/resume remains a separate concern from provider-side compaction.
Contributor guide
Research direction
No file or test paths are named. Start by tracing legacy ACP v1 adapter delivery and the state scoped to a live session, then compare the modern ACP v2 path; define the compaction, threshold, failure, and rotation behavior before locating the relevant tests. Done means documented semantics, boundary and failure coverage, rotation coverage, and no ACP v2 regression.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- backend-api-design
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100