bdo-cli 0.45.3 → 0.45.5

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 CHANGED
@@ -5,6 +5,61 @@ All notable changes to Bushido (bdo) will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [0.45.5] (2026-09-20)
9
+
10
+ ### Fixes
11
+
12
+ - **The hook no longer rewrites a command that feeds a pipe.** The agent
13
+ only ever sees a pipeline's final output, so rewriting the left side to
14
+ `bdo …` never saved a token — it only changed what the next program
15
+ received. `cat src/main.rs | wc -l` counted bdo's truncated view (400)
16
+ instead of the file (3614); `git log --oneline | wc -l` reported the
17
+ 50-entry cap, not the real 105 commits. Every command is now left exactly
18
+ as written when a `|` follows it; in a compound, only that segment is
19
+ exempt (`git status && cat f | wc -l` still becomes
20
+ `bdo git status && cat f | wc -l`). This generalizes the `find`/`fd`-only
21
+ exemption from #439.
22
+
23
+ **Visible side effect**: commands on the left of a pipe no longer appear
24
+ in `bdo gain` — bdo isn't in that path anymore. The filtered command whose
25
+ output the agent actually reads (the pipeline's last, or any unpiped
26
+ command) is tracked as before.
27
+
28
+ - **`bdo test --changed`** aborted the whole plan when one language's runner
29
+ was missing — a machine without `go` never ran the Python tests, with no
30
+ error beyond the printed plan header. That language now fails and the
31
+ rest still run.
32
+
33
+ ## [0.45.4] (2026-09-19)
34
+
35
+ ### Security
36
+
37
+ - **`bdo err` / `bdo test` command injection.** Both joined their argument
38
+ vector with spaces and handed the string to `sh -c`. An argument containing
39
+ a space was split into several, and shell metacharacters inside an argument
40
+ became executable — `bdo err grep 'x; touch F' file` ran `touch`. Both now
41
+ exec via argv, the shell path is removed, and an empty wrapped command is an
42
+ error instead of `sh -c ""` exiting 0.
43
+
44
+ **Behavior change**: packing shell syntax into a single argument
45
+ (`bdo test "cargo test && echo ok"`) no longer works — that form and the
46
+ injection were the same code path. Ask for a shell explicitly and it is
47
+ delivered intact: `bdo test sh -c 'cargo test && echo ok'`. Every documented
48
+ usage (`bdo err cargo build`, `bdo test cargo test`) is unaffected.
49
+
50
+ ### Fixes
51
+
52
+ - **`bdo find <dir>`** — the most common native form, and what the hook
53
+ produces — was read as a glob pattern searched under `.`, a different command
54
+ that usually found nothing. A lone argument with a path separator and no glob
55
+ characters is now the start path. A missing start path exits 1 with find's
56
+ message instead of reporting zero matches and exiting 0, so `bdo find … &&`
57
+ chains stop where native find would.
58
+
59
+ Together these close the ledger's "compound command / exit code
60
+ interference" item: the interference was bdo running a different command
61
+ than the one asked for, not a harness artifact.
62
+
8
63
  ## [0.45.3] (2026-09-19)
9
64
 
10
65
  ### Security
package/README.md CHANGED
@@ -88,7 +88,7 @@ Each has a `.sha256` sidecar — verify before extracting.
88
88
  ### Verify Installation
89
89
 
90
90
  ```bash
91
- bdo --version # Should show "bdo 0.45.3"
91
+ bdo --version # Should show "bdo 0.45.5"
92
92
  bdo gain # Should show token savings stats
93
93
  ```
94
94
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "artifactDownloadUrls": [
3
- "https://github.com/tedorigawa001/TokenReductionTool-BDO/releases/download/v0.45.3"
3
+ "https://github.com/tedorigawa001/TokenReductionTool-BDO/releases/download/v0.45.5"
4
4
  ],
5
5
  "author": "Patrick Szymkowiak",
6
6
  "bin": {
@@ -91,7 +91,7 @@
91
91
  "zipExt": ".tar.xz"
92
92
  }
93
93
  },
94
- "version": "0.45.3",
94
+ "version": "0.45.5",
95
95
  "volta": {
96
96
  "node": "18.14.1",
97
97
  "npm": "9.5.0"