fix: keep secondmate operational inputs silent - #110
Merged
Merged
Conversation
…ness.test.sh by parsing worker-carried inbox records before extracting reread paths. Verification passed: secondmate runner 1/1, companion operational-input/brief/marker runner 3/3, syntax and diff checks clean. Only the test file changed; no production files or AGENTS.md were modified
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
Fix the defect where Pi secondmates answer away-supervisor digests, doorbells, fire-and-forget steers, and routine from-firstmate steers in captain voice. The generated secondmate charter and crewmate or scout brief scaffolds must state once under the status protocol that FIRSTMATE_OP digests, doorbells, steers, and marked from-firstmate requests are handled silently: never emit assistant or chat text, including acknowledgements, summaries, or idle notices; after any required status-file append, or no action, end with an empty assistant response; the address captain is reserved for the main firstmate. bin/fm-operational-input.sh must carry the same bounded one-sentence instruction on worker-bound operational inputs so already-launched mates receive it, while main-bound inputs remain unchanged and body parsing remains byte-compatible. Do not edit AGENTS.md. Extend the existing fm-brief and fm-operational-input tests through generated and executable interfaces; prove ship, scout, and secondmate scaffolds each contain exactly one copy and worker carriers contain exactly one copy without adding a second copy to crewmate briefs. Keep one fix per PR and touched tests green under bin/fm-test-run.sh. Preserve the two-review-round maximum. The named isolated Pi/Herdr live acceptance must use ~/Projects/firstmate/bin/fm-herdr-lab.sh only, never the default session or fleet panes, and prove a real marked secondmate appends the required status line while producing zero assistant text; this passed with session fm-lab-fm-mate-op-diges-23823-31152, pane w1:p2, token LIVE_OP_SILENCE_1788395551, exact status line, one carrier copy, final assistant content [], and helper teardown restored the unchanged running default session. Firstmate authority accepts the residual fire-and-forget-pre-carrier-resend-duplicates finding as-is for this PR: exposure is bounded to records persisted before this change lands and retried after it, the delivery-ID-specific dedupe remedy is filed as follow-up fm-send-fire-and-forget-precarrier-dedupe-f2, and the review step must be approved rather than skipped so the reviewed head is durably attested. Test and document steps must complete.
What Changed
Risk Assessment
Testing
Ran the focused behavioral suites and the required isolated Pi/Herdr end-to-end witness through
bin/fm-test-run.sh. The live test proved durable marker/carrier/silence delivery, exact status-file append, handled acknowledgement, zero assistant text, preserved direct captain input, and successful isolated teardown. No full suite, linter, formatter, or static-analysis command was run per the assigned test-phase contract.Evidence: Isolated Pi/Herdr end-to-end witness
Source: Isolated Pi/Herdr end-to-end witness
Real marked secondmate request: exact status append,assistant-content=[], zero assistant text, one carrier/rule copy, and direct captain input remained unmarked.Pipeline
Updates from git push no-mistakes
✅ **intent** - passed
✅ No issues found.
✅ **Rebase** - passed
✅ No issues found.
🔧 **Review** - 1 issue found → auto-fixed ✅
tests/fm-send-secondmate-marker-herdr-e2e.test.sh:170- The changed assertion still watches the wrong delivery plane. This test launches a localkind=secondmate, thenfm-send.sh "$ID" "$REQUEST"resolves it as a task selector; ordinary text is written to the task inbox and onlyfm_task_inbox_ring's doorbell is typed. The capture extension aborts everybefore_agent_startbefore Pi can read that record, sowait_for_prompt "$REQUEST"at line 168 cannot observe the request and the line-170 assertion cannot prove the worker carrier or the required status-only, zero-assistant behavior. Read the durable record for carrier bytes and use a non-aborting worker/status-file witness for the live silence acceptance; changing that acceptance-test boundary needs authorization.🔧 Fix: Fixed secondmate E2E inbox silence witness
✅ Re-checked - no issues remain.
✅ **Test** - passed
✅ No issues found.
bin/fm-test-run.sh tests/fm-brief.test.sh tests/fm-operational-input.test.sh tests/fm-pending-reply.test.sh tests/fm-send-remote-delivery.test.sh tests/fm-send-secondmate-marker.test.sh tests/fm-task-inbox.test.shFM_SEND_MARKER_HERDR_E2E=1 HERDR_LAB_HELPER=bin/fm-herdr-lab.sh bin/fm-test-run.sh tests/fm-send-secondmate-marker-herdr-e2e.test.sh✅ **Document** - passed
✅ No issues found.
✅ **Lint** - passed
✅ No issues found.
✅ **Push** - passed
✅ No issues found.