Conversation
Purpose: re-stamp the watcher liveness beacon on every actionable fire so a sleep gap cannot make a healthy handoff appear stale. Upstream status: checked upstream/main through d6660d7, including the current watcher wake path; no equivalent fire-time stamp is present. Conflict level: reimplemented against the current delivery-aware wake function.
Purpose: let intake pin a full or simple dual-review tier into direct-PR briefs, run the review-only no-mistakes pass plus an independent reviewer, and keep reviewer findings off GitHub. Upstream status: searched upstream/main through d6660d7 and inspected the current explicit-mode brief and review surfaces; the fork workflow, launcher, skill, and prompts remain absent. Conflict level: reimplemented against explicit per-task delivery modes and the current brief scaffold.
Purpose: let ship briefs save task-local screenshots and publish safe durable PR evidence through per-PR draft release assets with bootstrap-checked prerequisites. Upstream status: searched upstream/main through d6660d7 and inspected current brief, bootstrap, and review guidance; no equivalent screenshot evidence workflow exists. Conflict level: reimplemented against the current explicit-mode brief and universal toolchain detector.
Purpose: apply the primary-shell CD guard inside linked secondmate homes while keeping linked crewmate and scout worktrees exempt. Upstream status: searched upstream/main through d6660d7 and inspected the current checkout-scope predicate; linked secondmate primaries remain unguarded. Conflict level: clean.
Purpose: pass prepared-state and resolved state and config overrides into detached Herdr and tmux AFK daemon children. Upstream status: searched upstream/main through d6660d7 and inspected current detached launch command construction; it still forwards only FM_HOME and supervisor targeting. Conflict level: clean.
Purpose: send supervision the exact unannotated Herdr pane target with separate actionable context while retaining the diagnostic annotation in the durable queue. Upstream status: searched upstream/main through d6660d7 and inspected the current status-span daemon path; the watcher still sends one annotated target string, which can make a no-status blocked edge self-handle. Conflict level: reimplemented against status-span classification and the current daemon reason parser.
Purpose: clear single-owner open decisions only after explicit working, done, or failed lifecycle evidence so an inconclusive run step cannot hide a captain decision. Upstream status: inspected upstream/main d6660d7 after the keyed-decision and captain-hold redesign; the current snapshot condition still clears any non-parked, non-blocked run-step result, including unknown. Conflict level: resolved against explicit delivery modes and current snapshot fixtures.
Purpose: preserve buffered AFK escalations and their first-append sidecar across daemon restarts while clearing only the stale wedge marker. Upstream status: searched upstream/main through d6660d7 and inspected current AFK entry, rollback, and stale-artifact handling; fresh entry still deletes pending delivery state. Conflict level: resolved alongside the retained detached-environment launch changes.
Purpose: render the classifier's canonical FM_CLASSIFY_RESOLVE_VERB override in secondmate, scout, and ship briefs. Upstream status: searched upstream/main through d6660d7 and inspected the current classifier and explicit-mode brief; the classifier remains configurable while every scaffold still hard-codes resolved. Conflict level: reimplemented against the current brief wording and explicit delivery modes.
Purpose: pin tasks-axi in CI so every job uses one capability-verified release instead of floating independently. Upstream status: upstream now requires tasks-axi >=0.2.4 and PR kunchenguid#3420 pins one auxiliary install to 0.2.5, but the three primary CI installs still float. Conflict level: reimplemented against the current 0.2.5-compatible workflow.
Document the fork as a patch stack on upstream/main, record the 2026-09-05 sync and per-carry dispositions, and preserve the historical drop inventory.
Owner
Author
|
CI scheduling caveat: GitHub reports 0 passed and 0 failed because upstream's CI workflow only triggers pull_request events whose base is main. This migration PR must target upstream-sync/2026-09-05, so no check run is scheduled. The complete local validation evidence and upstream-owned full-suite failures are recorded in the PR description; no workflow code was changed solely to manufacture a check. |
Owner
Author
|
Landed by force-push of main to abdaec1 (the previous main is preserved as legacy/main-2026-09-05). Per docs/FORK.md the stack PR is never merged through GitHub. |
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.
Summary
This rebuilds the fork as a rebase-only patch stack directly on
upstream/mainatd6660d7(2026-09-05).The branch contains ten retained carry commits and one final
docs/FORK.mdcommit, with no merge commits from the formerorigin/mainhistory.Carry dispositions
d6660d7wake path still did not stamp.last-watcher-beatat fire time.d6660d7.d6660d7snapshot fold still clears decisions on non-conclusive run-step states.FM_CLASSIFY_RESOLVE_VERB, but current brief scaffolds still hard-coderesolved.Validation
bin/fm-test-run.sh tests/fm-lint.test.sh: 1/1 passed, 0 failed, 0 gate skips.bin/fm-test-run.sh tests/fm-documentation-audiences.test.sh: 1/1 passed, 0 failed, 0 gate skips.bin/fm-lint.sh: ShellCheck 0.11.0 passed; actionlint 1.7.12 validated all 3 workflow files.bin/fm-test-run.sh --changed --base upstream/main: 122 scripts executed; the initial run had 112 successful exits and 10 failures. Five missingtasks-axifixtures and one Pythontomllibfixture passed when rerun with the required local tools; three reproducible upstream failures remained, and one Herdr timing failure passed in the full walk.bin/fm-test-run.sh --all: deliberate full walk completed all 181 scripts in 10,614,381 ms; 140 passed normally, 27 declared gate skips exited successfully, and 14 upstream/environment-owned scripts failed as documented below.git merge-base HEAD upstream/main:d6660d75d0fc534ee7f8c41f3415272ce51bb76f.git rev-list --count upstream/main..HEAD:11.git log --merges upstream/main..HEAD: empty.Upstream bugs noticed but deliberately not fixed
These failures reproduce on surfaces untouched by the patch stack, or fail in existing upstream assertions rather than the carry-added assertion. They were deliberately not repaired during this sync.
tests/fm-composer-lib.test.sh: a half-block rule row was not counted as a structural edge.tests/fm-muse-harness.test.sh: the versioned Muse process fixture was detected as an empty process identity.tests/fm-control-relaunch.test.sh: relaunch did not reach trace delivery.tests/fm-on.test.sh: its remote fixture omitsbin/fm-composer-lib.sh.tests/fm-remote-secondmate-lifecycle-e2e.test.sh: the failing seed exited before remote provisioning.tests/fm-remote-secondmate-trace-context.test.sh:PROJECT_NAMES[@]is unbound infm-remote-home-seed.sh.tests/fm-teardown.test.sh: the missing-Herdr-adapter case continued without its required preflight.tests/fm-voice-relay.test.sh: system Python 3.9 raisesRuntimeErrorwhenasyncio.Lock()is constructed without a current event loop.tests/fm-procevent.test.sh: the orphan fixture runner did not start under the long suite load.tests/fm-wake-daemon-lifecycle-e2e.test.sh: the watcher did not exit for a routine signal, including on a sequential rerun.tests/fm-wake-queue.test.sh: strict presentation-lock/parent-checkpoint timing assertions failed; the failure moved between those existing assertions on sequential rerun.tests/fm-watch-arm.test.sh: the recovery re-arm failure tracked by upstream issue tests/fm-watch-arm.test.sh: recovery re-arm assertion fails in changed-suite runs but passes serially kunchenguid/firstmate#3793 reproduces sequentially.tests/fm-watch-checkpoint.test.sh: the watch-lock PID survived the quiet checkpoint timeout on sequential rerun.tests/fm-watch-triage.test.sh: an existing captain-held replacement-throttle assertion failed under the 18-minute full-suite run; the carry-added fire-time beacon assertion passed in its focused run.The required
fm-ensure-agents-md.sh .check also reports that upstream currently has bothAGENTS.mdandCLAUDE.mdas real files; this sync intentionally leaves that upstream-owned conflict unchanged.Landing
Main is landed by force-push-with-lease to this tip after captain approval, with the previous main preserved as
legacy/main-2026-09-05; the PR itself is never merged through GitHub.