Skip to content

fix(spawn): stop passing the removed --tui-mode flag on Pi launches - #2

Merged
tiago-peixoto merged 4 commits into
mainfrom
fm/firstmate-pi-083-tui-mode-flag-removed
Aug 11, 2026
Merged

tiago-peixoto merged 4 commits into
mainfrom
fm/firstmate-pi-083-tui-mode-flag-removed

Conversation

@tiago-peixoto

Copy link
Copy Markdown
Owner

What this fixes

Pi 0.83.0 removed the --tui-mode option. bin/fm-spawn.sh still passed --tui-mode regular on every Pi-family launch, so Pi exited at its argument parser:

Error: Unknown option: --tui-mode

The spawn still reported success and wrote task metadata, so the task looked dispatched while no agent was running and the brief was never read. That blocked every new Pi crewmate, scout and secondmate launch.

The change

The obsolete argument is removed from both Pi-family launch templates. Crew and scout launches keep model, thinking level, per-task turn-end extension and typed instructions; secondmate launches keep model, thinking level and both primary supervision extensions.

regular was the documented default while the flag existed, and 0.83.0 offers no replacement, so this restores prior behaviour rather than changing it. The flag came from kunchenguid#2005 to keep crews out of fullscreen where rewritten scrollback can bury a steer; that concern is unchanged, the option enforcing it is simply gone upstream.

Verification

Reproduced and fixed against the real tool, not inferred:

  • pi --version reports 0.83.0; pi --help has no TUI flag.
  • pi --tui-mode regular exits 1 with Error: Unknown option: --tui-mode.
  • A real worker launch died at exactly that parser error before reading its brief. After the change, the same worker relaunched, reported working, completed a full code review and reported done.
  • Passing: tests/fm-spawn-dispatch-profile.test.sh, tests/fm-control-relaunch.test.sh, tests/fm-secondmate-harness.test.sh, bin/fm-lint.sh, bin/fm-doc-audience-check.sh.

.agents/skills/harness-adapters/SKILL.md and docs/configuration.md are updated so the recorded Pi facts match the shipped launch, and the test fixtures no longer leak Git signing configuration into assertions.

Why this PR exists alongside the upstream one

