fix(bin): distinguish validation handoff from terminal completion - #2958
fix(bin): distinguish validation handoff from terminal completion#2958connectwithclayton wants to merge 7 commits into
Conversation
…tionlint unavailable
…remain separately scoped
Confidence Score: 5/5The PR appears safe to merge. No blocking failure remains; the previously reported legacy Reviews (2): Last reviewed commit: "fix(classify): preserve validation hando..." | Re-trigger Greptile |
|
Addressed the review finding in 1afa3dc. status_is_captain_relevant now recognizes the configured needs-validation handoff before applying FM_CAPTAIN_RE, so a legacy operator regex cannot silently suppress the validation trigger; regression coverage includes both a realistic legacy regex and an overridden handoff verb. I audited every vocabulary consumer: watcher, daemon, stale and signal scans, and push-transition handling all route through the shared classifier, so no other override-blind path remains. Full local runner on the exact committed tree contents: FM_TEST_SUMMARY total=160 failed=12 skipped_gate=27 duration_ms=6472283; all changed-path tests and lint passed, while the 12 failures were unrelated existing baseline cases. |
What changed
needs-validation: {summary}for the committed implementation handoff and reservedone: PR {url} checks greenfor terminal completion.Defect
Worker instructions reused the
done:prefix for both "implementation committed, start validation" and "PR open, checks green, finished."A supervisor reading a status log therefore could not distinguish the opposite lifecycle states mechanically.
Before, both states appeared as
done::done: implementation committeddone: PR https://example.test/pr/7 checks greenAfter, the handoff and terminal state are distinct:
needs-validation: implementation committeddone: PR https://example.test/pr/7 checks greenValidation
At shipping head
3db189f8, the test phase reported:The outer lint phase subsequently ran
bin/fm-lint.shsuccessfully with pinned ShellCheck 0.11.0 and actionlint 1.7.12.