Repository navigation
Hand-back check: give it its own switch - #1360
mergify[bot] merged 1 commit into
Conversation
Bugbot couldn't run - usage limit reachedBugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit. A user or team admin can review and increase usage limits in the Cursor dashboard. (requestId: cab39655-cd5c-4290-952b-54694bc704d7) |
|
Queued — the merge queue status continues in this comment ↓. |
|
@Mergifyio queue |
Merge Queue Status
This pull request spent 1 hour 6 minutes 10 seconds in the queue, including 47 minutes 40 seconds running CI. ReasonThe merge conditions cannot be satisfied due to failing checks
Failing checks: HintYou may have to fix your CI before adding the pull request to the queue again. Waiting for
All conditions
Requeued — the merge queue status continues in this comment ↓. |
|
@Mergifyio queue |
Merge Queue Status
This pull request spent 1 hour 45 seconds in the queue, including 1 hour 30 seconds running CI. ReasonThe merge conditions cannot be satisfied: the checks did not pass within the checks timeout of 1 hour These checks were still running:
Failing checks: HintYou may have to fix your CI before adding the pull request to the queue again. If you update this pull request, to fix the CI, it will automatically be requeued once the queue conditions match again. Waiting for
All conditions
Requeued — the merge queue status continues in this comment ↓. |
|
@Mergifyio queue |
Merge Queue Status
This pull request spent 1 hour 5 minutes 32 seconds in the queue, including 1 hour 33 seconds running CI. ReasonThe merge conditions cannot be satisfied: the checks did not pass within the checks timeout of 1 hour These checks were still running:
Failing checks: HintYou may have to fix your CI before adding the pull request to the queue again. If you update this pull request, to fix the CI, it will automatically be requeued once the queue conditions match again. Waiting for
All conditions
Requeued — the merge queue status continues in this comment ↓. |
|
@Mergifyio queue |
Merge Queue Status🛑 Queue command has been cancelled |
…est) Exit code: 0
42ee33c to
a38ea67
Compare
Bugbot couldn't run - usage limit reachedBugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit. A user or team admin can review and increase usage limits in the Cursor dashboard. (requestId: d0274e66-9f25-4672-a3b6-8d47b33ee02a) |
|
@Mergifyio queue |
Merge Queue Status
This pull request spent 2 hours 1 minute 55 seconds in the queue, including 1 hour 31 seconds running CI. ReasonThe merge conditions cannot be satisfied: the checks did not pass within the checks timeout of 1 hour These checks were still running:
Failing checks: HintYou may have to fix your CI before adding the pull request to the queue again. If you update this pull request, to fix the CI, it will automatically be requeued once the queue conditions match again. Requeued — the merge queue status continues in this comment ↓. |
|
@Mergifyio queue |
Merge Queue Status
This pull request spent 1 hour 1 minute 18 seconds in the queue, including 1 hour 57 seconds running CI. Required conditions to merge
|
Summary
A check catches replies that hand the user a step the agent could have run. Here it never ran, because it shared a switch with features that are off.
This gives that check its own switch. It also still turns on when the older switch is on.
The new switch is off by default.
Review Claim
Approve a separate switch for turning on the hand-back check, so it can run without turning on the other reflect features.
Review Lane
behavior
Review Unit
engine-runtime
Safety Invariant
The new switch defaults to off and the old switch still turns the check on, so nothing changes until someone opts in. The check only reports; it never blocks a reply.
Slice Rationale
The switch and its hook change are one claim. The written rule and the planning guide are other claims and ship separately.
Non-goals
Measured
Command:
python3 -m unittest engine/hooks/handback-needs-attempt/tests/test_hooks.pyRan 9 tests ... FAILED (failures=1)(the one failure istest_stop_wrapper_never_blocks_the_reply)Ran 11 tests ... FAILED (failures=1)(the same one failure; the 2 new tests pass)Test Plan
Test Plan
python3 -m unittest discover -s engine/hooks/_flags/testsprintedRan 45 tests ... OKpython3 scripts/ci/check_hook_test_coverage.py engine/hooks/handback-needs-attemptprintedcheck_hook_test_coverage: OK (1 hook(s) checked)test_stop_wrapper_never_blocks_the_replyprintscatstack-hook-error handback-needs-attempt: ... rejected blank or synthetic model./install.shrunsRevert Plan
Revert Plan
git revert <sha>🤖 Generated with Claude Code
Note
Low Risk
Additive flag wiring with default-off behavior and unchanged reflect-enforcement compatibility; the check remains advisory and does not block replies.
Overview
The handback-needs-attempt Stop hook no longer runs only when
CATSTACK_REFLECT_ENFORCEMENTis on. It gets its own opt-in flag (default off) so the hand-back judge can run without enabling the rest of reflect/automate-me.CATSTACK_REFLECT_ENFORCEMENT=1still enables the check, preserving today’s behavior for anyone already using that switch. The hook’s gate and shared_flagswiring are updated accordingly, with two new unit tests covering the dedicated flag path.Reviewed by Cursor Bugbot for commit a38ea67. Bugbot is set up for automated code reviews on this repo. Configure here.