Skip to content

fix(review-r3): engine hardening + crash-resume seams#514

Merged
leeovery merged 1 commit into
mainfrom
feat/batch-review-round-3
Jul 23, 2026
Merged

fix(review-r3): engine hardening + crash-resume seams#514
leeovery merged 1 commit into
mainfrom
feat/batch-review-round-3

Conversation

@leeovery

@leeovery leeovery commented Jul 22, 2026

Copy link
Copy Markdown
Owner

Summary

  • Round-3 system-wide review fixes (6 agent slices: epic journey, adversarial CLI, state-machine, quickfix/bugfix journeys, crash/resume, corpus-wide reference sweep), stacked on the round-2 fix PR.
  • Engine: empty-path-segment refusal in parsePath (empty dotpath aliased the project manifest under the work-unit lock), empty work-unit guard on commit, work-type-mismatch refusal on workunit create reuse, order-independent non-live filtering in phaseStatus, all-attempted-phases-cancelled topics now render as cancelled (was fresh with a dead-end next action), cancel/reactivate round-trips the map item's order, promoted items are terminal for start/complete/supersede, review resume-gate counts distinct reviewed ids.
  • Prose crash-resume seams sealed: task-loop reconciliation, verifier-push dedupe, actions-loop in-flight staging resume, author-tasks re-author guard (prevents duplicate external tasks), analysis-loop unsynthesised-cycle resume, spec-extraction re-read before logging, pivot-to-epic parameter declaration.
  • Test pins updated to the new lifecycle/order semantics + new pins for the dedupe and cancel/reactivate behaviour.

Test plan

  • npm test — 1571 pass
  • npm run test:cli, npm run test:migrations, npm run typecheck — green

🤖 Generated with Claude Code

Stack

  1. feat(engine): discovery-map add-batch — the harvest persists in one call (D7) #505
  2. feat(engine): manifest apply — batched set/delete across one work unit (D7) #506
  3. refactor(prose): task-map family folds onto existing batch forms (D7, stage 3) #507
  4. feat(engine): manifest set — two grammars, never mixed #508
  5. refactor(prose): dump/read folds — subtree gets replace per-topic loops (D7, stage 5) #509
  6. feat(engine): commit --plan — plan storage stages from recorded state (D7, stage 6) #510
  7. fix: batching-stack review round — re-resolve rewired, guards symmetric, hardening pinned #512
  8. fix: deep-dive round 2 — backbone rule flipped, pre-upgrade paths routed, flow bugs closed #513
  9. fix(review-r3): engine hardening + crash-resume seams #514 👈 current
  10. feat(scoping): promotion routes through first-phase choice + bridge #515
  11. fix(spec): pin the bugfix source name to the topic #516
  12. fix(skills): gate-skip sentence accurate in gate-less phases #517
  13. fix(review-entry): name the real upstream — specification and plan #518
  14. fix(shared): strip triage-landing's unreachable superseded-research arm #519
  15. feat(engine): refuse work-unit-level fields that shadow the phases tree #520
  16. fix(discovery): first-written briefs join the full brief lifecycle #521
  17. test(sim): pipeline simulation — engine driven end-to-end as a black box #522
  18. fix(round-4): review findings — backfill keying, ratchet evasion, pull guard #523

@leeovery
leeovery force-pushed the feat/batch-review-round-3 branch from 00ea1f0 to ad7f469 Compare July 23, 2026 10:58
@leeovery
leeovery force-pushed the feat/batch-review-round-2 branch from c971da1 to 8ad0c0d Compare July 23, 2026 11:05
@leeovery
leeovery force-pushed the feat/batch-review-round-3 branch from ad7f469 to 2b021b6 Compare July 23, 2026 11:05
@leeovery
leeovery force-pushed the feat/batch-review-round-2 branch from 8ad0c0d to 6e264b3 Compare July 23, 2026 12:29
@leeovery
leeovery force-pushed the feat/batch-review-round-3 branch from 2b021b6 to 1319978 Compare July 23, 2026 12:29
@leeovery
leeovery force-pushed the feat/batch-review-round-2 branch from 6e264b3 to 19ff4c5 Compare July 23, 2026 12:30
@leeovery
leeovery force-pushed the feat/batch-review-round-3 branch from 1319978 to 038b756 Compare July 23, 2026 12:30
@leeovery
leeovery force-pushed the feat/batch-review-round-2 branch from 19ff4c5 to af5addc Compare July 23, 2026 12:31
@leeovery
leeovery force-pushed the feat/batch-review-round-3 branch from 038b756 to eb473bc Compare July 23, 2026 12:31
@leeovery
leeovery force-pushed the feat/batch-review-round-2 branch from af5addc to 11c2481 Compare July 23, 2026 12:32
@leeovery
leeovery force-pushed the feat/batch-review-round-3 branch from eb473bc to e6f4d32 Compare July 23, 2026 12:32
@leeovery
leeovery force-pushed the feat/batch-review-round-2 branch from 11c2481 to 927adc3 Compare July 23, 2026 12:32
@leeovery
leeovery force-pushed the feat/batch-review-round-3 branch from e6f4d32 to 08d631d Compare July 23, 2026 12:32
@leeovery
leeovery force-pushed the feat/batch-review-round-2 branch from 927adc3 to ed05893 Compare July 23, 2026 12:33
@leeovery
leeovery force-pushed the feat/batch-review-round-3 branch from 08d631d to 9d1de7e Compare July 23, 2026 12:33
@leeovery
leeovery force-pushed the feat/batch-review-round-2 branch from ed05893 to 9e13a3a Compare July 23, 2026 12:34
@leeovery
leeovery force-pushed the feat/batch-review-round-3 branch from 9d1de7e to e56f7ca Compare July 23, 2026 12:34
@leeovery
leeovery changed the base branch from feat/batch-review-round-2 to main July 23, 2026 12:34
Engine: parsePath refuses empty segments (aliased the project manifest
under the wrong lock); commit refuses an empty work-unit name (swept all
of .workflows); workunit create refuses reusing a name across work types;
phaseStatus filters all non-live statuses order-independently; a topic
whose every attempted phase is cancelled is lifecycle-cancelled (was
fresh with a dead-end action); cancel stashes the map item's order and
reactivate restores it; promoted items are terminal for start/complete/
supersede; resume-gate review coverage counts distinct task ids.

Prose crash-resume seams: task-loop heals completed_tasks from plan
marks; verifier pushes dedupe against a prior read; actions-loop resumes
an in-flight staging file instead of re-dispatching; author-tasks skips
tasks already in task_map (no external duplicates); analysis-loop
resumes an unsynthesised cycle without re-recording; spec extraction
re-reads before logging a pending source; pivot-to-epic declares its
continuation_menu parameter.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@leeovery
leeovery force-pushed the feat/batch-review-round-3 branch from e56f7ca to 984f4d7 Compare July 23, 2026 12:35
@leeovery
leeovery merged commit a087c19 into main Jul 23, 2026
@leeovery
leeovery deleted the feat/batch-review-round-3 branch July 23, 2026 12:43
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