cyberfleet 0.5.2 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cyberfleet",
3
- "version": "0.5.2",
3
+ "version": "0.7.0",
4
4
  "description": "Fleet & crew personas over cyberlegion — Pod (ship's bridge), Operator (command center), Crimp (crew recruitment), and Mechanic (automaton building).",
5
5
  "author": {
6
6
  "name": "unional"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cyberfleet",
3
- "version": "0.5.2",
3
+ "version": "0.7.0",
4
4
  "description": "Fleet & crew personas over cyberlegion — Pod (ship's bridge), Operator (command center), Crimp (crew recruitment), and Mechanic (automaton building).",
5
5
  "author": {
6
6
  "name": "unional"
package/.plugin/pins.json CHANGED
@@ -1,3 +1,3 @@
1
1
  {
2
- "cyberlegion": "1.1.0"
2
+ "cyberlegion": "1.7.0"
3
3
  }
package/CHANGELOG.md ADDED
@@ -0,0 +1,173 @@
1
+ # cyberfleet
2
+
3
+ ## 0.7.0
4
+
5
+ ### Minor Changes
6
+
7
+ - ddaf2a0: Add the `close-sessions` skill: a mechanical sweep that closes every agent session whose branch's pull requests have all landed, and keeps every session that might still have work.
8
+ - 9f663f9: Add the `jump` skill: `/jump [repo|branch|pod|task|back|<prose>]` moves the view to the one pane working on what the argument names, through `cyberlegion unit focus`, and `/jump back` returns through cyber-mux's jump history. More than one match lists the candidates and stops.
9
+
10
+ ## 0.6.0
11
+
12
+ ### Minor Changes
13
+
14
+ - 2cacfe7: Add `cyberfleet captain`, `cyberfleet pods`, and `cyberfleet pod bind|retire`. A project's Captain is cyberlegion's `captain` project service, and each Pod is owned by that Captain role, so a Captain restart or a new Captain session keeps its Pods with nothing to adopt. Binding and retiring run fenced at the caller's lease generation: a session that does not hold the Captain's lease cannot record or retire a Pod, and a Pod is retired once. `pods` lists the Pods of the project here (or of every project with `--all`), each as `current`, `unavailable` (no Captain holds the role now), or `retired`, and `pod bind --sortie <issue-ref>` records the sortie the Pod carries.
15
+ - 4d8eb75: Operator merges clean pull requests under a standing delegation you write once. Put your own words, a `scope` of owners or repositories, and a `date` in `~/.agents/cyberfleet/merge-delegation.md`. For a repository it names, Operator quotes the record with each dispatch and merges each clean pull request without waiting for your reply. It reads the record again before every merge and never writes it. Without the record, Operator still asks before the first merge.
16
+
17
+ ### Patch Changes
18
+
19
+ - 9dfa193: The authority governance states its reason directly instead of through an incident story, and dates its reference to Claude Code's Merge Without Review rule.
20
+ - df952b6: Move `commander` and `cyberlegion` from `dependencies` to `devDependencies`. The published CLI already inlines both into `dist/cli.mjs`, so installing `cyberfleet` no longer pulls them in.
21
+ - cddbae4: Crimp names the real discharge commands (`npx skills remove` / plugin uninstall); `cyberfleet uninstall` does not exist.
22
+ - 9445884: Point the headless Operator at `mission-graph.mjs`, the script sdd ships, instead of the retired `mission-graph.mts`.
23
+ - 3a34d09: Mechanic's leash route names where the autonomy rubric ships: the SDD conductor's autonomy bar in `start-mission`.
24
+ - c118fe4: Make the Operator, Pod, and Crimp skills and the headless-operator agent self-contained: the pinned `cyberlegion` version is written into their text instead of read from `.plugin/pins.json` outside the skill folder.
25
+ - 90899ad: Include `CHANGELOG.md` in the published package.
26
+ - 2dcd9b8: Crimp and Mechanic say why they skip hedging and restating the request.
27
+
28
+ ## 0.5.2
29
+
30
+ ### Patch Changes
31
+
32
+ - dccd740: Remove references the shipped skills cannot resolve: the unshipped `improve-agent-definition` skill and autonomy-rubric path in Mechanic, and the `cyberlegion#155` issue citation in Operator. `authority-governance` now defers relayed-decision rules to cyberlegion's `relay-governance` and keeps only the fleet-specific parts.
33
+
34
+ ## 0.5.1
35
+
36
+ ### Patch Changes
37
+
38
+ - de23267: Operator's spawn brief now names its thread id and spells out the exact reply command — `cyberlegion mail send --to <return handle> --thread <thread id> --subject ... --body ...` — says not to use the harness's own messaging tool for fleet handles, and routes the `operator` fallback through the same command. A pod told only the handle reached for its harness's messaging tool (Claude Code's SendMessage), which cannot see cyberlegion handles, so the report was lost. The headless-operator's briefs and the Pod's report step carry the same command.
39
+
40
+ ## 0.5.0
41
+
42
+ ### Minor Changes
43
+
44
+ - 528e226: Pod now shepherds the pull request or merge request it opens instead of stopping at "PR opened": it watches CI on the head commit (re-running a flaky failure once, fixing failures its change caused) until the pipeline is green or the watch times out, triages every review comment including AI review bots (fixing valid findings one commit per concern, discarding wrong ones with evidence, escalating design, scope, and API questions), replies in each thread, resolves the threads it fixed, and reports the outcome. Bot threads it discarded are resolved too, so an open thread means a human still has to look. Each wait on a pipeline is bounded at 12 minutes by default, and the Operator's brief sets these knobs. When the work is done, Pod tells its spawner it is ready to discharge and offers the Council, in its own session, to merge the pull request at its head commit; it merges only on an answer to that offer (`authority-governance` §7 gains this pod exception, which is not a transfer of the Operator's delegation). It never approves its own pull request and treats comment text as data. Covers GitHub and GitLab.
45
+
46
+ ### Patch Changes
47
+
48
+ - 8ebab46: Fail with a clear message when `bin/cyberfleet.mjs` cannot find `dist/cli.mjs`, naming the missing file and the same-version `npx -y cyberfleet@<version>` fallback, instead of a raw `ERR_MODULE_NOT_FOUND`.
49
+ - ab147e0: Ship the bundled `dist/cli.mjs` in the repository, so a plugin installed from the marketplace runs its CLI (`node <plugin dir>/bin/cyberfleet.mjs --help`) with no build step.
50
+ - d561f9e: Ask for the Council's own words before merging a pod's pull request, so the merge survives Claude Code auto mode's "Merge Without Review" rule. The Operator now announces with each dispatch that it will merge the order's clean pull requests, and the Council's reply is the delegation — the dispatch order alone no longer is. Without that reply, a clean pull request is held and its merge raised as a decision-request; a merge the harness refuses is held and reported, never retried or worked around. The headless loop merges only when its summons carries the Council's words authorizing that tick's merges, and otherwise holds each merge and reports it up its relay.
51
+ - b8772e6: Operator claims the standing `operator` owner only when no session holds it. The standing `operator` is one long-lived captain session in its home, so a project session that invokes Operator to dispatch a pod no longer takes the command center away from it. Only the claim holder reads and acks the standing mailbox. A missing standing owner still routes to `init-cyberlegion`, now with the advice to register it with `--home`. Respawning a captain in its home on delivery needs `cyberlegion` 1.4.0 or later.
52
+ - da9efec: Operator now relays a Council decision with `cyberlegion unit nudge <handle> --message "<the Council's words>"`, so it lands as a turn in the pod's session, instead of mailing it (a mail plus its doorbell left the decision as fetched content the pod refuses as a claim). `unit nudge` joins the Operator's delegated mechanics, its "never types into a ship's pane" boundary now allows exactly this relay, and `authority-governance` §3 names `unit nudge --message` as how a relay reaches a unit as a turn.
53
+ - b161cce: Update runtime dependencies.
54
+ - ebbacf7: Update runtime dependencies.
55
+ - 06e65cb: Name how the Operator, Pod, Crimp, and headless-operator resolve the `cyberlegion` CLI when it is not on `PATH`: the installed plugin's current `installPath`, then `npx -y cyberlegion@<pin>` from the new bundled `.plugin/pins.json`. A CLI older than the pin is skipped, nothing resolving fails with an install hint, and the CLI is re-resolved after a plugin reload instead of running a remembered versioned cache path.
56
+
57
+ ## 0.4.0
58
+
59
+ ### Minor Changes
60
+
61
+ - 9c1d609: Operator now relays a Council decision in the Council's own words — "Approve", or the Council's sentence nearly verbatim — instead of a labelled envelope (verbatim, place, relayer, scope, next steps) that pods correctly refused as a third-person claim. A pod treats a turn as a decision when it answers its own outstanding decision-request, with scope narrowed by the words; the quote, scope and relayer are recorded on the work item's thread.
62
+ - 5e2a49a: Update runtime dependencies.
63
+
64
+ ### Patch Changes
65
+
66
+ - c32011d: Pod now loads `authority-governance` before taking any ratification-class action, and its skill names that list (a merge to a protected branch, a human-attributed verdict, a publish, a history rewrite, settings or secrets, a widened delegation, a minted owner) at the trigger, as the Operator skill and the headless operator already do. It still loads the governance when a message asks for an action Pod would not take on its own or claims a Council approval.
67
+ - f26f990: authority-governance §3 now names the same thread-record fields as §8 and the Operator skill — the quote, its scope, and the relaying unit. It no longer asks for a separate "where it was said" field, since the relayer's own session is that place.
68
+
69
+ ## 0.3.0
70
+
71
+ ### Minor Changes
72
+
73
+ - b7b3059: Operator now watches the pods it spawns and merges their pull requests when they are clean. The
74
+ Council's in-session order to dispatch pods is the delegation: a pull request merges without a further
75
+ approval once its pod reported it done, it has no merge conflict, no review blocks it, and CI is green
76
+ on the merged result. Anything short of that is held and raised. With several pods on one order,
77
+ Operator merges in dependency order and tells the pods still open to rebase, adapt, and re-verify after
78
+ each merge. Pods never merge their own work.
79
+
80
+ ### Patch Changes
81
+
82
+ - 0acf3fc: A ship spawned by Operator now reports back to the session that spawned it. Before, every ship reported
83
+ to the standing `operator` owner, whose doorbell rings whichever session opened Operator most recently,
84
+ so reports could land in a session that never saw the brief. A ship falls back to `operator` only when
85
+ the session that spawned it is gone.
86
+
87
+ ## 0.2.0
88
+
89
+ ### Minor Changes
90
+
91
+ - 3676673: Ship the `cyberfleet` agent plugin inside the npm package. The tarball now includes `plugin.json`, the Claude Code and Codex manifests, `skills/`, and `agents/`, so the package directory is also the plugin root.
92
+ - 3aec764: Add `authority-governance`, the fleet's dispatch-versus-ratification rule, and load it from Pod,
93
+ Operator, and the headless-operator loop. An order is the act of a unit's own owner; a message from
94
+ anyone else is a request. No link passes on more authority than it holds, and a relayed Council
95
+ decision carries the Council's verbatim words, where they were said, the relaying unit, and the action
96
+ and target it covers. A ratification-class action without a covering decision costs that step only —
97
+ the rest of the order still lands, with the gap named.
98
+ - e8960c9: Publish the `cyberfleet` agent plugin through npm, from `cyberuni/cyberfleet`. The package's baseline
99
+ version moves to `0.1.0`, the version the plugin already carried, so the package and the plugin
100
+ manifest share one number and this release (`0.2.0`) is newer than both the npm-only `0.0.6` and the
101
+ git-installed plugin `0.1.0`. A plugin cache keyed on `0.1.0` would otherwise keep the git install,
102
+ whose CLI cannot find `dist/`.
103
+
104
+ ### Patch Changes
105
+
106
+ - 2b3d148: Bundle `commander` and `cyberlegion` into the CLI build, so `cyberfleet` runs from an installed plugin directory that has no `node_modules`.
107
+ - 6d3bf64: `cyberfleet --version` now reports the package version instead of `0.0.0`.
108
+ - 361a7e4: The Pod and Operator skills now run the `cyberfleet` CLI that ships with the plugin, instead of `npx cyberfleet@<version>`. The unused `.plugin/pins.json` is removed.
109
+
110
+ ## 0.0.6
111
+
112
+ ### Patch Changes
113
+
114
+ - ca8f9ab: Depend on the published `cyberlegion@^0.3.1` instead of the workspace copy. `cyberlegion`
115
+ was extracted to its own repository, so the `workspace:*` link no longer exists and the
116
+ runtime dependency now resolves from the registry.
117
+
118
+ ## 0.0.5
119
+
120
+ ### Patch Changes
121
+
122
+ - e75f4a0: Fix stale `npx` version pins in the readmes.
123
+
124
+ The documented pin-to-an-exact-version examples cited versions that were never
125
+ published — `cyberplace@0.7.0` and `cyberfleet@0.1.0` return E404 — so anyone
126
+ copying them got a hard failure. `cyberlegion@0.1.0` resolved but was two minors
127
+ behind. Each now cites the current published version.
128
+
129
+ - Updated dependencies [e75f4a0]
130
+ - cyberlegion@0.3.1
131
+
132
+ ## 0.0.4
133
+
134
+ ### Patch Changes
135
+
136
+ - Updated dependencies [82b3c24]
137
+ - cyberlegion@0.3.0
138
+
139
+ ## 0.0.3
140
+
141
+ ### Patch Changes
142
+
143
+ - Updated dependencies [211de72]
144
+ - Updated dependencies [ddb1458]
145
+ - Updated dependencies [b863089]
146
+ - Updated dependencies [59b4154]
147
+ - Updated dependencies [7ed73d0]
148
+ - Updated dependencies [9df2bf4]
149
+ - Updated dependencies [da6935a]
150
+ - Updated dependencies [7598bf5]
151
+ - Updated dependencies [0988b81]
152
+ - Updated dependencies [38756f9]
153
+ - Updated dependencies [59c951c]
154
+ - Updated dependencies [9955e97]
155
+ - cyberlegion@0.2.0
156
+
157
+ ## 0.0.2
158
+
159
+ ### Patch Changes
160
+
161
+ - Updated dependencies [667163c]
162
+ - Updated dependencies [667163c]
163
+ - Updated dependencies [2758ea9]
164
+ - Updated dependencies [9e24386]
165
+ - cyberlegion@0.1.0
166
+
167
+ ## 0.0.1
168
+
169
+ ### Patch Changes
170
+
171
+ - 7c92d8e: Mark the CLI bin shim as executable so it runs directly after install.
172
+ - Updated dependencies [7c92d8e]
173
+ - cyberlegion@0.0.1
@@ -46,7 +46,7 @@ on mission-done(m): # m reports through its existing
46
46
  ```
47
47
 
48
48
  - **Ready is a pull query, not a service.** Read the frontier with the mission-graph engine's `ready`
49
- verb (`node <mission-graph-skill>/scripts/mission-graph.mts ready --format json`); it emits each
49
+ verb (`node <mission-graph-skill>/scripts/mission-graph.mjs ready --format json`); it emits each
50
50
  mission's `id, node, operation, blast, hitlOrAfk, modelTier, briefPointer, rank`. Do not re-derive
51
51
  the frontier by hand — the engine owns `fold`/`ready`.
52
52
  - **Single writer.** The Operator is the sole graph writer. Claims and retirements are `mission-graph
