Skip to content

feat(agent): evaluate optional final snapshot delivery before termination #101

Description

@ben-ranford

Outcome

Evaluate an opt-in guarantee that a subscription emits the final valid snapshot before its session_closed terminal notification, with bounded transport behavior.

Current contract and evidence

The v1.1.0 implementation in PR #97 promises a bounded, monotonically increasing subsequence of snapshots. Terminal state removes the subscription; it does not guarantee delivery of the final snapshot. snapshotSubscription.fail clears its pending slot and the writer gives terminal messages priority. WaitForPublication in PR #78 explicitly returns ErrSessionClosed when the session closes.

Integration review of local candidate 173b633882c44f6a80a99fdf07b5dd3fa078ddc8 found that the admission-overload shutdown in PR #73 can follow a final result publication immediately. A slow subscription can consequently receive session_closed without that final snapshot. The final state remains accessible through Session.Snapshot and the replay transcript. Independent scope review classified this as a possible new delivery guarantee, not a violation of the current coalescing/terminal contract or a blocker for #45/#49/#65.

Bounded design and acceptance checks

  • Decide whether final-state delivery should be optional and separately negotiated; preserve existing terminal-priority behavior for current clients.
  • Define a bounded policy for slow/failed writers, cancellation, output limits and provider failures. Do not block unrelated clients or create an unbounded queue.
  • If adopted, prove a final valid snapshot precedes exactly one terminal message using a controlled slow writer and an actual BindSession session-close/overload fixture.
  • Keep replay, polling patch history, redaction and capability checks intact.
  • Do not silently change the documented closed-session behavior of WaitForPublication as a side effect.

This is an integration-derived product hypothesis, not validated customer demand. It is intentionally outside the current v1.1.0 milestone scope.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

area:agentSemantic snapshots, JSONL/JSON-RPC, automation, and accessibilitypriority:p2Normal milestone prioritytype:featureAdditive user-facing library capability or workflow

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions