Files
stack/docs/scratchpads/2026-06-20-fleet-release-hardening.md
Jarvis e7b184b0e2
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
fix(fleet): harden operator sends for release
2026-06-20 15:26:44 -05:00

2.4 KiB

Fleet release hardening

Objective

Harden the Mosaic local fleet release path for operator sends, tmux/systemd verification, package contents, and dogfood release documentation.

Constraints

  • Do not edit docs/TASKS.md.
  • Do not change production deployment refs.
  • Keep fleet transport generic and named-socket safe.
  • Preserve strict roster validation.
  • Add tests first or alongside fixes.

Plan

  1. Add regression tests for deterministic mosaic agent send source labels.
  2. Strengthen fleet status/verify/package/install-systemd coverage.
  3. Implement focused CLI/source-label changes.
  4. Update local canary documentation with dogfood preflight.
  5. Run formatting, targeted tests, typecheck, lint, and package dry-run evidence.

Evidence Log

  • Started from existing docs/PRD.md; durable local fleet canary is in v0.1.0 scope.
  • Loaded mosaic-fleet-operations skill; key constraints are isolated tmux sockets, no default tmux positive tests, and active (exited) is not liveness.
  • TDD red: pnpm --filter @mosaicstack/mosaic test -- src/commands/fleet.spec.ts initially failed because node_modules was absent; after pnpm install, the new source-label tests failed on missing -S, missing helper, and unknown --source-label.
  • Green implementation: mosaic agent send now passes -S <hostname>:operator by default and accepts --source-label / --source overrides.
  • Test coverage added for tmux-based fleet verify liveness, package files allowlist containing framework, and explicit operator source-label command construction.
  • Formatting: pnpm exec prettier --write packages/mosaic/src/commands/fleet.ts packages/mosaic/src/commands/fleet.spec.ts docs/guides/fleet-local-canary.md docs/scratchpads/2026-06-20-fleet-release-hardening.md.
  • Targeted tests: pnpm --filter @mosaicstack/mosaic test -- src/commands/fleet.spec.ts src/cli-smoke.spec.ts passed with 49 tests.
  • Typecheck: pnpm typecheck passed.
  • Lint: pnpm lint passed.
  • Package dry-run: npm pack --dry-run --json from packages/mosaic included framework/fleet, framework/systemd/user, framework/tools/fleet/start-agent-session.sh, and framework/tools/tmux/{agent-send.sh,send-message.sh}.
  • Review: ~/.config/mosaic/tools/codex/codex-code-review.sh --uncommitted approved the supplied diff with no findings; the review tool noted its read-only sandbox could not inspect files directly.