cargo-hauler 0.6.8 → 0.6.9

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.
Files changed (42) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/README.md +11 -4
  3. package/artifact/.claude-plugin/marketplace.json +1 -1
  4. package/artifact/.claude-plugin/plugin.json +1 -1
  5. package/artifact/.codex-plugin/plugin.json +1 -1
  6. package/artifact/.cursor-plugin/plugin.json +1 -1
  7. package/artifact/INSTALL.md +1 -1
  8. package/artifact/agent-bundle.compile-evidence.json +1 -1
  9. package/artifact/agent-bundle.manifest.json +1 -1
  10. package/artifact/bin/cargo-hauler-flight.mjs +8 -8
  11. package/artifact/bin/cargo-hauler.mjs +13 -12
  12. package/artifact/hooks/event-route-session-start.claude.mjs +2 -2
  13. package/artifact/hooks/event-route-session-start.codex.mjs +2 -2
  14. package/artifact/hooks/event-route-session-start.cursor.mjs +2 -2
  15. package/artifact/hooks/event-route-stop.claude.mjs +2 -2
  16. package/artifact/hooks/event-route-stop.codex.mjs +2 -2
  17. package/artifact/hooks/event-route-stop.cursor.mjs +2 -2
  18. package/artifact/hooks/event-route-tool-after.claude.execute.mjs +2 -2
  19. package/artifact/hooks/event-route-tool-after.claude.mjs +66 -6
  20. package/artifact/hooks/event-route-tool-after.codex.execute.mjs +2 -2
  21. package/artifact/hooks/event-route-tool-after.codex.mjs +66 -6
  22. package/artifact/hooks/event-route-tool-after.cursor.execute.mjs +2 -2
  23. package/artifact/hooks/event-route-tool-after.cursor.mjs +66 -6
  24. package/artifact/hooks/event-route-tool-before.claude.execute.mjs +2 -2
  25. package/artifact/hooks/event-route-tool-before.claude.mjs +61 -4
  26. package/artifact/hooks/event-route-tool-before.codex.execute.mjs +2 -2
  27. package/artifact/hooks/event-route-tool-before.codex.mjs +61 -4
  28. package/artifact/hooks/event-route-tool-before.cursor.execute.mjs +2 -2
  29. package/artifact/hooks/event-route-tool-before.cursor.mjs +61 -4
  30. package/artifact/hooks/hooks-flight.mjs +94 -16
  31. package/artifact/install.mjs +1 -1
  32. package/artifact/mcp/mcp-hauler-2b8242f9-flight.mjs +95 -17
  33. package/artifact/mcp/mcp-hauler-2b8242f9.mjs +11 -11
  34. package/artifact/mcp-apps/dashboard.html +1 -1
  35. package/artifact/plugin.json +1 -1
  36. package/artifact/scripts/hauler.mjs +20 -12
  37. package/artifact/skills/cargo-hauler/SKILL.md +13 -0
  38. package/artifact/skills/hauler-dashboard/SKILL.md +1 -1
  39. package/dist/bin/cargo-hauler-flight.mjs +8 -8
  40. package/dist/bin/cargo-hauler.js +13 -12
  41. package/dist/bin/hauler.js +20 -12
  42. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.6.9
4
+
5
+ ### Patch Changes
6
+
7
+ - e160307: Print usage and exit 2 when `hauler daemon` is missing or given an unknown subcommand, and accept `hauler daemon stop --force` as a no-op alias for stop (#138).
8
+ - 8dfe1c3: Flag cargo that ran outside the broker. An agent that wraps cargo in a script calling the toolchain binary by absolute path (`~/.rustup/toolchains/*/bin/cargo`) slips past both the `tool/before` rewrite (the command never says `cargo`) and the PATH shim (never on PATH), so its builds get no lane, no attach, and no ledger row while the machine saturates. The `tool/after` preflight and route now recognise cargo's status lines (` Compiling …`, ` Finished … profile`, ` Running …`) in the output of a command that named neither cargo nor hauler, record the call in the hook log with reason `cargo ran outside cargo-hauler`, and tell the agent to name `cargo` in the command or run `hauler exec -- cargo …`. A file reader showing a saved log (`tail build.log`) is not treated as a run. The skill now says not to wrap cargo that way — besides leaving the broker, a toolchain binary called directly sets no `RUSTUP_TOOLCHAIN`, so registry crates compile under the default toolchain and fail with `E0514` — and how to drop a rustc wrapper or pin a toolchain through the broker instead.
9
+
3
10
  ## 0.6.8
4
11
 
5
12
  ### Patch Changes
package/README.md CHANGED
@@ -156,9 +156,16 @@ the full path). Only a matching command evaluates the parser and the rewrite.
156
156
  The `tool/after` entry runs the token test and one bounded socket ping to the
