bdo-cli 0.47.0 → 0.48.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.
Files changed (3) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/README.md +24 -2
  3. package/package.json +2 -2
package/CHANGELOG.md CHANGED
@@ -5,6 +5,36 @@ 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.48.0] (2026-10-17)
9
+
10
+ ### Features
11
+
12
+ - **`bdo map --grep <PATTERN>`**: keep only the signatures matching a regex
13
+ (files with no match are dropped), e.g. `bdo map src --grep 'Tracker'`. The
14
+ footer reports how many of the tree's signatures matched. Combines with
15
+ `--changed`.
16
+
17
+ ### Fixed
18
+
19
+ - `bdo map <file>` (a single file) printed an empty header line instead of the
20
+ file's path.
21
+
22
+ ## [0.47.1] (2026-10-17)
23
+
24
+ ### Security
25
+
26
+ - **Release archives carry GitHub build provenance.** Each platform's archive
27
+ is attested by the release workflow, so a download can be checked with
28
+ `gh attestation verify <file> --repo tedorigawa001/TokenReductionTool-BDO`.
29
+ Unlike the `.sha256` sidecar, which ships in the same release, this proves
30
+ the file was built by this repository's workflow from the tagged commit.
31
+
32
+ - **npm releases are staged and need maintainer approval.** CI now runs
33
+ `npm stage publish` (still via Trusted Publishing), and the trusted publisher
34
+ is allowed nothing else, so a new `bdo-cli` version goes public only when a
35
+ maintainer approves it with 2FA. A compromised CI run can no longer publish
36
+ to npm on its own. The hardening check fails on a direct `npm publish`.
37
+
8
38
  ## [0.47.0] (2026-10-17)
9
39
 
10
40
  ### Features
package/README.md CHANGED
@@ -86,7 +86,14 @@ cargo install --git https://github.com/tedorigawa001/TokenReductionTool-BDO
86
86
 
87
87
  Download from [releases](https://github.com/tedorigawa001/TokenReductionTool-BDO/releases):
88
88
  Archives are named after the crate (`bushido`); the binary inside is `bdo`.
89
- Each has a `.sha256` sidecar — verify before extracting.
89
+ Each has a `.sha256` sidecar — verify before extracting. From 0.47.1 on, each
90
+ archive also carries GitHub build provenance, which proves it was built by this
91
+ repository's release workflow (the checksum alone cannot: it ships in the same
92
+ release):
93
+
94
+ ```bash
95
+ gh attestation verify bushido-aarch64-apple-darwin.tar.xz --repo tedorigawa001/TokenReductionTool-BDO
96
+ ```
90
97
 
91
98
  - macOS: `bushido-x86_64-apple-darwin.tar.xz` / `bushido-aarch64-apple-darwin.tar.xz`
92
99
  - Linux: `bushido-x86_64-unknown-linux-gnu.tar.xz` / `bushido-aarch64-unknown-linux-gnu.tar.xz`
@@ -97,7 +104,7 @@ Each has a `.sha256` sidecar — verify before extracting.
97
104
  ### Verify Installation
98
105
 
99
106
  ```bash
100
- bdo --version # Should show "bdo 0.47.0"
107
+ bdo --version # Should show "bdo 0.48.0"
101
108
  bdo gain # Should show token savings stats
102
109
  ```
103
110
 
@@ -189,6 +196,21 @@ C++, Java, and Python; respects `.gitignore`.
189
196
  `--against origin/main` for the whole-branch diff) — the API surface you touched,
190
197
  ideal alongside `bdo review`.
191
198
 
199
+ `bdo map --grep <PATTERN>` keeps only the signatures matching a regex, so
200
+ "where is `Tracker` defined, and what takes or returns one?" is one command
201
+ (`(?i)` for case-insensitive, `^pub` for the public surface). Drill into a hit
202
+ with `bdo map <file>` or `bdo read <file> -l outline`.
203
+
204
+ ```
205
+ $ bdo map src --grep 'struct Tracker\b|pub fn is_quiet'
206
+ core/quiet.rs
207
+ pub fn is_quiet() -> bool { … }
208
+ core/tracking.rs
209
+ pub struct Tracker { … }
210
+
211
+ — 2 files, 2 of 2206 signatures match /struct Tracker\b|pub fn is_quiet/ (full source: 2208 lines)
212
+ ```
213
+
192
214
  For Python, function bodies are elided with a `…` marker (the analogue of
193
215
  `{ … }`), `async def` is handled like `def`, and multi-line signatures are
194
216
  folded onto one line:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "artifactDownloadUrls": [
3
- "https://github.com/tedorigawa001/TokenReductionTool-BDO/releases/download/v0.47.0"
3
+ "https://github.com/tedorigawa001/TokenReductionTool-BDO/releases/download/v0.48.0"
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.47.0",
94
+ "version": "0.48.0",
95
95
  "volta": {
96
96
  "node": "18.14.1",
97
97
  "npm": "9.5.0"