Skip to content

fix: classify runtime checkpoint rounds#2152

Merged
jolestar merged 1 commit into
mainfrom
fix/runtime-checkpoint-visibility
Jul 10, 2026
Merged

fix: classify runtime checkpoint rounds#2152
jolestar merged 1 commit into
mainfrom
fix/runtime-checkpoint-visibility

Conversation

@jolestar

Copy link
Copy Markdown
Collaborator

Summary

  • classify provider assistant rounds as agent_response or runtime_checkpoint and persist checkpoint request metadata in transcript/audit evidence
  • prevent runtime checkpoint text from becoming terminal result text, brief source text, max-output recovery history, or curated info/verbose assistant progress
  • retain checkpoint evidence on debug/raw surfaces, preserve multi-brief and WorkItem completion behavior, and document the semantic boundary
  • reinforce the best-effort response-language instruction for all operator-visible assistant prose without adding language detection, retries, or extra model calls

Verification

  • cargo fmt --all -- --check
  • RUSTFLAGS="-D warnings" cargo check --all-targets
  • cargo test
  • npm test (web-gui/app)
  • npm run typecheck (web-gui/app)

@vercel

vercel Bot commented Jul 10, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
holon Ready Ready Preview, Comment Jul 10, 2026 3:34pm

@jolestar

Copy link
Copy Markdown
Collaborator Author

Review: LGTM ✅

Well-structured and thorough change that correctly classifies runtime checkpoint rounds as private continuity state.

Summary of review:

  1. Semantic classification (execution.rs, types.rs): New AssistantRoundPurpose enum cleanly distinguishes agent_response vs runtime_checkpoint rounds. The classification correctly gates last_assistant_round_id, last_assistant_message, and max-output recovery history — preventing checkpoint text from leaking into terminal results or briefs.

  2. Operator event visibility (operator_event.rs): Checkpoint rounds are properly demoted to Trace visibility with explicit labeling.

  3. Presentation filtering (presentation.rs, session-reducer-core.ts): Both Rust and web-GUI reducers correctly exclude checkpoint rounds from curated timelines while keeping them on debug/raw surfaces.

  4. Tests: Comprehensive coverage across unit, integration, and web-GUI tests. Test budget calculations improved from hardcoded values to dynamic computation.

  5. RFC documentation: All three relevant RFCs updated.

No blocking issues found. Waiting for CI to pass.

@holonbot holonbot Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review: Approve ✅

Well-structured change that correctly introduces a semantic distinction between ordinary agent response rounds and runtime-private checkpoint rounds, then enforces that distinction consistently across every operator-visible projection layer.

Correctness: Round purpose determination is correct — snapshotting pending_checkpoint_metadata before response processing ensures classification reflects runtime intent. The last_assistant_round_id guard correctly prevents checkpoint rounds from being recorded as terminal text sources. Max-output recovery correctly excludes checkpoint text from truncated history. The = None initialization for last_assistant_round_id is a latent bug fix.

Test coverage: Comprehensive — unit tests for operator events, presentation reducer, web-GUI reducer; integration test for full turn execution with checkpoint metadata verification. Test budgets refactored from hardcoded to dynamically computed.

Documentation: Three RFCs updated with clear semantic boundary docs.

Nit (non-blocking): The same five checkpoint metadata fields (round_purpose, visibility, checkpoint_request_id, checkpoint_mode, checkpoint_requested_at_round) are repeated across four serde_json::json! blocks in execution.rs. A small helper could reduce this repetition surface.

No correctness, security, or safety issues found.

@holonbot

holonbot Bot commented Jul 10, 2026

Copy link
Copy Markdown
Contributor

Holon Run Report

@jolestar jolestar merged commit 46689b1 into main Jul 10, 2026
5 checks passed
@jolestar jolestar deleted the fix/runtime-checkpoint-visibility branch July 10, 2026 15:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant