The refused rollback: release/fixtures/rollback.refused.json, from run 42405016612 (#197)

Merged
DO
3d ago
+503-7

The rollback dispatched while factory/v0.1.0 is the one Release, kept as a fixture: step 4 of the #197 rollback plan, option C, which the Maintainer approved.

Run 42405016612 of release.yml, on main 9ca55015, asked rollback with no target. The step was refused no_earlier_release, wrote nothing and concluded failure. The reads after it show the cut's state unchanged: factory/v0.1.0 and factory/v0-next both name 499835d5, and factory-next has its one Deployment, from the cut.

  • release/fixtures/rollback.refused.json: the run, its job, the step's lines of its log, both tags, every factory/ tag as adapters/tags.py lists them, the Deployment and its status. It was captured and redacted outside the repo by tools/redact_trial.py, which took out only the names of the token's two steps. removed says what each body lost.
  • tests/test_release.py::test_a_rollback_with_no_earlier_release_was_refused_and_moved_nothing holds:
    • the fixture passes check_release;
    • every factory/ tag, read through the port, names one Release, with next on its commit;
    • cut.plan refuses the step built from the run's own inputs (move.asked), no_earlier_release, for those tags;
    • the one Deployment is the cut's, by its id, and it and its status are older than the run;
    • every read was made after the run ended.
  • tools/mutants.py: five mutants on the fixture, all killed. They move next off the Release, add an earlier Release to the list, date the Deployment or its status after the run, and date the run's end after the reads.
  • .claude/skills/cut-a-release/SKILL.md: a rollback with no earlier Release is refused no_earlier_release and writes nothing.
  • schemas/release-fixture.schema.json: the item enum gains refused_rollback_with_no_earlier_release, beside ruling 9′'s five.
  • release/AGENTS.md: a row for the new test. The prose above the table is rewrapped to three lines to stay within 40.

No decision record. #197 stays open for the live move, which rides on the v0.1.1 cut (option A).

Verify: SIM_SEEDS=40 make verify passed at bda61fda, 1663 tests OK. Mutants: the fixture's own run, 5 of 5 killed.

Reads:

ReaderResult
Argon0 findings, at 176a91c9
Musenot run (quota), owed after 2026-11-09
Astranot run (quota), owed after 2026-11-09
Codex0 findings, at 176a91c9
Claude review1 medium, 3 low; all fixed in bda61fda
Claude security0 findings

šŸ¤– Generated with Claude Code