feat: add PR communication gate and fleet operations tooling - #2946
Open
bingb0t5 wants to merge 42 commits into
Open
feat: add PR communication gate and fleet operations tooling#2946bingb0t5 wants to merge 42 commits into
bingb0t5 wants to merge 42 commits into
Conversation
…er check The adjacent-follow-up E2E case captured the tmux pane for its duplicate-captain-answer assertion immediately after the session file confirmed processing, with no settle wait, unlike every other readiness check in this test. Sending two followUp deliveries queues more Calm presentation work (an extra operational-user row plus its hiding invalidation) than a single one, so the already-settled captain answer's redraw could still be in flight at that instant, making the check flaky. Poll the pane the same way the session-file wait already does, and track the peak count seen along the way so a captain answer that is genuinely rendered twice for even one frame still fails even if a later redraw were to self-correct.
…ss gates Adds the two triggers from data/fm-auto-stow/report.md so the captain no longer has to type /stow to keep memory current, without a new daemon, watcher, or cascade: - bin/fm-session-start.sh prepends a STOW DUE line to a compact/clear session-start re-emit when state/.last-stow is missing or older than FM_AUTO_STOW_INTERVAL_SECS (default ~24h), silent when current. - AGENTS.md section 8 rule 4 now also checks that same marker on a heartbeat wake, using the same larger-than-heartbeat interval, so a pass runs at most once per interval rather than on every wake. - The stow skill touches state/.last-stow only at the end of a pass it can call reset-safe, mirroring state/.last-heartbeat's bare-mtime marker. Away-mode heartbeats stay bash-only and unaffected: they never reach an LLM turn to run /stow in, per the existing away-daemon design.
Vendor the lalo-admin assessor already proven on mrbeanz-brains, with the same drift pin and live SoT comparison, so firstmate PRs cannot skip the required overview, decision, module-boundary, and validation sections.
Promote the last-stow marker contract out of the cascade heading so a secondmate home still throttles automatic /stow. Pin the stale re-emit age assertion to a 9xxxx band instead of the prefix 900. Document that default Pi branch supervision does not run heartbeat /stow, and leave that wiring as follow-up (kunchenguid#2944) rather than editing fm-branch-prompt.sh.
Adds a stdlib-only Python server that shells quota-axi --json per request and serves one self-contained page (fleet summary, one card per provider, live/signed-out/error states in quota-axi's own words, 30s client refresh), matching the design in data/fm-quota-dashboard/report.md. Binds only to this host's own Tailscale IPv4 address, confirmed via `tailscale ip -4`, and refuses to start otherwise - never 0.0.0.0, never a public interface.
Raise the shell-out to 45s so one slow provider degrades instead of blanking the page. Prove the listener is address-scoped via 127.0.0.2, and keep the scripts index voice cluster intact.
Confidence Score: 5/5The PR appears safe to merge. No blocking failure remains. Reviews (7): Last reviewed commit: "Merge fork main preserving PR 5 and PR c..." | Re-trigger Greptile |
Checking out the base branch cannot execute the new checker until it lands, so restore pull_request and assess the proposed head instead.
fix(test): settle Pi follow-up pane before the duplicate-captain-answer check
feat(bin): serve quota dashboard on the tailnet
Vendor the lalo-admin assessor already proven on mrbeanz-brains, with the same drift pin and live SoT comparison, so firstmate PRs cannot skip the required overview, decision, module-boundary, and validation sections.
Checking out the base branch cannot execute the new checker until it lands, so restore pull_request and assess the proposed head instead.
Do not skip authentication or not-found responses. Local-pin fallback is only for network errors, 408, 429, and 5xx. GITHUB_TOKEN is not a substitute for PR_COMMUNICATION_SOT_TOKEN.
feat: enforce complete PR communication
feat: automate stow on session re-emits and heartbeats
bingb0t5
force-pushed
the
fm/fm-pr-comms-gate
branch
from
August 24, 2026 14:03
8c62aa3 to
4f0bbfc
Compare
Keep the automatic stow updates alongside the fail-closed CEO-overview validation changes. Co-authored-by: Cursor <cursoragent@cursor.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
Add the same fail-closed CEO-overview PR check Firstmate currently lacks, consuming the proven check pattern from mrbeanz-brains PR 11. Require What is changing, Why it matters, Customer or business impact, Risk and rollout, and the other Lalo-equivalent sections that fit this repo: Decision needed, Module-boundary decision, and Validation with Checks passed, Checks not run, and Evidence and limitations. Prove that a non-compliant description fails and a compliant description passes in real CI. Do not invent a weaker copy or add a forgotten secret that makes drift self-compare. Follow firstmate-coding-guidelines. Land on https://github.com/bingb0t5/firstmate. Use no-mistakes and never --yes. Preserve PR 5 automatic stow behavior alongside the fail-closed PR communication gate after merging the latest fork main. Resolve conflicts on their merits with a merge, not a rebase, and keep every accepted pipeline fix commit. Run one fresh validation pass on the merged head, including the fail-then-pass CEO-overview proof. The target PR on bingb0t5/firstmate must be conflict-free and green.
What Changed
quota-axiprovider status and reset windows./stowreminders with separate attempt and reset-safe markers.Risk Assessment
✅ Low: The change preserves automatic stow behavior and implements a well-bounded fail-closed PR communication gate with trusted base-branch verification, pinned entrypoint and assessor checks, and behavioral coverage for compliant, non-compliant, drift, and remote-failure cases.
Testing
Focused PR-gate, session-start automatic-stow, and Pi integration tests passed on merged head 503b615; a fresh CLI exercise rejected an incomplete description with every missing requirement and accepted a complete one, while GitHub Actions runs 32720666105 and 32721072427 demonstrate the same fail-then-pass behavior in real CI. The worktree stayed clean; final PR #6 publication, conflict resolution visibility, and green checks belong to the outer push and CI phases.
Evidence: Target commit CLI fail-then-pass transcript
Source: Target commit CLI fail-then-pass transcript
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.
Inspectedgit diff 038d0f7ec6ba7238a151722931434dcf06ff37c4..503b615d0db7bf83630c7ff76f682ae1c92a8ccfand relevant commit history.bash tests/pr-communication.test.shbash tests/fm-session-start.test.shbash tests/fm-calm-pi-extension.test.shDirectnode --experimental-strip-types scripts/check-pr-communication.tsexecution with non-compliant and compliant PR bodies on target commit503b615d0db7bf83630c7ff76f682ae1c92a8ccf.gh-axi run view 32720666105 --repo=bingb0t5/firstmate --log-failedgh-axi run view 32721072427 --repo=bingb0t5/firstmategh-axi pr view 6 --repo=bingb0t5/firstmateandgh-axi pr checks 6 --repo=bingb0t5/firstmateVerified fork main commit8c74f4e5df2a6ba291b438926c00a9a056996c26is an ancestor of the merge target and the worktree remained clean.✅ **Document** - passed
✅ No issues found.
✅ **Lint** - passed
✅ No issues found.
✅ **Push** - passed
✅ No issues found.