v0.99.0: OpenFleet, a swarm leaves a record behind
moshcode 0.99.0 makes a swarm leave a record behind.
Until now moshcode swarm split a task, ran the pieces in panes, and killed them. Nothing durable said which panes belonged to which swarm, who started it, what each pane was allowed to touch, or whether the human had a say. This release implements the OpenFleet specification (https://logicsrc.com/openfleet) on the moshcode side.
What changed:
moshcode swarmmints a swarm id before planning, writes one OpenFleet record per pane under~/.openfleet(setOPENFLEET_HOMEto move it), names each pane after its member id, and passesOPENFLEET_HOME,OPENFLEET_RECORD,OPENFLEET_FLEET,OPENFLEET_MEMBERandOPENFLEET_SWARMinto the pane's environment beside the herd variables. The planner is asked for the files each piece may write, and that list is stored as data on the record, not as prose in the prompt.- The fleet ledger gets
swarm.spawnbefore the first pane starts,member.startwhen a prompt goes in,member.endfor every pane when the swarm finishes, and oneswarm.endcarrying the synthesis and the--verifyverdicts.--keepleaves the panes running and writes no end lines. A swarm started inside another member records that member as its parent; a swarm run by hand is the human's own. - A swarm that would exceed the ceiling it inherited (approvals, depth, fan-out, hosts, deadline) is refused before anything starts, and the refusal is a ledger line the sysop can read.
- The herd manifest now says truthfully when a pane runs with native approvals bypassed.
herd psgroups panes by fleet and swarm and marks bypass members.herd startgains a repeatable--env KEY=VALUE.herd servewithholds bypass panes unless--expose-autonomous, as it always did for agent panes. - New
moshcode fleetverbs:openandcapfor the human alone,tree,stopandlogfor anyone within reach.treefolds the ledger and the records into one tree, joins the herd roster for liveness, and enforces deadlines and budgets.stopends a swarm as one unit, nested swarms first.
The same files are read by logicsrc fleet and by the Claude Code hooks logicsrc fleet hooks install adds, so a swarm moshcode starts and a job Claude Code runs appear in one tree.