fix: keep idle watcher supervision silent - #10
Merged
Merged
Conversation
|
Superseded by pipeline PR. |
This was referenced Jul 21, 2026
vipentti
pushed a commit
to vipentti/firstmate
that referenced
this pull request
Aug 5, 2026
* Clarify watcher silence protocol * no-mistakes(document): Sync watcher silence documentation
This was referenced Aug 7, 2026
Closed
Closed
This was referenced Aug 10, 2026
This was referenced Aug 10, 2026
This was referenced Aug 11, 2026
This was referenced Aug 11, 2026
Scout plan (huddle-app second mate, 2026-08-29)Proposed Options / Plan / Blocking / Lead decisions for this ticket, from the Current state
Missing: the host bridge that invokes the installed FluidVoice hotkey while the focused composer receives its normal inserted text. OptionsThe recorded default is fixed: invoke the installed FluidVoice hotkey and let its inserted text become the composer draft. In-app recording and transcription remain later work; they add a recording, service, quota, and cost boundary. Recommended PlanModules:
Seams:
Validation criteria:
Blocking?blocked by lead decision — the proposed nix-dots patch needs the captain’s actual installed FluidVoice shortcut; the recorded input-path default itself is not reopened. Lead decisions
|
This was referenced Sep 20, 2026
NewAiCoder
referenced
this pull request
in NewAiCoder/firstmate
Sep 26, 2026
) * feat(spawn): minimal worker tool surface with brief-declared extras Crewmates and scouts now launch with --strict-mcp-config, an empty per-task --mcp-config, and --setting-sources project,local, dropping the plugin skill catalog that was most of a 135k-145k token cold prefix re-read across an average of 280 turns per seat (spec D6, docs/superpowers/specs/2026-09-05-token-telemetry-design.md). bin/fm-dod-lib.sh's fm_brief_tools reads the brief's ## Firstmate spec tools: line and drops anything not in browser/context7/mockup/lavish/ none with a warning, so a typo narrows the surface instead of widening it. bin/fm-spawn.sh writes the resolved MCP config into the task tmp dir at 0600 and wires it into the claude launch template. fm-brief.sh scaffolds tools: none into every new brief. That appends a fixed line after the {FIRSTMATE_SPEC} placeholder, so fm_brief_task_placeholders_present also had to recognize the new unfilled-scaffold shape alongside the legacy bare placeholder, or an unfilled brief would have spawned as though it were filled. Also updates tests/fm-spawn-dispatch-profile.test.sh and tests/fm-secondmate-harness.test.sh, whose assertions pinned the exact claude launch string, for the new flags. Out of scope for this repo: the no-mistakes pipeline-seat config template and the before/after cold-prefix measurement both live in the operator's private config repo, a separate repo from this worktree. * no-mistakes(review): mirror captain's user-scope hooks and exempt secondmate from minimal claude surface * no-mistakes(lint): Fix SC2015 A&&B||C guard shape in fm-spawn-tool-surface test --------- Co-authored-by: NewAiCoder <170579485+NewAiCoder@users.noreply.github.com>
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.
Intent
The captain asked me to update firstmate's own instructions so future supervision through bin/fm-watch.sh does not waste user-facing turns with idle status messages. The change should clarify that waiting on the watcher is intentionally silent, empty polls and elapsed waiting time are internal tool bookkeeping, unchanged heartbeat reviews should not be reported, and watcher mechanics such as restart/poll/no-change confirmations do not reach the captain unless they reveal a captain-relevant issue.
What Changed
bin/fm-watch.sh, empty polls, elapsed waiting time, and no-change heartbeat reviews remain internal instead of user-facing updates.fm-watch.shas waking when supervision work is due, including heartbeat reviews, not only when a crewmate needs attention.Risk Assessment
✅ Low: The change only clarifies documentation for watcher communication behavior and does not alter executable code or operational mechanics.
Testing
I verified the documentation-only behavior change by inspecting the changed AGENTS.md supervision flow and producing an evidence transcript showing every intended watcher-silence rule present; no source tests were applicable, and the working tree remained clean.
Evidence: Watcher-silence instruction evidence
309:Waiting on the watcher is intentionally silent. 310:After starting or restarting it, do not send idle progress updates to the captain; wait until it returnssignal,stale,check, orheartbeat, unless the captain asks for status. 311:Empty polls, elapsed waiting time, and "still no change" are tool bookkeeping, not conversational progress. 324: A heartbeat with no captain-relevant change is internal; do not report that the fleet is unchanged. 344:Silence is the correct state while a healthy background watcher is waiting. 366:Routine watcher mechanics include restarting the watcher, polling a waiting watcher, and confirming that no status changed.Pipeline
Updates from git push no-mistakes
✅ **intent** - passed
✅ No issues found.
✅ **Rebase** - passed
✅ No issues found.
✅ **Review** - passed
✅ No issues found.
✅ **Test** - passed
✅ No issues found.
Reviewedgit diff f3958097383870fbc9be46365016a5252a73beff..HEAD -- AGENTS.mdto confirm the change scope is limited to watcher-silence instructions.ReadAGENTS.mdsection 8 and section 9 around lines 304-366 to evaluate the end-user supervision instructions in context.Ranrg -n 'Waiting on the watcher|idle progress|Empty polls|heartbeat.*captain-relevant|Silence is the correct state|Routine watcher mechanics' AGENTS.mdand saved the matching instruction lines as evidence.Rangit status --shortafter testing to confirm no working-tree artifacts were created.✅ **Document** - passed
✅ No issues found.
✅ **Lint** - passed
✅ No issues found.
✅ **Push** - passed
✅ No issues found.