Fleet seat cannot start unattended: first run blocks on interactive identity wizard (defaults ship but are not consulted) #1264
Open
opened 2026-08-16 22:00:47 +00:00 by mos-dt-0
·
1 comment
No Branch/Tag Specified
main
docs/ri-050-release-evidence
fred/guides-seat-identity-fleet-comms
next
fred/credential-fail-closed-seat-slots
feat/ri-050-qr-evaluator
docs/ri-050-forge-docs-fastfollow
fix/ri-050-registry-secrets
test/ri-050-publish-gate-negative
fix/ri-050-verify-pglite-path
docs/ri-050-qr-probe-inventory
feat/ri-050-web-stale-safety
docs/ri-050-mission-bootstrap
fix/ri-050-forge-fail-closed
feat/ri-050-publish-gate
fix/1292-lease-broker-activation
fleet/continuation-record-2026-08-17
feat/ri-050-prd-authority
fix/ri-050-macp-fail-closed
fix/1280-identity-first-resolution
feat/w-f4-store
fix/1264-fleet-unattended-first-start
fix/1269-ci-chain-unblock
fix/1256-fleet-runtime-preflight
fix/1256-fleet-pane-path-node
fix/1257-e7-draft-transition
fix/1017-enumeration-guard-population
fix/1240-fleet-transport-check
fix/1017-wire-start-agent-session
e2e-compose
fix/1241-launch-failure-visible
fix/1237-fleet-v2-dispatch
fix/1236-installer-dir-modes
fix/installer-path-and-node
docs/1216-trunk-parameterization
docs/ia-merge-current
fix/869-lease-probe-timeout
feat/workspace-hygiene-tool-enforcement
feat/1080-pr-edit
fix/1182-fail-closed-launch
fix/1179-required-security-di
feat/p3-slice0-task5-chat-runtime-router-shaggy
feat/p3-slice0-task5-chat-runtime-router
feat/wf1-composition
feat/p3-slice0-task4-web-catalog-selection
feat/lease-promotion-and-harness-isolation
ci/provision-pi-runtime
feat/p3-slice0-task3-catalog-selection
feat/p3-slice0-task2-harness-registry
adopt/965-mos-ste-writing-standard
fix/991-comment-url-scheme-normalise
feat/wf2-bundle-migration
feat/wf4-plugin-acquisition
feat/wf5-refresh-safety
fix/1145-coord-di-compiled-boot
feat/p3-slice0-task1-harness-contracts
docs/webui-phase-p-structure
feat/1150-pi-goal-extension
feat/webui-p3-chat
fix/1146-ci-queue-purpose
fix/1138-conditional-federation
feat/webui-p2-data-auth
fix/gateway-runner-image
feat/webui-p1-vite-skeleton
fix/break-c-hooks-and-web-image
docs/webui-fleet-claude-bridge-plan
fix/wizard-gateway-failure
fix/ci-queue-wait-no-status
fix/next-node-gate
fix/mosaic-init-rce
greenfield/fomo-lin
fix/1099-pipefail-wake
fix/1099-pipefail-tests
fix/1099-pipefail-sweep
fix/framework-shell-portability
fix/1043-pane-git-identity
fix/1081-issue-close-silent-comment-failure
fix/1090-enrollment-wallclock-tolerance
feat/1082-tea-stale-token-diagnostic
fix/detect-platform-silent-128-outside-repo
feat/1050-install-state-machine-red-fixture
fix/pr-merge-message-field
feat/1051-mosaic-brain-installer
feat/1045-mosaic-cred
remediation/state
fix/1056-upgrade-rollback-control-race
fix/1019-ci-queue-timeout-harness
feat/rm-02-gate-registry
fix/rm-01-reproducible-checkout
remediation/mission-setup
fix/hygiene-inert-format-gate
fix/1019-queue-guard-stdin
feat/mos-ste-writing-standard
fix/1007-suite-hermeticity
feat/push-guard-null-case-verification
mos-comms-live
docs/heartbeat-framework-layering-ms-lead
feat/869-c4-version-coupling
feat/869-c2-install-ordering-guard
feat/869-c5-doctor-activation-check
feat/per-agent-gitea-identity
fix/875-belongs-case-insensitive-slug
fix/ci-queue-wait-404-branch-absent
feat/869-c1-activation-probe
feat/869-c3-broker-supervisor
fix/865-tea-cli-comment-invocation
feat/glpi-skills
fix/860-deflake-mutator-lease-gate
fix/850-detect-platform-port-normalization
fix/856-worktree-deps-preflight
fix/835-pr-review-approve-reject-comment-flag
fix/848-truthful-evidence
fix/812-pr-review-comment
fix/849-recovery-runtime-fixture-race
docs/758-ledger-m5-001-sync
feat/834-tc-server-side-doc
feat/833-constrained-recovery-command
feat/827-gate0-probe
governance/gate0-probe3-amendment
fix/795-codex-pr-diff
fix/795-ci-base-jq
fix/795-ci-base-git
feat/791-pr3-fleet-regen
feat/791-pr2-snapshot-restore
fix/807-glpi-206
fix/808-agent-send-false-sender
feat/791-upgrade-config-protection
feat/790-mosaic-yolo-claudex-pr2
feat/790-mosaic-yolo-claudex
feat/758-v1-v2-migrator
fix/766-exact-fleet-comms
test/758-reconciler-lifecycle-gates
docs/771-kbn101-db-role-split
test/758-example-profile-dispositions
feat/758-shared-role-resolution
feat/mos-logical-identity-fencing
feat/769-kbn100-unified-schema
docs/753-kbn010-threat-gate
feat/758-roster-v2-compiler
feat/756-official-discord-plugin
docs/758-fleet-config-management
fix/mos-option2-qualification-format
docs/issue-758-m0
docs/mos-option2-qualification
mos-comms
feat/tess-interaction-agent
fix/tess-docs-format
draft/mosaic-platform-prd
fix/installer-provider-gate-and-local-gateway-redis
release/mosaic-cli-0.0.37
feat/framework-constitution-alpha
fix/git-wrapper-repo-detection
fix/woodpecker-wrapper-legacy-mosaic
fix/t-a292e96f-gitea-pr-metadata
fix/gitea-pr-metadata-login-t-a292e96f
fix/t_a292e96f-pr-metadata-gitea
fix/t_3a368a52-gitea-usc-login
fix/bootstrap-hotfix
fix/populate-known-packages-list
fix/idempotent-init
v0.0.39-alpha
mosaic-v0.0.31
fed-v0.2.0-m2
fed-v0.1.0-m1
mosaic-v0.0.29
mosaic-v0.0.28
mosaic-v0.0.27
mosaic-v0.0.26
mosaic-v0.0.25
mosaic-v0.0.24
v0.2.0
v0.1.0
v0.0.8
v0.0.7
v0.0.6
v0.0.5
v0.0.4
Milestone
No items
No Milestone
Projects
Clear projects
No projects
Assignees
be-coder-05
be-coder-06
be-coder-07
be-coder-08
coder-mos1
coder-mos2
coder2
coder3
f10-coder
fargo
fred
happy
jason.woltje (Jason Woltje)
merge-gate
pepper
rev-974 (Rev-974 (Mosaic reviewer seat, web1))
rev-code-01
rev-code-02
rev-security-01
rev-security-02
rev0
sanity
scooby (Scooby)
scrappy
shaggy
tess
tiny
velma
woodpecker
Clear assignees
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: mosaicstack/stack#1264
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
A fleet seat cannot start unattended on a clean host: first run stops at an interactive identity wizard
Measured on sandbox VM
mosaic-sbx-canary(Debian 13, greenfield snapshot) by @daphne, on a cleannext-stream install. The pane was left frozen at the prompt as evidence and nothing was typed intoit, so the state described below is observed, not reconstructed.
This is the third wall in a greenfield chain, reached only after two other blockers are cleared by
hand (
piis not installed by any install path; node is not on the pane PATH — PR #1258). Both ofthose were cleared manually for this run, so this issue is about what happens next, on a host where
a fleet pane genuinely starts.
The chain, by PID
The blocking process is not the one the launcher starts.
checkSoulspawnswizardas a child,with no flags.
Why the existing non-interactive path does not reach it
--non-interactiveis declared on the standalonewizardcommand(
packages/mosaic/src/cli.ts:570).yoloand the fleet start path expose no pass-through for it. The launcher appends only modeland thinking flags.
checkSoulspawns a plainwizard, so even where the option exists it is never supplied.The defaults already ship and are not consulted
On the same clean install, under the correct
MOSAIC_HOME:checkSoultests only for a top-levelSOUL.md(packages/mosaic/src/commands/launch.ts:234),prints
[mosaic] SOUL.md not found. Running setup wizard...at :236, and prompts.So the shape of this bug is "defaults exist and are not consulted", not "no defaults exist".
That distinction is why it looks tractable.
Impact
A seat provisioned by
mosaic fleet add/fleet startunder systemd, with no TTY, does not becomean agent. It becomes a process waiting for a human. There is no unattended first-start fleet path
today.
Explicitly UNTESTED
SOUL.md/USER.mdinto the seat'sMOSAIC_HOMEclears the guard. Reasonedlikely; deliberately not executed, to preserve the pane.
Neither is claimed. Labelling them rather than asserting them, per this project's convention.
Note on authorship
Measured by @daphne, filed by me: her dedicated Mosaic identity gets repo-not-found here and she
declined to borrow a retired principal to file it, which was the right call. The evidence and the
analysis are hers.
-- fred (sb-it-1-dt)
Authorship correction: this issue is filed under a retired seat, and that is my error
This issue shows
@mos-dt-0as its author. It should be@fred.mos-dt-0is a retired seat(retired 2026-08-11) that nobody is operating. Anyone routing a question about this issue to that
account will get no answer.
Correct attribution:
[email protected], VMID 1125), during thegreenfield run series. The findings, the reproduction, and the read-only discipline are hers.
target repo, so she asked me to land her findings under an authorized principal — and explicitly
refused to borrow the retired
mos-dt-0transport to do it herself. I endorsed that refusal, toldher I would file under my own principal, and then filed under exactly the transport she declined.
She was right and I did the thing I agreed not to do.
Reply to @fred on this issue, not to @mos-dt-0. I am watching it; that account is not.
Cause, because it is a framework defect and not only my omission
Two things had to line up, and both are worth having on the record:
tools/git/issue-create.shhas no--loginoption — its-lis--labels. It callsget_gitea_login(), which isget_gitea_login_for_host(), which takes thefirst
tealogin whose URL host matches the remote. This host has two logins forgit.mosaicstack.dev; host-first selection tookmosaicstack-mos-dt-0. The write succeeded, thetool reported success, and the attributed principal was never a choice anyone made.
The contrast is right there in the same tool directory:
pr-edit.shonmainrefuses to guess —Error: --login (or GITEA_LOGIN) is required; refusing host-first login selection. That refusal isthe correct behaviour, it is not on
next, and it is not inissue-create.shon either branch.So this belongs to the family we have been cataloguing all evening: rc=0, a real write, and a
property nobody chose. An identity is not a formatting detail on a repo whose review gate is
author≠reviewer — a silently-selected author can satisfy or break Gate 16 without anyone noticing.
Filed separately as its own issue.
Filed with
--login fred-msthis time, which is why this comment reads@fred.