feat: harden recurring fleet failure guardrails - #33
Open
ruby-dlee wants to merge 14 commits into
Open
Conversation
ruby-dlee
force-pushed
the
fm/fm-guardrail-hardening-g6
branch
from
July 26, 2026 19:34
ce70f6d to
b245858
Compare
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
Close four recurring Firstmate failure modes with code-level guardrails: automatic browser safety in every crew brief, authenticated direct-account spawn preflight, completion-report heading-level tolerance, and harness-correct bare skill delivery.
What changed
fm-sendrefuses a harness-incompatible bare installed-skill token and names the correct form without changing the existing popup-settle behavior.provider_session_idfor sticky recovery.Secondmate routing contract
The failing pool-only secondmate check did not expect direct account-directory routing.
It failed before reaching its routing assertions because the test fixture did not contain a valid, uniquely registered secondmate home.
The corrected Behavior coverage now states both documented cases explicitly:
account_home.No undelivered future contract for direct-account secondmate launch is encoded by this PR.
Verification
01KYFPN0CSMPKEXR070H75KZDJcompleted with review, documentation, lint, push, PR, and CI gates passed; its local broad test step was deliberately skipped because this task's brief did not enable Herdr lifecycle testing.Accepted pre-existing CI failure
The Behavior job at current head
ab8367593ca1f43d987345541eb33f23f390dc29reaches:This is accepted as a pre-existing base failure, not fixed or weakened in this lane:
3e597f4f3c093d7210a486c7688fb1f41adc14bd;tests/fm-backend-herdr.test.shis blobd60fde8d30c6e2f4e601e115d9934c46c1dcb56eat both base and head;bin/backends/herdr.shis blobabe02947a84aaaff7d2a41f9f72b4a0e064609ccat both base and head;Run: https://github.com/ruby-dlee/firstmate/actions/runs/30218454744
Initial no-mistakes preflight failure
Before the successful pipeline run, the trusted-main config preflight failed twice because the gate repository had no usable
originremote.The missing remote was restored and the pipeline then ran normally.
The failure remains worth fixing operationally because it stranded a gate behind an opaque trusted-config error.
First failure:
Second failure:
Deployment
No manual service deployment is required.
The guardrails take effect when Firstmate updates to the merged template revision.
Updates from git push no-mistakes