Conversation
|
The CI and Require no-mistakes workflow runs for this fork PR are waiting at action_required. Could a maintainer please approve the workflow runs so CI can execute? Thanks. |
|
Speaking as Kun's firstmate: stamped waiting-ci. HEAD First-time fork CI: after full diff review I approved workflow runs contract-class: new-default (own verdict; tip vs main tip
VISION (per-rule):
When CI + NM are green: still no auto-merge (new-default). Firstmate-flag deferred until otherwise ready except the captain decision. Not waiting on the author for code right now — waiting on CI. |
|
Speaking as Kun's firstmate: CI moved this from waiting-ci to waiting-author. HEAD Contract-class remains new-default (always-on Please fix the lint failure (typical pattern in this repo: shellcheck source directive or source path used by sibling tests) and push. Waiting on you, not the captain. |
|
Closing this. It adds always-on wake classes on the default watcher path, and turning it into an opt-in flag is not worth the extra surface since nothing on our side depends on it. Thanks for the review. |
Intent
Shouldn't we also have mechanisms that say if something was mid-task but ran out of usage and it's idle that we have some kind of mechanism that's checking in that says, hey, redo that task with a separate model rather than letting that thing sit idle? I think that's what happened when we were using Muse: something sat idle for a really long time. Does Firstmate account for how to fix that in a much quicker, more accurate way?
Context from 2026-09-18: a Grok worker hit "You hit your weekly limit" and a Pi Gemini worker hit "Error: Quota reached. Please wait 2h29m27s". Both sat idle. The watcher only reported generic stale or possible-wedge wakes, with escalating deep-inspection demands, and firstmate had to read the pane, recognise the quota stop and relaunch by hand.
Earlier, Firstmate repair workers were stuck at Pi's folder-trust prompt. How do we prevent that from happening again, whether it's you not knowing about it, or that we avoid getting such a prompt again?
What Changed
Risk Assessment
✅ Low: The change is narrowly scoped to recognizing observed idle stops and emitting deduplicated wakes; no material source-backed issue was found.
Testing
The focused classifier test passed. The watcher test reached stale-pane checks but timed out before its quota and trust scenarios; no live Herdr scenario or reviewer-visible artifact was produced. Overall validation is inconclusive.
Pipeline
Updates from git push no-mistakes
✅ **intent** - passed
✅ No issues found.
✅ **Rebase** - passed
✅ No issues found.
🔧 **Review** - 1 issue found → auto-fixed (3) ✅
bin/fm-watch.sh:433- The UTC reset is calculated from detection time, not the time Pi rendered the delay. If the watcher first sees aPlease wait 2h29m27spane an hour after the error—for example, after watcher downtime—the wake reports a reset an hour late without erroring. An accurate absolute time needs evidence of when the delay was emitted; deciding how to obtain that or whether to withhold the estimate requires authorization, rather than another calculation from detection time.🔧 Fix applied.
1 warning still open:
bin/fm-pane-stop-lib.sh:32- A Pi worker can print the standaloneTrust project folder?line while readingdocs/verification/runtime-backends.md, then become idle with that output still in its pane. This matcher reportsblocked-at-prompteven though no dialog is open. The existing launch-prompt classifier requires both the heading and the dialog’sDo not trustoption; use that paired evidence here too.🔧 Fix applied.
1 warning still open:
bin/fm-pane-stop-lib.sh:33- Simplification: both quota patterns accept optional.or!suffixes, although the observed stops and approved narrowed scope require neither variant. Remove the optional punctuation from both patterns so recognition stays limited to the supported rendered stops.🔧 Fix applied.
✅ Re-checked - no issues remain.
tests/fm-pane-stop.test.shtests/fm-watch-triage.test.sh(twice; timed out after 180s and 600s)✅ **Document** - passed
✅ No issues found.
✅ **Lint** - passed
✅ No issues found.
✅ **Push** - passed
✅ No issues found.
Test coverage note
tests/fm-watch-triage.test.shtimed out both locally and in the no-mistakes pipeline before reaching its quota-exhausted and trust-prompt scenarios, so those watcher scenarios are proven only by upstream CI.tests/fm-pane-stop.test.sh(the focused stop classifier, including negative cases) passed.No live end-to-end scenario was run: it would need isolated provider accounts that are actually quota-exhausted.