Closes R13 (F3-m3). mosaic update installed the new npm CLI but never re-seeded ~/.config/mosaic from the package's bundled framework/, so shipped launcher/runtime changes (agent-name export + native HB) stayed DORMANT until a manual re-seed — operators got the new CLI on a stale framework. - update-checker.ts: resolveBundledFrameworkRoot, buildReseedCommand (install.sh in MOSAIC_SYNC_ONLY=1 MOSAIC_INSTALL_MODE=keep — the P4 data-safe reconcile: framework-owned overwrite + backup-once; SOUL/USER/*.local/credentials kept), runFrameworkReseed, readRosterAgentNames, buildRelaunchCommands. - cli.ts update: after a successful CLI install that includes @mosaicstack/mosaic, re-seed the framework (default-on; --no-reseed to skip). Then --relaunch restarts rostered agents (systemctl --user restart mosaic-agent@<name>), else prints clear activation guidance. Only re-seeds when the framework-bearing package updated. Flow: update CLI -> re-seed framework (data-safe) -> relaunch agents (opt-in). Verified: 6 new unit tests + 19 runtime + 26 launch tests green; tsc/eslint/ prettier clean. Sync data-safety already proven (P4 matrix + live validation). Refs #609 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EsgTQzV5YUGk1JtCLP4B83
1.5 KiB
1.5 KiB
F3-m3 — mosaic update re-seeds framework + relaunches agents (R13)
- Issue: #609 · Branch:
feat/f3-m3-update-reseed
Gap (found in 0.0.39 production validation)
mosaic update installs the new npm CLI but never re-seeds ~/.config/mosaic/ from the package's
bundled framework/. So the shipped custom Pi harness (agent-name export + native HB, 0.0.39) stays
DORMANT until a re-seed — operators get the new CLI on a stale framework.
Implementation
update-checker.ts:resolveBundledFrameworkRoot(),buildReseedCommand()(install.sh inMOSAIC_SYNC_ONLY=1 MOSAIC_INSTALL_MODE=keep— the P4 data-safe reconcile),runFrameworkReseed(),readRosterAgentNames(),buildRelaunchCommands()(systemctl --user restart per agent).cli.tsupdate: after a successful CLI install that includes@mosaicstack/mosaic, re-seed the framework (default-on;--no-reseedto skip). Then either--relaunch(restart rostered agents) or print clear guidance to runmosaic update --relaunch/mosaic fleet restart.
Flow
update CLI → re-seed framework (data-safe) → relaunch agents (opt-in) — closes R13, activates the
native harness for every operator.
Verification
- 6 new unit tests (reseed command/env, relaunch commands, roster parse, missing-installer guard).
- 19 runtime + 26 launch tests still green; tsc/eslint/prettier clean.
- Data-safety of the sync is already proven (P4 5-fixture matrix + live dragon-lin validation).