bdo-cli 0.49.3 → 0.49.4
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 +32 -0
- package/README.md +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,38 @@ 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.49.4] (2026-11-04)
|
|
9
|
+
|
|
10
|
+
### Security
|
|
11
|
+
|
|
12
|
+
Findings of a differential audit: generated commands were judged by the
|
|
13
|
+
permission gate and then really executed in bash, zsh and dash among recording
|
|
14
|
+
fake programs. The audit now runs in the test suite.
|
|
15
|
+
|
|
16
|
+
- **The gate's idea of whitespace was wider than the shell's.** NBSP, CR, VT, FF
|
|
17
|
+
and other Unicode spaces are word characters to a shell, but the tokenizer
|
|
18
|
+
treated them as blanks. Since the 0.49.3 comment fix that hid commands:
|
|
19
|
+
`git status<NBSP># x; cmd` looked like a comment, was auto-approved by a
|
|
20
|
+
`git status` allow rule, and ran `cmd`. Only space, tab and newline separate
|
|
21
|
+
words now, and a comment ends only at a newline.
|
|
22
|
+
- **A rewrite could change what was judged.** The gate judges the command as
|
|
23
|
+
written, but the shell runs the rewrite: trimming a trailing NBSP or VT and
|
|
24
|
+
replacing an in-word line continuation with a space turned
|
|
25
|
+
`git push --force\<newline>x` into `git push --force x`. Commands whose words
|
|
26
|
+
a rewrite could change are no longer rewritten (they only lose token savings).
|
|
27
|
+
- **File writes behind an fd-dup.** `2>&1x` writes to a file named `1x`, but was
|
|
28
|
+
read as a descriptor duplication and auto-approved. Only a whole word of
|
|
29
|
+
digits (or `-`) is an fd now.
|
|
30
|
+
- **Deny and ask rules matched the literal text.** `git push "--force"`,
|
|
31
|
+
`--fo''rce`, `--forc\e` and `git push --force` all ran `--force` past a
|
|
32
|
+
`git push --force*` deny rule. These rules now also see each segment as the
|
|
33
|
+
shell reads it (quotes and escapes removed, blanks collapsed). Allow rules
|
|
34
|
+
still match the text as written, so anything unusual falls back to a prompt.
|
|
35
|
+
- **Expansions could hide a denied argument.** `git push ${X:---force}`,
|
|
36
|
+
`{--force,}` and `--forc?` have values only the shell knows. If a deny or ask
|
|
37
|
+
rule concerns the same program, they are no longer auto-approved: the verdict
|
|
38
|
+
is Ask.
|
|
39
|
+
|
|
8
40
|
## [0.49.3] (2026-11-03)
|
|
9
41
|
|
|
10
42
|
### Security
|
package/README.md
CHANGED
|
@@ -119,7 +119,7 @@ gh attestation verify "$(brew --cache bushido)" --repo tedorigawa001/TokenReduct
|
|
|
119
119
|
### Verify Installation
|
|
120
120
|
|
|
121
121
|
```bash
|
|
122
|
-
bdo --version # Should show "bdo 0.49.
|
|
122
|
+
bdo --version # Should show "bdo 0.49.4"
|
|
123
123
|
bdo gain # Should show token savings stats
|
|
124
124
|
```
|
|
125
125
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"artifactDownloadUrls": [
|
|
3
|
-
"https://github.com/tedorigawa001/TokenReductionTool-BDO/releases/download/v0.49.
|
|
3
|
+
"https://github.com/tedorigawa001/TokenReductionTool-BDO/releases/download/v0.49.4"
|
|
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.49.
|
|
94
|
+
"version": "0.49.4",
|
|
95
95
|
"volta": {
|
|
96
96
|
"node": "18.14.1",
|
|
97
97
|
"npm": "9.5.0"
|