cargo-hauler 0.9.7 → 0.9.8
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.
- package/CHANGELOG.md +7 -0
- package/dist/.claude-plugin/marketplace.json +1 -1
- package/dist/.claude-plugin/plugin.json +1 -1
- package/dist/.codex-plugin/plugin.json +1 -1
- package/dist/.cursor-plugin/plugin.json +1 -1
- package/dist/INSTALL.md +35 -34
- package/dist/agent-bundle.compile-evidence.json +1 -1
- package/dist/agent-bundle.manifest.json +1 -1
- package/dist/agent-bundle.package-compile-evidence.json +1 -1
- package/dist/bin/cargo-hauler-flight.mjs +899 -290
- package/dist/bin/cargo-hauler-install.js +1074 -1078
- package/dist/bin/cargo-hauler.mjs +1173 -721
- package/dist/bin/hauler.js +163 -109
- package/dist/hooks/event-route-session-start.claude.mjs +1084 -1128
- package/dist/hooks/event-route-session-start.codex.mjs +1084 -1128
- package/dist/hooks/event-route-session-start.cursor.mjs +1084 -1128
- package/dist/hooks/event-route-stop.claude.mjs +1084 -1128
- package/dist/hooks/event-route-stop.codex.mjs +1084 -1128
- package/dist/hooks/event-route-stop.cursor.mjs +1084 -1128
- package/dist/hooks/event-route-tool-after.claude.execute.mjs +1084 -1128
- package/dist/hooks/event-route-tool-after.claude.mjs +1029 -813
- package/dist/hooks/event-route-tool-after.codex.execute.mjs +1084 -1128
- package/dist/hooks/event-route-tool-after.codex.mjs +1029 -813
- package/dist/hooks/event-route-tool-after.cursor.execute.mjs +1084 -1128
- package/dist/hooks/event-route-tool-after.cursor.mjs +1029 -813
- package/dist/hooks/event-route-tool-before.claude.execute.mjs +1084 -1128
- package/dist/hooks/event-route-tool-before.claude.mjs +1024 -808
- package/dist/hooks/event-route-tool-before.codex.execute.mjs +1084 -1128
- package/dist/hooks/event-route-tool-before.codex.mjs +1024 -808
- package/dist/hooks/event-route-tool-before.cursor.execute.mjs +1084 -1128
- package/dist/hooks/event-route-tool-before.cursor.mjs +1024 -808
- package/dist/hooks/hooks-flight.mjs +58 -91
- package/dist/install.mjs +66 -142
- package/dist/mcp/mcp-hauler-2b8242f9-flight.mjs +311 -348
- package/dist/mcp/mcp-hauler-2b8242f9.mjs +1390 -1378
- package/dist/mcp-apps/dashboard.html +2 -2
- package/dist/package.json +3 -3
- package/dist/plugin.json +1 -1
- package/dist/scripts/hauler.mjs +163 -109
- package/dist/skills/hauler-dashboard/SKILL.md +1 -1
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.9.8
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 1c3691f: Build against agent-bundle main (`1d661b4`). The `hauler_*` MCP tools are `defineTool` definitions, which agent-bundle now requires. Tool names, inputs, results, and `hauler` CLI commands are unchanged. Built artifacts no longer embed the checkout path, so the same commit builds to the same bytes in any directory.
|
|
8
|
+
- 1ba9a1d: The daemon scans the kache index in a worker thread, so a large index no longer stalls `hauler status`, ticket reads, or pings while it refreshes. A 4.5 GB index held the socket for about 590 ms per refresh; it now answers within a few milliseconds. The kache section names why the index could not be read (`not detected`, `index unreadable`, or `index read timed out` after 30 s) instead of reporting every failure as not detected.
|
|
9
|
+
|
|
3
10
|
## 0.9.7
|
|
4
11
|
|
|
5
12
|
### Patch Changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"description":"Coalesce, schedule, and stream cargo so concurrent agent sessions share compiles instead of fighting locks.","name":"cargo-hauler-marketplace","owner":{"name":"cargo-hauler"},"plugins":[{"description":"Coalesce, schedule, and stream cargo so concurrent agent sessions share compiles instead of fighting locks.","keywords":["cargo","rust","agent","mcp","claude-code","codex","cursor","build-orchestration"],"license":"MIT","name":"cargo-hauler","repository":"https://github.com/ScriptedAlchemy/cargo-hauler","source":"./","version":"0.9.
|
|
1
|
+
{"description":"Coalesce, schedule, and stream cargo so concurrent agent sessions share compiles instead of fighting locks.","name":"cargo-hauler-marketplace","owner":{"name":"cargo-hauler"},"plugins":[{"description":"Coalesce, schedule, and stream cargo so concurrent agent sessions share compiles instead of fighting locks.","keywords":["cargo","rust","agent","mcp","claude-code","codex","cursor","build-orchestration"],"license":"MIT","name":"cargo-hauler","repository":"https://github.com/ScriptedAlchemy/cargo-hauler","source":"./","version":"0.9.8"}]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"author":{"name":"cargo-hauler"},"description":"Coalesce, schedule, and stream cargo so concurrent agent sessions share compiles instead of fighting locks.","name":"cargo-hauler","version":"0.9.
|
|
1
|
+
{"author":{"name":"cargo-hauler"},"description":"Coalesce, schedule, and stream cargo so concurrent agent sessions share compiles instead of fighting locks.","name":"cargo-hauler","version":"0.9.8"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"author":{"name":"cargo-hauler"},"description":"Coalesce, schedule, and stream cargo so concurrent agent sessions share compiles instead of fighting locks.","hooks":"./.codex-plugin/hooks.json","interface":{"capabilities":["mcp","hooks","skills"],"category":"Productivity","defaultPrompt":["Help me use cargo-hauler."],"developerName":"cargo-hauler","displayName":"cargo-hauler","longDescription":"Coalesce, schedule, and stream cargo so concurrent agent sessions share compiles instead of fighting locks.","shortDescription":"Coalesce, schedule, and stream cargo so concurrent agent sessions share compiles instead of fighting locks."},"keywords":["cargo","rust","agent","mcp","claude-code","codex","cursor","build-orchestration"],"license":"MIT","mcpServers":"./.codex-plugin/mcp.json","name":"cargo-hauler","repository":"https://github.com/ScriptedAlchemy/cargo-hauler","skills":"./skills/","version":"0.9.
|
|
1
|
+
{"author":{"name":"cargo-hauler"},"description":"Coalesce, schedule, and stream cargo so concurrent agent sessions share compiles instead of fighting locks.","hooks":"./.codex-plugin/hooks.json","interface":{"capabilities":["mcp","hooks","skills"],"category":"Productivity","defaultPrompt":["Help me use cargo-hauler."],"developerName":"cargo-hauler","displayName":"cargo-hauler","longDescription":"Coalesce, schedule, and stream cargo so concurrent agent sessions share compiles instead of fighting locks.","shortDescription":"Coalesce, schedule, and stream cargo so concurrent agent sessions share compiles instead of fighting locks."},"keywords":["cargo","rust","agent","mcp","claude-code","codex","cursor","build-orchestration"],"license":"MIT","mcpServers":"./.codex-plugin/mcp.json","name":"cargo-hauler","repository":"https://github.com/ScriptedAlchemy/cargo-hauler","skills":"./skills/","version":"0.9.8"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"description":"Coalesce, schedule, and stream cargo so concurrent agent sessions share compiles instead of fighting locks.","displayName":"cargo-hauler","hooks":"./.cursor-plugin/hooks.json","keywords":["cargo","rust","agent","mcp","claude-code","codex","cursor","build-orchestration"],"license":"MIT","mcpServers":"./.cursor-plugin/mcp.json","name":"cargo-hauler","repository":"https://github.com/ScriptedAlchemy/cargo-hauler","skills":"./skills/","version":"0.9.
|
|
1
|
+
{"description":"Coalesce, schedule, and stream cargo so concurrent agent sessions share compiles instead of fighting locks.","displayName":"cargo-hauler","hooks":"./.cursor-plugin/hooks.json","keywords":["cargo","rust","agent","mcp","claude-code","codex","cursor","build-orchestration"],"license":"MIT","mcpServers":"./.cursor-plugin/mcp.json","name":"cargo-hauler","repository":"https://github.com/ScriptedAlchemy/cargo-hauler","skills":"./skills/","version":"0.9.8"}
|
package/dist/INSTALL.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Coalesce, schedule, and stream cargo so concurrent agent sessions share compiles instead of fighting locks.
|
|
4
4
|
|
|
5
|
-
Version: `0.9.
|
|
5
|
+
Version: `0.9.8`
|
|
6
6
|
|
|
7
7
|
Run these commands from this bundle directory. The bundle is self-contained: every command below is
|
|
8
8
|
a host command or the bundled installer, and nothing requires the `agent-bundle` CLI. Where that CLI is
|
|
@@ -33,7 +33,7 @@ claude plugin install cargo-hauler@cargo-hauler-marketplace --scope user
|
|
|
33
33
|
|
|
34
34
|
With the optional `agent-bundle` CLI, `agent-bundle install claude --from ./` runs this sequence
|
|
35
35
|
automatically when the installed copy has the same version but a different content hash; `--replace`
|
|
36
|
-
|
|
36
|
+
forces it.
|
|
37
37
|
|
|
38
38
|
### Uninstall
|
|
39
39
|
|
|
@@ -42,7 +42,7 @@ claude plugin uninstall cargo-hauler@cargo-hauler-marketplace --scope user --kee
|
|
|
42
42
|
```
|
|
43
43
|
|
|
44
44
|
Match the scope the plugin was installed with (`user`, `project`, or `local`). `--keep-data` keeps durable
|
|
45
|
-
runtime state (Claude orphans the cached copy
|
|
45
|
+
runtime state (Claude orphans the cached copy for its ~14-day grace period); omit it to
|
|
46
46
|
remove `~/.claude/plugins/data/<id>/` immediately.
|
|
47
47
|
|
|
48
48
|
The marketplace `cargo-hauler-marketplace` stays registered. Remove it only when nothing else installs from it:
|
|
@@ -61,8 +61,8 @@ would be removed and `agent-bundle uninstall claude --from ./` reverses the reco
|
|
|
61
61
|
(or under `$CLAUDE_CONFIG_DIR`; `user` is the install scope, pass `--scope project` or `--scope local` to match
|
|
62
62
|
a scoped install), and `uninstall` consumes it, running the two commands above in order and retaining the
|
|
63
63
|
marketplace while any other plugin, scope, or project still installs from it. Durable runtime state
|
|
64
|
-
is kept by default; `--purge-data --confirm-purge` removes
|
|
65
|
-
immediately. A missing receipt or a cached copy that no longer matches it is refused unless `--force`; a
|
|
64
|
+
is kept by default; `--purge-data --confirm-purge` removes the receipt-owned state roots and
|
|
65
|
+
`~/.claude/plugins/data/<id>/` immediately. A missing receipt or a cached copy that no longer matches it is refused unless `--force`; a
|
|
66
66
|
second run is a `not-installed` no-op.
|
|
67
67
|
|
|
68
68
|
## Codex
|
|
@@ -92,7 +92,7 @@ or omits `enabled` (`AB7004`) and leaves that install unchanged. Enable the plug
|
|
|
92
92
|
|
|
93
93
|
With the optional `agent-bundle` CLI, `agent-bundle install codex --from ./` runs this sequence
|
|
94
94
|
automatically when the installed copy has the same version but a different content hash; `--replace`
|
|
95
|
-
|
|
95
|
+
forces it.
|
|
96
96
|
|
|
97
97
|
### Uninstall
|
|
98
98
|
|
|
@@ -100,8 +100,7 @@ automatically when the installed copy has the same version but a different conte
|
|
|
100
100
|
codex plugin remove cargo-hauler@cargo-hauler-marketplace
|
|
101
101
|
```
|
|
102
102
|
|
|
103
|
-
Codex 0.147.0 deletes the cached plugin tree
|
|
104
|
-
option.
|
|
103
|
+
Codex 0.147.0 deletes the cached plugin tree on `plugin remove` and has no keep-data option.
|
|
105
104
|
|
|
106
105
|
The marketplace `cargo-hauler-marketplace` stays registered. Remove it only when nothing else installs from it:
|
|
107
106
|
`codex plugin list` shows every other plugin from it.
|
|
@@ -114,7 +113,8 @@ With the optional `agent-bundle` CLI, `agent-bundle uninstall codex --from ./ --
|
|
|
114
113
|
would be removed and `agent-bundle uninstall codex --from ./` reverses the recorded registrations.
|
|
115
114
|
`agent-bundle install codex` records a receipt at `~/.codex/agent-bundle/receipts/cargo-hauler.cargo-hauler-marketplace.user.json` (or
|
|
116
115
|
under `$CODEX_HOME`), and `uninstall` consumes it, running the two commands above in order. `--keep-data`
|
|
117
|
-
|
|
116
|
+
keeps the framework state roots the receipt records outside the cached tree (`kept`); with nothing there the
|
|
117
|
+
result says so (`unavailable`). A missing receipt or a cached
|
|
118
118
|
copy that no longer matches it is refused unless `--force`; a second run is a `not-installed` no-op.
|
|
119
119
|
|
|
120
120
|
## Cursor
|
|
@@ -137,37 +137,38 @@ manifest-declared `hooks/hooks.json` from that directory; plugin hooks run from
|
|
|
137
137
|
The installer writes an install receipt (`.agent-bundle-install.json`: plugin, version, content hash,
|
|
138
138
|
owned files) beside the plugin manifest. Re-running `node ./install.mjs` on an identical artifact
|
|
139
139
|
is a no-op that says so. When the installed copy has the same version but different content, the
|
|
140
|
-
installer replaces its owned files in place and leaves
|
|
140
|
+
installer replaces its owned files in place and leaves unowned entries untouched:
|
|
141
141
|
|
|
142
142
|
```sh
|
|
143
143
|
node ./install.mjs # same-version content drift of a receipt-managed copy is replaced
|
|
144
|
-
node ./install.mjs --replace # also replace a different installed version
|
|
144
|
+
node ./install.mjs --replace # also replace a different installed version
|
|
145
145
|
```
|
|
146
146
|
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
manually. The optional `agent-bundle` CLI applies the same policy through
|
|
147
|
+
A directory without a receipt naming this plugin (including a copy placed before install receipts
|
|
148
|
+
existed) is foreign and always refused with an installed-versus-artifact content-hash comparison;
|
|
149
|
+
remove it manually and reinstall. The optional `agent-bundle` CLI applies the same policy through
|
|
150
150
|
`agent-bundle install cursor --from ./ [--replace]`.
|
|
151
151
|
|
|
152
152
|
### Uninstall
|
|
153
153
|
|
|
154
154
|
```sh
|
|
155
155
|
node ./install.mjs --uninstall --plan # print exactly what would be removed
|
|
156
|
-
node ./install.mjs --uninstall # remove the receipt-owned files; keep state
|
|
157
|
-
node ./install.mjs --uninstall --purge-data --confirm-purge # also remove durable runtime state
|
|
156
|
+
node ./install.mjs --uninstall # remove the receipt-owned files; keep durable state
|
|
157
|
+
node ./install.mjs --uninstall --purge-data --confirm-purge # also remove receipt-owned durable runtime state
|
|
158
158
|
node ./install.mjs --uninstall --mode marketplace # remove a staged marketplace repository
|
|
159
159
|
```
|
|
160
160
|
|
|
161
161
|
Uninstall removes exactly what the receipt owns: the listed files, the directories the installer
|
|
162
162
|
created (including `~/.cursor/plugins/local` when the installer made it), and nothing else. Durable
|
|
163
|
-
runtime state
|
|
164
|
-
server, the `~/.cursor/agent-bundle/plugin-data/<name>` directory the receipt records
|
|
165
|
-
unless `--purge-data --confirm-purge` is passed (a kept data directory leaves a
|
|
166
|
-
purge still finds it; an empty one is pruned); unowned
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
163
|
+
runtime state (the framework state roots the receipt records with ownership evidence) — and, for an Agent
|
|
164
|
+
Plugins pack with a stdio server, the `~/.cursor/agent-bundle/plugin-data/<name>` directory the receipt records
|
|
165
|
+
as `PLUGIN_DATA` — is kept unless `--purge-data --confirm-purge` is passed (a kept data directory leaves a
|
|
166
|
+
remnant receipt behind so a later purge still finds it; an empty one is pruned); unowned entries, including a
|
|
167
|
+
`state/` directory beside the plugin, are left in place and listed. A receipt with no recorded state location
|
|
168
|
+
(written before the install could record it) retains the current environment's default as unproven; a
|
|
169
|
+
keep-data run cannot turn that observation into later purge authority. A directory without a receipt naming
|
|
170
|
+
this plugin is foreign and always refused, with or without `--force`; owned content that no longer matches
|
|
171
|
+
the receipt is refused unless `--force`.
|
|
171
172
|
A second run is a `Not installed` no-op. With the optional `agent-bundle` CLI,
|
|
172
173
|
`agent-bundle uninstall cursor --from ./ [--mode marketplace]` applies the same policy, and
|
|
173
174
|
`agent-bundle doctor --from ./` shows the lifecycle stage (placed, registered, enabled, active) with
|
|
@@ -254,21 +255,21 @@ other clients; the recorded clients above name which of them expand the placehol
|
|
|
254
255
|
### Reinstall after a same-version rebuild
|
|
255
256
|
|
|
256
257
|
The installer records an install receipt (`.agent-bundle-install.json`) and replaces its owned files in
|
|
257
|
-
place when the same version was rebuilt with different content;
|
|
258
|
-
touched. Pass `--replace`
|
|
259
|
-
copy installed before receipts existed
|
|
260
|
-
comparison. For a client that manages its own copy, remove and re-add
|
|
261
|
-
when only content changed at the same version.
|
|
258
|
+
place when the same version was rebuilt with different content; unowned entries are never
|
|
259
|
+
touched. Pass `--replace` to replace a different installed version. A directory without a receipt
|
|
260
|
+
naming this plugin (including a copy installed before receipts existed) is foreign and refused with a
|
|
261
|
+
content-hash comparison; remove it manually. For a client that manages its own copy, remove and re-add
|
|
262
|
+
the plugin through that client when only content changed at the same version.
|
|
262
263
|
|
|
263
264
|
### Uninstall
|
|
264
265
|
|
|
265
266
|
```sh
|
|
266
267
|
node ./install.mjs --uninstall --plan # print exactly what would be removed
|
|
267
|
-
node ./install.mjs --uninstall # remove the receipt-owned files; keep state
|
|
268
|
-
node ./install.mjs --uninstall --purge-data --confirm-purge # also remove durable runtime state
|
|
268
|
+
node ./install.mjs --uninstall # remove the receipt-owned files; keep durable state
|
|
269
|
+
node ./install.mjs --uninstall --purge-data --confirm-purge # also remove receipt-owned durable runtime state
|
|
269
270
|
```
|
|
270
271
|
|
|
271
272
|
Uninstall removes exactly what the receipt owns (files, installer-created directories) and keeps
|
|
272
|
-
durable runtime state
|
|
273
|
-
unless `--purge-data --confirm-purge` is passed.
|
|
274
|
-
|
|
273
|
+
the durable runtime state the receipt records (and the recorded `PLUGIN_DATA` directory of an Agent Plugins
|
|
274
|
+
pack) unless `--purge-data --confirm-purge` is passed. Modified owned content is refused unless `--force`;
|
|
275
|
+
a directory without a receipt naming this plugin is foreign and always refused.
|