Repository navigation
Add durable trip progress and safe cancellation (INT-416, INT-417) - #26
Merged
Merged
Conversation
Persist each conversation's turn, approval history and per-leg stage in the existing store, exposed by a read-only trip_progress MCP tool that reports interrupted work after a restart. Add cancel_trip and a per-turn active-time deadline (IFD_TURN_DEADLINE_SECONDS, default 600) that stop work at safe points, withdraw unclicked approvals and keep completed plans. A Generate click already made is never interrupted or repeated. Browser limits are unchanged. Adds the WF-029-033 controlled suite. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Keep the INT-416/417 entries under Unreleased above the released 0.4.7 section. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
First v0.5.0 slice: INT-416 and INT-417.
trip_progress(thread_id)(new, read-only, no model or provider call): turn state, pending/cancelled approval and history, per-leg revision stage, completed legs, uncertain generations,next.cancel_trip(thread_id, reason?)(new): records the request, signals the running turn, and returnscancelled(stopped/completed) orcancelling. Withdraws the pending approval and approved-but-unclicked revisions. Completed plans and briefings are kept.IFD_TURN_DEADLINE_SECONDS(default 600) counts active execution only, not approval waits. Hitting the deadline withdraws unclicked approvals, the same as a cancel (owner-confirmed).turn_statusfalls back to the persisted record and reportsinterruptedafter a restart;approve_dispatchrefuses cancelled approvals;conversation_statusreportsapproval_cancelled.claim_generationrefuses cancelled revisions. A made click is never interrupted, cleared or retried. Browser limits (1 active, 2 waiters, 30s queue, 180s session) are unchanged and asserted by a test.settingstable andleg_meta. Works on SQLite and Postgres.Verification (local)
ruff check src tests evalspytest -q(SQLite)pytest -q(local Postgres 14, not Neon)scripts/validate.pyblocked: integration code changed, so exact-image live acceptance must be repeatedBefore ready for review
8a0b835, suite SHA-25651065fd8…41bc, datasetifd-workflow-v050-51065fd816ea, experimentv050-candidate-scripted-3fdf1e72(id6eec51e2-42f4-4efd-b72a-b13be747c3cb), 5/5 cases (WF-029–033). Real-model replay and live-provider evidence are still separate and pending.session_scope🤖 Generated with Claude Code