157
157
  daemon (the `session-completed` request with the session's hook-state cursor,
158
158
  500 ms, no Effect runtime); it loads the telemetry and notification code only
159
- when the command was cargo-related or the daemon reported finished tickets. A
160
- non-cargo call with nothing finished — or no daemon at all — exits with no
161
- output. Measured with `/usr/bin/time -v` on a Claude `ls -la` envelope, the
159
+ when the command was cargo-related, the daemon reported finished tickets, or
160
+ the command's output carries cargo's own status lines (` Compiling …`,
161
+ ` Finished … profile`) without the command naming cargo. That last case is
162
+ cargo run through a wrapper script, an alias, or a shell variable — the one
163
+ shape neither the rewrite nor the PATH shim sees, since a script can call the
164
+ toolchain's `cargo` binary by absolute path. It is recorded in the hook log
165
+ with its reason and the agent is told to name `cargo` in the command or use
166
+ `hauler exec -- cargo …`; a file reader showing a saved log (`tail
167
+ build.log`) is not mistaken for a run. A non-cargo call with nothing finished
168
+ — or no daemon at all — exits with no output. Measured with `/usr/bin/time -v` on a Claude `ls -la` envelope, the
162
169
  compiled entries take ~50 ms wall and ~49 MB RSS, against ~100 ms and 64 MB
163
170
  for the 0.4.8 event-route wrappers with a shared runtime available and
164
171
  ~560 ms and 144 MB without one.
@@ -831,7 +838,7 @@ the same filter as its `session` field). Results carry
831
838
  | `event:session/start` | new session | daemon state and the no-kill rule as context |
832
839
  | `event:stop` | agent stopping | holds the stop while a foreground ticket is pending (bounded, re-deniable) |
833
840
  | `event:tool/before` | shell tool about to run | the preflight continues a non-cargo command without loading the route; otherwise rewrites `cargo …` to `hauler exec --session … --host … -- cargo …`, denies `cargo clean` during in-flight builds, brokers it while the daemon is too busy to answer |
834
- | `event:tool/after` | shell tool finished | the preflight pings the daemon once per call; the route records cargo commands and injects finished background-ticket results once per session |
841
+ | `event:tool/after` | shell tool finished | the preflight pings the daemon once per call; the route records cargo commands, injects finished background-ticket results once per session, and flags cargo that ran unbrokered through a wrapper script (cargo status lines in the output of a command that never named cargo) |
835
842
 
836
843
  #### Skills
837
844
 
@@ -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.","name":"cargo-hauler","source":"./","version":"0.6.8"}]}
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.","name":"cargo-hauler","source":"./","version":"0.6.9"}]}
@@ -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.6.8"}
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.6.9"}
@@ -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."},"mcpServers":"./.codex-plugin/mcp.json","name":"cargo-hauler","skills":"./skills/","version":"0.6.8"}
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."},"mcpServers":"./.codex-plugin/mcp.json","name":"cargo-hauler","skills":"./skills/","version":"0.6.9"}
@@ -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","mcpServers":"./.cursor-plugin/mcp.json","name":"cargo-hauler","skills":"./skills/","version":"0.6.8"}
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","mcpServers":"./.cursor-plugin/mcp.json","name":"cargo-hauler","skills":"./skills/","version":"0.6.9"}
@@ -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.6.8`
5
+ Version: `0.6.9`
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