Skip to content

merge queue: checking #1332 on main (2f93d6c) - #1363

Closed
mergify[bot] wants to merge 4 commits into
mainfrom
mergify/merge-queue/4a7a43580e
Closed

mergify[bot] wants to merge 4 commits into
mainfrom
mergify/merge-queue/4a7a43580e

Conversation

@mergify

@mergify mergify Bot commented Oct 12, 2026 •

Copy link
Copy Markdown
Contributor

🎉 This pull request has been checked successfully and will be merged soon. 🎉

#1332 is queued for merge on branch main (2f93d6c).

This pull request has been created by Mergify to speculatively check the mergeability of #1332.
You don't need to do anything. Mergify will close this pull request automatically when it is complete.

Bisected from a failed batch:

Required conditions of queue rule admin-bypass for merge:

  • check-success = lint
  • check-success = test
  • check-success = validate

Required conditions to stay in the queue:

---
all_scopes: false
checking_base_sha: 2f93d6cd21f9768359faa56cbcc7b87698863376
previous_check_retries: []
previous_failed_batches:
  - batch_pr_head_sha: 696aae01f0aab8d341445057a983593a29328eb4
    batch_pr_number: 1361
    checked_pull_requests:
      - 1332
      - 1354
      - 1358
      - 1359
    draft_pr_head_sha: 696aae01f0aab8d341445057a983593a29328eb4
    draft_pr_number: 1361
pull_requests:
  - number: 1332
    scopes: []
scopes: []
...

CI Bot and others added 4 commits October 11, 2026 14:27
tests/test_install.py and engine/hooks/_runner/tests/test_wrap_installed.py
asserted one settings entry per hook, so every per-hook guarantee they check
failed once CATSTACK_HOOK_DISPATCHER (#1122) collapsed an event to a single
_runner/dispatch.py entry: 70 failures and 1 error on #1122's head, all in
these two files.

load_config() in tests/test_install.py now reads an installed config and
expands a collapsed event back into one entry per hook, resolving each hook's
registration the way dispatch.py itself does (dispatch.load_event_hooks: the
cursor registry, or the hook's own manifest for claude and codex). Each
assertion therefore sees the identical shape in both layouts and keeps
checking the same guarantee -- right event, right harness, Stop mirrored to
SubagentStop or opted out, dead entries pruned, non-catstack entries
untouched. test_wrap_installed.py's fixture pins the flag off, since it
asserts the settings bytes install writes rather than a hook's registration.

#1122's own test_default_is_off_and_byte_identical_to_no_flag_at_all now
compares the default install against an install that sets the flag to
whatever flags.py resolves as the default, and clears the key from its own
environment first, so the flag-on run of the full suite cannot leak into the
"default" side of the comparison.

The CATSTACK_HOOK_DISPATCHER default is left off. Flipping it on is gated on
both full-suite runs passing, and the source branch
plan/hook-backlog-1c-install-tests-accept-the-one-entry-per-event-layout-default-on-only-if-both-suites-pass
never changed engine/hooks/_flags/flags.py, so that gate was not met there
and this commit does not claim it.

Cherry-picked from 6330abf on that branch.
The branch's two other content commits (engine/hooks/_runner/doctor.py,
scripts/test/run_skill_scenarios.py) are unrelated to this claim and are
left behind.
…ew claim: tests.test_install and test_wrap_installed accept both install layouts (one entry per hook with CATSTACK_HOOK_DISPATCHER off, one dispatcher entry per event with it on), and the flag defaults to on only if bash scripts/test/run_all_tests.sh passes with the flag on and off.

Review lane: behavior
Safety invariant: If either suite run fails, the default stays off. Per-hook guarantees stay checked in the dispatcher layout.
Files: tests/test_install.py, tests/test_wrap_installed.py
Change types: test
Acceptance criteria: This workflow publishes one pull request for the install-layout claim only.

Exit code: 0
Invoker-Finalize-Id: f459f9c9-a623-4fd7-9708-21cc3ae4cbda
…s/g0.t0.a-a464d403f-4908b6a4 — Review claim: tests.test_install and test_wrap_installed accept both install layouts (one entry per hook with CATSTACK_HOOK_DISPATCHER off, one dispatcher entry per event with it on), and the flag defaults to on only if bash scripts/test/run_all_tests.sh passes with the flag on and off.

Review lane: behavior
Safety invariant: If either suite run fails, the default stays off. Per-hook guarantees stay checked in the dispatcher layout.
Files: tests/test_install.py, tests/test_wrap_installed.py
Change types: test
Acceptance criteria: This workflow publishes one pull request for the install-layout claim only.
@mergify mergify Bot mentioned this pull request Oct 12, 2026
4 tasks done
@mergify mergify Bot closed this Oct 12, 2026
@mergify
mergify Bot deleted the mergify/merge-queue/4a7a43580e branch October 12, 2026 22:06
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