Files
stack/packages/mosaic/framework/fleet/README.md
jason.woltje 191efaefeb
All checks were successful
ci/woodpecker/push/publish Pipeline was successful
ci/woodpecker/push/ci Pipeline was successful
feat(fleet): enforce generated environment boundary (#772)
2026-07-15 08:40:32 +00:00

2.2 KiB

Mosaic Fleet Rosters

The local fleet canary uses a product-owned roster schema with site-owned roster files. Product examples live here; active local rosters should live outside the package, normally at:

~/.config/mosaic/fleet/roster.yaml

The default tmux socket is mosaic-fleet so fleet commands do not touch the default tmux server. The roster is the desired-state authority; generated environment files are rebuildable projections, never a second source of configuration.

Examples

  • examples/minimal.yaml starts one local canary slot.
  • examples/local-canary.yaml starts a small generic dogfood fleet.
  • examples/operator-interaction.yaml is an example Pi operator-interaction service; replace its example agent name before provisioning.

Operator interaction service

services/operator-interaction.yaml pins the Pi runtime, GPT-5.6 Sol model, high reasoning, and the operator-interaction tool policy. The agent identity is provisioning data: choose a roster name, generate its per-agent environment file, then start the matching generic systemd instance. The service fails before launch if the configured identity does not match the instance or any pinned policy field drifts.

The installed tools/fleet/print-interaction-effective-policy.sh prints only the resolved name, runtime, model, reasoning, and tool policy. It never reads or prints credential variables.

Generated agent environment boundary

mosaic fleet install writes a private deterministic projection at ~/.config/mosaic/fleet/agents/<agent>.env.generated. It may relocate only approved local machine data to <agent>.env.local; generated keys, arbitrary commands, secret-like keys, duplicate keys, unknown keys, and unsafe permissions fail before a tmux session is created. Legacy .env input is regenerated, relocated, or quarantined and is not a launch authority.

See docs/fleet/reference/generated-env-boundary.md for allowed local keys and the USC downstream interface evidence.

Initialize a roster:

mosaic fleet init --profile minimal --write
mosaic fleet install-systemd
mosaic fleet start
mosaic fleet verify