Skip to content

fix: validate handoffs and clarify interrupted-round recovery - #4

Merged
TKontu merged 2 commits into
mainfrom
fix/handoff-validation-recovery
Oct 10, 2026
Merged

TKontu merged 2 commits into
mainfrom
fix/handoff-validation-recovery

Conversation

@TKontu

@TKontu TKontu commented Oct 9, 2026

Copy link
Copy Markdown
Owner

Round closure previously accepted a handoff containing only a commit SHA. It now requires a valid UTC timestamp and nonempty delta, open-work and next-action sections, while preserving the existing SHA and size checks. Interrupted sessions can hand off an open round; the recovery example explains how to resume without duplicate workers or replayed merges. Assignment and bootstrap guidance make verification ownership and existing project policy explicit.

Validation:

  • RED: all 13 malformed/incomplete handoff cases were accepted by the old implementation.
  • GREEN: python3 -m unittest discover -s tests — 26 tests passed; packaging/link checks also passed after the final documentation edits.
  • git diff --check, staged secret/private-material review and independent diff review passed.

No new CLI commands, runtime states, config schema or result format. Structural validation does not prove external CI/review/merge correctness. Implemented in a separate worktree from origin/main; pre-existing changes in the original workspace were excluded. This PR is for review, not automatic merge.

Tuomo Vendelin and others added 2 commits October 9, 2026 14:22
Co-authored-by: Codex <noreply@openai.com>
…ead-only

A handoff copied from templates/handoff.md with only the timestamp and SHA
filled passed the section check, because <...> placeholder lines counted
as content. Strip placeholder-only lines (but not <https://...> autolinks)
and test against the real template. Takeoff now reports interrupted-round
recovery needs instead of recording or resuming work.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@TKontu

TKontu commented Oct 10, 2026

Copy link
Copy Markdown
Owner Author

Review fixes pushed in the commit after 4cee35b:

  1. A handoff copied from the template could close a round (confirmed and reproduced). templates/handoff.md uses <...> placeholders, and those counted as section content. With only the timestamp and SHA filled in, close succeeded. Lines that contain only a placeholder are now stripped before the non-empty check. <https://...> autolinks still count as content. There are new tests for the real template file and for an autolink, and a <Fill this in> case was added to the existing malformed-handoff test.
  2. Takeoff stays read-only. The interrupted-round lines in takeoff now report outstanding work, unavailable gates, and the recovery owner and next action. Recovery itself happens after takeoff, as described in the protocol.
  3. Wrapped the long SPEC.md line and noted there that template placeholders are not content.

python3 -m unittest discover -s tests passes. git diff --check is clean. The new template test failed before the fix. These fixes were pushed by the reviewing session, so an independent party should approve the merge.

🤖 Generated with Claude Code

@TKontu
TKontu merged commit 26c74a5 into main Oct 10, 2026
2 checks passed
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