This change went through the no-mistakes pipeline, which raised it as a contribution to kunchenguid/firstmate (PR kunchenguid#2104). That PR is a cross-fork contribution and lands on upstream's schedule, not ours.

This PR lands the same validated commit on our own main, per the standing rule that our fork's main is what we run: a finished change merges here immediately so it is dogfooded and gathers real evidence, which then either strengthens the upstream PR or justifies discarding it. Our pipeline is the shipping gate; upstream review is not.

Expect one red check. PR must be raised via no-mistakes inspects the PR body for the pipeline's own signature line and fails when it is absent. That signature belongs to the pipeline-authored PR upstream; it has deliberately not been copied or hand-written here, because that marker is the pipeline's to write, not a human's to reproduce. The check's failure says nothing about this code - it went through the pipeline, and the run's evidence is in kunchenguid#2104.

Blast radius

Pi and pi-signed launches only. No other harness, backend, or supervision path is touched.

kunchenguid and others added 4 commits August 10, 2026 12:05
…nchenguid#2091)

The public installer-facing stow skill scoped its classify-then-replace
discipline to TODO/BACKLOG items only, so findings routed to a memory file
had no stated rule against a blind append or a wholesale overwrite.

Step 6 now classifies every finding against the destination's current
contents as new, duplicate, superseding, or obsolete, and states the
considered replacement each classification implies. The outcomes follow the
tiered-memory contract already in the file: an obsolete entry is refreshed,
archived, or replaced in a way that preserves its fact, a duplicate folds
into the entry that already carries it, and a superseded body worth keeping
leaves through step 7's existing exits rather than a second recovery
mechanism.
* fix(watcher): resurface durable work after downtime

* no-mistakes(review): Make watcher rearm recovery durable and cursor-safe

* no-mistakes(review): Persist safe recovery markers across migration lock recovery

* no-mistakes(review): Retain stale lock when recovery marker publication fails

* no-mistakes(review): Preserve delivery-gap recovery and quarantine malformed markers

* no-mistakes(review): Serialize recovery consumption and report acknowledgment failures

* no-mistakes(review): Centralize recovery publication before clearing watcher evidence

* no-mistakes(review): Guarantee recovery evidence across queue and lock handoffs

* no-mistakes(review): Publish recovery evidence before durable wake commits

* no-mistakes(review): Replace recovery marker Perl dependency with Node

* no-mistakes(review): Keep interrupted wakes durable until handling acknowledgment

* no-mistakes(review): Add post-handling durable wake acknowledgements

* no-mistakes(review): Enforce post-handling acknowledgement across recovery and AFK return

* no-mistakes(review): Bind wake acknowledgements to recovery generations

* no-mistakes(review): Align wake regressions with generation-bound acknowledgements

* no-mistakes(document): Document durable re-arm recovery semantics

* no-mistakes(lint): Resolve ShellCheck warnings in recovery and watcher tests

* no-mistakes: apply CI fixes

* test(watcher): assert post-handling wake replay

* no-mistakes(review): Prevent successor loops and adopt legacy wake generations

* no-mistakes(review): Rearm durable wakes without recursive successor recovery

* no-mistakes(review): Align recovery tests with handling marker state

* no-mistakes(review): Delay handling transition until successor launch is established

* no-mistakes(review): Confirm wake handling only after successful prompt delivery

* no-mistakes(review): Acknowledge AFK wakes only after evidence publication

* no-mistakes(review): Prevent AFK wake loss before post-handling acknowledgement

* no-mistakes(document): Document durable wake acknowledgement semantics

* no-mistakes(lint): Suppress false positive for recovery action output

* no-mistakes: apply CI fixes

* no-mistakes: apply CI fixes
* ci: add Windows Herdr automation spike

* ci: run Windows spike on its pull request

* fix: wait for Windows Herdr command output

* fix: run ANSI probe in pane shell

* ci: keep Windows Herdr spike manually triggered

* docs: clarify Windows Herdr spike verdict
@tiago-peixoto
tiago-peixoto merged commit fe30ee2 into main Aug 11, 2026
23 of 25 checks passed
tiago-peixoto added a commit that referenced this pull request Aug 14, 2026
* docs(stow): generalize read-before-write in the public stow skill (kunchenguid#2091)

The public installer-facing stow skill scoped its classify-then-replace
discipline to TODO/BACKLOG items only, so findings routed to a memory file
had no stated rule against a blind append or a wholesale overwrite.

Step 6 now classifies every finding against the destination's current
contents as new, duplicate, superseding, or obsolete, and states the
considered replacement each classification implies. The outcomes follow the
tiered-memory contract already in the file: an obsolete entry is refreshed,
archived, or replaced in a way that preserves its fact, a duplicate folds
into the entry that already carries it, and a superseded body worth keeping
leaves through step 7's existing exits rather than a second recovery
mechanism.

* fix: resurface durable supervision work after re-arm (kunchenguid#2065)

* fix(watcher): resurface durable work after downtime

* no-mistakes(review): Make watcher rearm recovery durable and cursor-safe

* no-mistakes(review): Persist safe recovery markers across migration lock recovery

* no-mistakes(review): Retain stale lock when recovery marker publication fails

* no-mistakes(review): Preserve delivery-gap recovery and quarantine malformed markers

* no-mistakes(review): Serialize recovery consumption and report acknowledgment failures

* no-mistakes(review): Centralize recovery publication before clearing watcher evidence

* no-mistakes(review): Guarantee recovery evidence across queue and lock handoffs

* no-mistakes(review): Publish recovery evidence before durable wake commits

* no-mistakes(review): Replace recovery marker Perl dependency with Node

* no-mistakes(review): Keep interrupted wakes durable until handling acknowledgment

* no-mistakes(review): Add post-handling durable wake acknowledgements

* no-mistakes(review): Enforce post-handling acknowledgement across recovery and AFK return

* no-mistakes(review): Bind wake acknowledgements to recovery generations

* no-mistakes(review): Align wake regressions with generation-bound acknowledgements

* no-mistakes(document): Document durable re-arm recovery semantics

* no-mistakes(lint): Resolve ShellCheck warnings in recovery and watcher tests

* no-mistakes: apply CI fixes

* test(watcher): assert post-handling wake replay

* no-mistakes(review): Prevent successor loops and adopt legacy wake generations

* no-mistakes(review): Rearm durable wakes without recursive successor recovery

* no-mistakes(review): Align recovery tests with handling marker state

* no-mistakes(review): Delay handling transition until successor launch is established

* no-mistakes(review): Confirm wake handling only after successful prompt delivery

* no-mistakes(review): Acknowledge AFK wakes only after evidence publication

* no-mistakes(review): Prevent AFK wake loss before post-handling acknowledgement

* no-mistakes(document): Document durable wake acknowledgement semantics

* no-mistakes(lint): Suppress false positive for recovery action output

* no-mistakes: apply CI fixes

* no-mistakes: apply CI fixes

* ci: measure Herdr automation on Windows runners (kunchenguid#2100)

* ci: add Windows Herdr automation spike

* ci: run Windows spike on its pull request

* fix: wait for Windows Herdr command output

* fix: run ANSI probe in pane shell

* ci: keep Windows Herdr spike manually triggered

* docs: clarify Windows Herdr spike verdict

* fix: support Pi 0.83 worker launches

---------

Co-authored-by: Kun Chen <3233006+kunchenguid@users.noreply.github.com>
@tiago-peixoto
tiago-peixoto deleted the fm/firstmate-pi-083-tui-mode-flag-removed branch September 5, 2026 18:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants