Repository navigation
fix: make wedge handling aware of decisions and captain holds - #289
Merged
Merged
Conversation
Avoid false wedge alarms for worker-owned decisions and active captain holds. Add opt-in keyed reminders with persisted backoff and document the local config.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Reminder suppression matches upstream 1973897e,
bin/fm-watch.sh:2616-2617.Evidence
stale: test:fm-decision-enabled (idle 504s, possible wedge, escalation 1)for a worker waiting on an open decision;tests/fm-watch-triage.test.shreproduces it.bash bin/fm-lint.sh,bash bin/fm-doc-audience-check.sh, and the final No-Mistakes pipeline completed with CI green. The preserved Pipeline section below carries its run evidence.Merge Danger
Door: Two-way
Reverting this change restores the prior wedge and missed-reminder behavior.
Blast Radius: Watcher
Only watcher deferrals, reminder scheduling, and their local configuration and status records change.
Pipeline
Updates from git push no-mistakes
✅ **Intent** - passed
✅ No issues found.
✅ **Rebase** - passed
✅ No issues found.
bin/fm-watch.sh:1852- Commit 57fbf86 restoresstatus_is_paused_or_captain_held ... && continueandtask_captain_call_open ... && continue, contradicting recorded decision R5: "Remove these two extra eligibility rules." An overdue open key followed by an unrelated pause therefore stops receiving reminders again. The current intent requests these exclusions, but the supplied precedence rule makes R5 authoritative. Confirm which behavior governs before proceeding. Coordinate bin/fm-watch.sh:1852-1853, docs/configuration.md:172, and tests/fm-watch-triage.test.sh:1245 and :1260.✅ **Test** - passed
✅ No issues found.
FM_WATCH_TRIAGE_TEST=<selector> bash tests/fm-watch-triage.test.sh: active-run stale override, worker decision opt-in, persisted reminder backoff, retirement serialization, and backlog captain hold selectorsbash tests/fm-wake-drain-unread-status.test.shpython3 .validation-tmp/live_watch.py: real watcher with isolated tmux and synthetic task recordspython3 .validation-tmp/baseline_live.py: reproduced false wedge using the base watcherpython3 .validation-tmp/default_live.py: exercised default reminder threshold and capAwaited all drivers and test processes, verified disposable tmux servers stopped, removed scratch files, and confirmed a clean working tree✅ **Document** - passed
✅ No issues found.
✅ **Lint** - passed
✅ No issues found.
✅ **Push** - passed
✅ No issues found.