Skip to content

fix(workflows): distinguish merge waits from repair recovery - #30

Open
tylerwillis wants to merge 1 commit into
mainfrom
codex/fix-2119-merge-recovery
Open

tylerwillis wants to merge 1 commit into
mainfrom
codex/fix-2119-merge-recovery

Conversation

@tylerwillis

@tylerwillis tylerwillis commented Oct 29, 2026 •

Copy link
Copy Markdown
Contributor

A PR can be blocked while it waits for approval or checks, without needing code changes. The shared babysit-merge instruction previously sent every BLOCKED PR to ITERATING, a state the three 2119 workflows do not have.

Use the active workflow's recovery state (BUILDING for 2119, ITERATING for GitHub peer/self-reviewed workflows), and recover only on conflicts, a failed/cancelled latest required check for the current head, or requested changes. Fetch current PR/check/queue evidence first. Approval, pending-check, queue, behind-branch, and unknown-evidence waits retain MERGING; approval and unknown-blocker waits return control to the user. Only known pending required checks start a watcher, avoiding an immediate loop on completed checks. When queue completion needs another invocation, the instructions explicitly tell the user to re-invoke the skill. A head read-back discards evidence if a concurrent push changed the PR head.

The change adds no state or transition edge. Regressions pin the complete ordered instruction policy across all five workflows and execute the rendered recovery command as a real free move, verifying fresh responsibilities and preserved history.

Validation:

  • Old instructions fail all ten revised regression cases; the updated implementation passes 106 focused workflow/core tests.
  • Ruff lint/format, mypy, spec lint, wheel build, and clean-wheel startup/rendered-policy smoke pass.
  • Fresh independent specification and final implementation/test-honesty reviews pass. All 12 affected requirements pass the change-scoped formal gate, including after rebasing onto current main.
  • Full repository 2119 coverage still has 203 pre-existing failing/stale verdict violations; this change does not repair or waive that separate gate. CI currently excludes its repository-policy meta-test.
  • Earlier local broad-suite baseline run: 3819 passed, 5 skipped, 4 failed. Three path-sensitive assertions pass in a neutral baseline checkout; a native-Claude MCP test also fails on clean main because the CLI sends two valid direct requests while the assertion expects one. These baseline/environment issues are unchanged.
  • Fresh GitHub CI passes on commit 3e01e57: 3845 tests passed, 4 skipped, 829 warnings (including asynchronous teardown warnings); lint, format, mypy, wheel build, and clean-wheel smoke all pass. Both Linux/macOS startup smoke jobs also pass. The commit is rebased onto main after fix(spawner): resolve repository hooks from the configured directory #31 and docs: align runtime architecture and document 2119 workflows #32 merged.

Render BUILDING for 2119 recovery and ITERATING for the GitHub workflows.
Recover only for current conflicts, failed or cancelled required checks,
or requested changes. Retain MERGING for approval, pending checks, queue,
behind-branch, and unknown-evidence waits. Read fresh PR and queue evidence,
verify the head after reading checks, and avoid completed-check watcher loops.

Pin the ordered instruction policy for all five workflows and execute the
rendered recovery command against the real workflow state machine. Add the
file-scoped requirements and independently reviewed coverage verdicts.

Validation: 106 focused tests, Ruff lint/format, mypy, spec lint, wheel build,
and clean-wheel smoke pass. Fresh independent specification, implementation,
and test-honesty reviews pass. All 12 affected requirements pass their scoped
gate; the full gate still reports 203 unrelated baseline verdict violations.
@tylerwillis
tylerwillis force-pushed the codex/fix-2119-merge-recovery branch from 1cf9e82 to 3e01e57 Compare October 29, 2026 08:04
@tylerwillis tylerwillis changed the title fix(workflows): recover blocked 2119 merges into BUILDING fix(workflows): distinguish merge waits from repair recovery Oct 29, 2026

This branch has not been deployed

No deployments
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