agent-joule/crates/joule_coded/launchd
Repository files (latest commit first)
Filename Latest commit message Latest commit date
David Charlot 3fd9605a13 joule_coded: add fleet CLI subcommands and launchd packaging
Turn the worker binary into a fleet CLI over the same control protocol that
drives a GUI editor — any node, daemon or window, is reachable the same way.

- Subcommands: `serve` (the daemon, as before), `fleet` (every node on this
  machine with a one-line state summary), `status` (one node's full snapshot),
  `submit` (a coding task to a node's on-device agent), and `ctl` (the raw
  control method escape hatch). All are thin clients over
  joule_core::control::{run_client, run_client_tcp, list_peers} — no new wire.
- launchd install script generates a user agent in the GUI (Aqua) domain via
  `launchctl bootstrap gui/$(id -u)`. The GUI domain (not nohup-over-SSH) is
  required so the worker can initiate outbound local-network connections for
  the federation transport — a macOS process-responsibility constraint we
  root-caused (see lockstep-quic/MACOS_LAUNCH_CONTEXT.md). Generated plist
  passes plutil -lint.

Live-verified: serve a daemon, then ctl/status/spawn_session/submit/fleet.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
2026-06-16 10:17:12 -04:00
..
install-joule-coded.sh joule_coded: add fleet CLI subcommands and launchd packaging 2026-06-16 10:17:12 -04:00