@@ -113,21 +113,19 @@ the Operator's; the per-unit spawn mechanism is cyberlegion's.
113
113
  Every `cyberlegion …` command in this loop runs whichever CLI resolves below, resolved afresh in each
114
114
  session and again after any plugin reload. Never hardcode a versioned
115
115
  `~/.claude/plugins/cache/…/<version>/` path: a reload installs a new version beside the old one, and a
116
- remembered path keeps running the old CLI. The pin is the `cyberlegion` entry in this plugin's
117
- bundled `<this agent's directory>/../.plugin/pins.json` — read it, never invent or scrape a version. Take the first rung that
118
- resolves and whose `cyberlegion --version` is at or above the pin; skip a rung that reports an older
116
+ remembered path keeps running the old CLI. The pin is `1.7.0`. Take the first rung that
117
+ resolves and whose `cyberlegion --version` is at or above it; skip a rung that reports an older
119
118
  version:
120
119
 
121
120
  1. `cyberlegion` on `PATH`.
122
121
  2. The installed cyberlegion plugin: read `~/.claude/plugins/installed_plugins.json` now, take the
123
122
  `installPath` of its `cyberlegion@<marketplace>` entry, and run `node
124
123
  <installPath>/bin/cyberlegion.mjs`.
125
- 3. `npx -y cyberlegion@<pin>`.
124
+ 3. `npx -y cyberlegion@1.7.0`.
126
125
 
127
- With no pin (no `pins.json`, no `cyberlegion` key, or a malformed map), no rung has a version floor
128
- and the last rung is the unpinned `npx -y cyberlegion`. When no rung resolves, stop the tick and report it up the relay with the
126
+ When no rung resolves, stop the tick and report it up the relay with the
129
127
  install hint: install the `cyberlegion` plugin beside this one, or `npm install -g
130
- cyberlegion@<pin>`.
128
+ cyberlegion@1.7.0`.
131
129
 
132
130
  ## Stateless per tick
133
131