Repository navigation
fix: cancel unbound goals before deleting sessions - #647
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
React Doctor found no new issues. 🎉 Reviewed by React Doctor for commit |
|
Important Review skippedReview was skipped due to path filters ⛔ Files ignored due to path filters (2)
CodeRabbit blocks several paths by default. You can override this behavior by explicitly including those paths in the path filters. For example, including ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Advanced Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Advanced Run ID: ⛔ Files ignored due to path filters (5)
📒 Files selected for processing (2)
Included review availability: Your plan provides up to 8 included reviews per hour; 0 remain after this review. WalkthroughThe change fixes empty session bindings during Goal cancellation. It adds integration coverage for idempotent cancellation and deletion of stopped sessions with retained Goal state. ChangesGoal cancellation lifecycle
Priority: ➖ Normal Estimated code review effort: 3 (Moderate) | ~20 minutes Change: Bug fix · Severity of issue fixed: Medium Merge Risk: ⚪ Minimal · up to The stopped-session cancellation path preserves the required projection and validation behavior, with no actionable current-head risk identified. 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches 💡 2📝 Generate docstrings 💡
⚔️ Resolve merge conflicts 💡
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
| Filename | Overview |
|---|---|
| internal/store/globaldb/global_db_goal_prompt_revoke_control.go | Loads the persisted Goal origin and uses it only as the fallback for an empty cancellation binding. |
| internal/store/globaldb/global_db_goal_turn_runtime_integration_test.go | Covers unbound session origins, moved bindings, catalog origins, retained checkpoint state, and idempotent cancellation. |
| internal/daemon/loop_goal_managed_runtime_integration_test.go | Verifies real Manager/SQLite deletion of a stopped Goal owner while retaining audit history and a neighboring session. |
| web/e2e/tests/session-bulk-actions.spec.ts | Expands the bulk deletion journey to selected active and stopped sessions while proving an unselected neighbor remains. |
| .github/workflows/ci.yml | Adds targeted race-enabled integration execution and persistent bulk-deletion browser evidence. |
| docs/_memory/change-impact.md | Records compatibility, isolation, recovery, surface, documentation, and validation impacts for issue 643. |
| docs/qa/scenarios/ET-web-session-list-bulk-actions.md | Documents the mixed-state bulk deletion regression and the boundaries of its automated evidence. |
| docs/qa/scenarios/RT-session-delete-owned-history.md | Documents stopped-owner deletion with an unbound Goal checkpoint and retained audit history. |
Flowchart
%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[Delete stopped session] --> B[Cancel owned Goal run]
B --> C{Run has session origin?}
C -- No: catalog origin --> D[Cancel run without session projection]
C -- Yes --> E{Checkpoint binding present?}
E -- Yes --> F[Project canceled status to moved binding]
E -- No --> G[Project canceled status to persisted origin]
F --> H[Retain checkpoint and Goal audit history]
G --> H
D --> H
H --> I[Delete origin session]
I --> J[Preserve unrelated neighboring sessions]
Reviews (5): Last reviewed commit: "test: verify goal deletion with complete..." | Re-trigger Greptile
25604aa to
85e822c
Compare
f3fbea7 to
3875c91
Compare
Consolidated integration dispositionSquash merge: The missing-checker finding was a false positive: the referenced checker exists in the repository. The QA finding is addressed by real SQLite/Manager cancellation and deletion coverage plus browser bulk selection, confirmation and neighbor preservation. Both threads are resolved. Rebase changed only the placement of the impact record; range-diff preserved the four implementation commits. Cancellation uses persisted origin for projection only; clear remains null and moved bindings remain authoritative. All pages of general/inline reviews and review threads, including outdated and collapsed material, were collected. Existing test owners were retained. Blanket docstring quotas and invitations to change reviewer filters do not override repository conventions and were not treated as production defects. No reviewer configuration, branch protection or published main history was rewritten. Validation: integrated-main CI — passed: 26 successful jobs, with only the PR-title job skipped because this is a main push. Heavy verification ran only in GitHub CI under the explicit user override. Authorship and verification are agent-based, not human approval. Final-head evidence: real SQLite/Manager cancellation and deletion and bulk browser screenshots. Codex inspected selection, confirmation and completion on the final main commit. |
What & why
Closes #643. Goal cancellation uses the persisted session origin for its status projection when the checkpoint has no binding. Clear stays null, moved bindings remain authoritative, and catalog Goals emit no session projection. Stopped-session deletion preserves Goal audit and neighboring sessions.
Authored and integrated by Codex (GPT-6 Astra). No human verification is claimed.
Squash-merged as
6b081d46f1fdf65f297e332abd679f7a58774f1a. All five PRs (#645–#649) are integrated and verified on main.How you verified it
Canonical SQLite/Manager integration and the existing bulk browser suite cover unbound cancellation, idempotency, mixed active/stopped selection and neighbor preservation. Partial-failure/retry belongs to the existing bulk hook suite. The missing-checker review finding is disproved by the tracked file and resolved; QA is verified on f3fbea7: real SQLite/Manager with race detection and bulk browser shard 3 passed. Codex inspected all three selection/confirmation/completion screenshots. Both review threads are resolved. This verifies the issue-specific automated slice, not a new full manual walk. CodeRabbit reviewed the Go changes without inline defects.
CI-only user override: no local make gate, builds, tests, typechecks or React Doctor runs. Local work is limited to source inspection, formatting and diff checks. Final integrated-main CI passed on
e7e4a7e329499a56fa11b364ed453a1e9d5447f7: 26 successful jobs covering Go lint/build/race, frontend lint/types/tests/build, native Windows, real role/Goal integrations, and web/runtime/desktop E2E. PR-title validation is skipped on push; no applicable CI job failed or remained pending.All available general, inline, outdated and collapsed first-review findings were collected. One consolidated remediation round is authorized; no second review or final-head reapproval is requested. Generic docstring quotas do not override the repository's requirement to comment non-obvious intent rather than repeat identifiers; no reviewer configuration or check is changed.
Final-head evidence: real SQLite/Manager cancellation and deletion and bulk browser screenshots. Codex inspected selection, confirmation and completion on the final main commit.
Impact
Existing session delete/stop and Goal surfaces keep IDs and DTOs. No migration, config, hook or SDK change. Session-owned-history and bulk-action QA scenarios plus impact audit are updated. Official skill remains accurate.
Cross-surface audit:
docs/_memory/change-impact.md.make gatepasses locally; this PR is delivered only after its required CI checks are green — local execution waived by explicit CI-only user instruction.