Skip to content

Commit 6b5e54a

Browse files
Tyler Grayclaude
andcommitted
Bump version to 3.9.0 for model aliases and rules scanning release
User-facing additions: - Model picker now uses Claude Code aliases (opus/sonnet/haiku/opusplan/best) with a 1M context toggle and a free-form "Other (custom model ID)" field for Bedrock ARNs / Vertex / Foundry IDs (#213). - Rules dropped into ~/.claude/rules/ or {project}/.claude/rules/ now show up in the UI via new global/project scanners (#200). Fixes: - Sync Config no longer wipes externally-managed configs (.mcp.json, claude.json, OpenCode/Copilot/Cursor/Gemini/Codex) — extends the #191 guard to all 7 writers and imports .mcp.json on project add (#204). - Skill/command/sub-agent writers emit `tags` as JSON arrays so they round-trip through the DB reader (#202). - PR builds from forks/Dependabot no longer fail on missing TAURI_SIGNING_PRIVATE_KEY (#203). - delete_rule_inner returns real DB errors instead of swallowing them as "row absent" (follow-up to #200). Internal: - Cargo clippy from 134 warnings to 0; CI now enforces -D warnings on --lib --tests (#205). All 1565 frontend tests and 2021 Rust tests pass. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent f53bdda commit 6b5e54a

3 files changed

Lines changed: 17 additions & 2 deletions

File tree

CHANGELOG.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,21 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
## [3.9.0] - 2026-05-04
11+
12+
### Added
13+
- **Model Aliases & 1M Context Toggle**: Default Model dropdown now uses Claude Code aliases (`opus`, `sonnet`, `haiku`, `opusplan`, `best`) so the picker no longer goes stale every time Anthropic ships a new version. New "Use 1M token context window" checkbox appends the documented `[1m]` suffix and auto-disables for Haiku. New "Other (custom model ID)…" option accepts any provider-specific identifier — full model name, Bedrock ARN, Vertex/Foundry deployment names. Round-trips correctly through `settings.model`. (#213)
14+
- **Rules Disk Scanning**: Rules in `~/.claude/rules/` and `{project}/.claude/rules/` now appear in the UI — previously the `rules` table was only ever written by in-UI `create_rule`, so on-disk rules were invisible. Adds `scan_global_rules` and `scan_project_rules` to startup scan, factors a shared `walk_md_dir` helper across the four pre-existing flat-`.md` scanners (commands, agents), and accepts both JSON-array and legacy comma-separated `paths`/`tags`. Deleting a rule now also removes the backing `.md` file so the scanner doesn't resurrect it as auto-detected. (#200)
15+
16+
### Fixed
17+
- **Sync Config Externally-Managed Configs**: Extended the #191 (3.8.1) guard from 2 writers to all 7 — `.mcp.json`, `claude.json`, OpenCode, Copilot, Cursor, Gemini, and Codex configs are no longer overwritten with empty MCP data when the app's database has none. Adding a project now also imports MCPs from `.mcp.json` so externally-configured servers show up in the UI instead of looking empty. Corrects `has_mcp_file` to read project-root `.mcp.json` per the spec. (#204)
18+
- **Tag Round-Trip in Writers**: Skill, command, and sub-agent writers now emit `tags` as JSON-array frontmatter so they round-trip through the DB reader's `serde_json::from_str`. Mirrors the rule_writer fix from #200 — pre-emptive, because once scanners re-ingest these primitives the asymmetry would silently lose or corrupt tags. (#202)
19+
- **Updater Signing on PR Builds**: Build workflow no longer fails on PRs from forks or Dependabot. PR builds now override `bundle.createUpdaterArtifacts=false` so the signing-key check is skipped; release builds (tag push) keep the existing signed-artifact path with the macOS x86_64 quirk intact. (#203)
20+
- **Real DB Errors in `delete_rule`**: `delete_rule_inner` no longer silently swallows lock contention / corruption / IO errors as "row absent" — only `QueryReturnedNoRows` maps to `None`, every other rusqlite error is returned before the DELETE runs. Same treatment for `rule_writer::delete_rule_file`. Follow-up to #200.
21+
22+
### Changed
23+
- **Clippy Zero Warnings**: Brought `cargo clippy --lib --tests` from 134 warnings to 0 across nine commits — `cfg(test)`-gated import relocations, `_var` prefix on unused bindings, `vec!`→array in test code, `&Path` over `&PathBuf` in helpers, dead-code annotations on test helpers and serde-deser false positives, mechanical autofixes (`Option::map`, `assert!`, `next_back`). CI now enforces `-D warnings` on `--lib --tests` so lint debt cannot accumulate invisibly. (#205)
24+
1025
## [3.8.5] - 2026-04-19
1126

1227
### Changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "claude-code-tool-manager",
3-
"version": "3.8.5",
3+
"version": "3.9.0",
44
"private": true,
55
"type": "module",
66
"scripts": {

src-tauri/tauri.conf.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"$schema": "https://schema.tauri.app/config/2",
33
"productName": "Claude Code Tool Manager",
44
"identifier": "com.claude-code-tool-manager.app",
5-
"version": "3.8.5",
5+
"version": "3.9.0",
66
"build": {
77
"beforeDevCommand": "npm run dev",
88
"devUrl": "http://localhost:5173",

0 commit comments

Comments
 (0)