You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docs: update PRD to v5.1 with keyring backends and API key validation
Documents fixes for platform-native keyring backends (macOS Keychain,
Windows Credential Manager, Linux Secret Service) and corrected API key
validation ordering. Updates competitive landscape for 2026 and reflects
v0.6.0 structural analysis features.
Copy file name to clipboardExpand all lines: CHANGELOG.md
+5Lines changed: 5 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -35,6 +35,11 @@ All notable changes to CommitBee are documented here.
35
35
-**Token budget rebalance** — Symbol budget reduced from 30% to 20% when structural diffs are available, freeing space for the raw diff. SYSTEM_PROMPT updated to guide the LLM to prefer STRUCTURED CHANGES for signature details.
36
36
-**Unsafe constraint rule** — When `unsafe` is added to a function, a CONSTRAINTS rule instructs the LLM to mention safety justification in the commit body.
37
37
38
+
### Fixes
39
+
40
+
-**API key validation ordering** — `set-key`, `get-key`, `init`, `config`, `completions`, and `hook` commands no longer require an API key to be present. CLI `--provider` flag now applies before keyring lookup.
41
+
-**Platform-native keyring backends** — keyring v3 now uses macOS Keychain (`apple-native`), Windows Credential Manager (`windows-native`), and Linux Secret Service (`linux-native`) instead of a mock file-based backend.
-**Hybrid Git**: gix for repo discovery, git CLI for diffs (documented choice)
23
23
-**Tree-sitter**: Full file parsing with hunk mapping (not just +/- lines)
@@ -39,6 +39,11 @@ cargo build --release
39
39
10.**Signature extraction** - Two-strategy: `child_by_field_name("body")` primary, `BODY_NODE_KINDS` fallback, first-line final fallback. 200-char cap with `floor_char_boundary`. No `.scm` query changes needed.
All 10 languages are individually feature-gated (`lang-rust`, `lang-typescript`, `lang-javascript`, `lang-python`, `lang-go`, `lang-java`, `lang-c`, `lang-cpp`, `lang-ruby`, `lang-csharp`) and enabled by default. Build with `--no-default-features --features lang-rust,lang-go` to include only specific languages.
cargo test --test sanitizer # CommitSanitizer tests
197
121
cargo test --test safety # Safety module tests
198
122
cargo test --test context # ContextBuilder tests
@@ -301,6 +225,9 @@ Common mistake: calling a new safeguard/check `fix` — if there was no bug, it'
301
225
- Parallel subagents touching the same file will conflict — only parallelize when files don't overlap
302
226
-`SymbolKey` uses `(kind, name, file)` — do NOT add `line` (lines shift between HEAD/staged, breaks modified-symbol matching)
303
227
-`classify_span_change` uses new-file line range — old-file lines may differ when code shifts; known limitation (deferred #9)
228
+
-`extract_symbols()` returns `(Vec<CodeSymbol>, Vec<SymbolDiff>)` — all callers must destructure or use `.0`
229
+
-`ChangeDetail` has 25 variants (15 structural + 10 semantic markers) — keep `format_short()` in sync when adding new ones
230
+
-`infer_commit_type` takes `all_modified_docs_only: bool` parameter — must be computed in `build()` before calling
304
231
305
232
### Known Issues
306
233
@@ -333,4 +260,12 @@ A tracked list of review findings, design decisions, and improvement ideas that
333
260
334
261
### Documentation Sync
335
262
336
-
Keep test counts in sync across README.md, DOCS.md, PRD.md, CLAUDE.md (currently 339).
263
+
Test counts and version references must stay in sync across multiple files. After adding/removing tests or bumping version:
264
+
265
+
-**README.md** — test count in features list + testing section + changelog current version
266
+
-**DOCS.md** — test count in description + testing section
267
+
-**PRD.md** — test count in §2.3 (feature status table), §8 (testing header), §11 (roadmap table), §12 (success metrics). Also: PRD version header, changelog entry, and compatibility policy table on version bumps.
268
+
-**CHANGELOG.md** — test count in current version's testing section
269
+
-**CLAUDE.md** — test count in Running Tests section
270
+
271
+
Use `cargo test --all-targets 2>&1 | grep "^test result" | awk '{sum += $4} END {print sum}'` to get the actual count. Don't guess from memory — counts drift easily.
If built with the `secure-storage` feature, CommitBee can store API keys in your OS keychain:
359
+
If built with the `secure-storage` feature, CommitBee can store API keys in your OS keychain using platform-native backends (macOS Keychain, Windows Credential Manager, Linux Secret Service):
360
360
361
361
```bash
362
362
cargo install commitbee --features secure-storage
363
-
commitbee set-key openai # Prompts for key, stores in keychain
364
-
commitbee set-key anthropic # Same for Anthropic
365
-
commitbee get-key openai # Check if key exists
363
+
commitbee config set-key openai # Prompts for key, stores in keychain
364
+
commitbee config set-key anthropic # Same for Anthropic
365
+
commitbee config get-key openai # Check if key exists
Key lookup order: CLI `--provider` flag → config file → environment variable → keychain. The `set-key` and `get-key` commands do not require an API key to already be configured.
0 commit comments