CI / Lint (ruff) (pull_request) Successful in 13s
CI / Tests (py3.10 / ubuntu-latest) (pull_request) Successful in 12s
CI / Tests (py3.12 / ubuntu-latest) (pull_request) Successful in 11s
CI / Tests (py3.13 / ubuntu-latest) (pull_request) Successful in 11s
CI / Catalog signature (pull_request) Successful in 7s
CI / Tests (py3.12 / windows-latest) (pull_request) Successful in 1m11s
Starts a per-release changelog. The Unreleased section captures everything merged since v1.3.0 (ssh-mcp v2 support, sidecar detect/edit, version pin, permission pre-flight, hot-reload, light theme, visible update checker, move-to-env, cross-client phase 1) with the ssh-mcp-is-breaking-upstream / BCC-is-additive distinction called out. Past releases backfilled from tags.
90 lines
4.4 KiB
Markdown
90 lines
4.4 KiB
Markdown
# Changelog
|
||
|
||
All notable changes to **BetterClaudeConfig** are recorded here. The format is
|
||
based on [Keep a Changelog](https://keepachangelog.com/), and this project
|
||
follows [Semantic Versioning](https://semver.org/): breaking changes bump the
|
||
major, new features bump the minor, fixes bump the patch.
|
||
|
||
**When you open a PR, add a line under `[Unreleased]`.** At release time, that
|
||
section is renamed to the new version + date and a fresh `[Unreleased]` is
|
||
started.
|
||
|
||
## [Unreleased] — targeting 1.4.0
|
||
|
||
> ⚠️ **Using the `ssh-mcp` server?** Upstream `ssh-mcp` shipped a **breaking
|
||
> v2**: it removed the `--password`, `--sudoPassword`, `--suPassword` and
|
||
> `--disableSudo` command-line flags, and it now reads a `config.toml` sidecar
|
||
> file that overrides your command-line arguments. A config written for v1
|
||
> crashes on v2's startup. This release adds tools to detect and fix that.
|
||
> **BetterClaudeConfig itself has no breaking changes** — your existing configs
|
||
> keep working; nothing is changed without your click.
|
||
|
||
### Added
|
||
- **ssh-mcp v2 flag migration.** Detects the credential flags v2 removed and
|
||
one-click-moves each into the environment variable ssh-mcp now reads
|
||
(`--password` → `SSH_MCP_PASSWORD`; `--sudoPassword` / `--suPassword` →
|
||
`SSH_MCP_SUDO_PASSWORD`). Also flags `--maxChars=none`, whose meaning changed
|
||
between versions.
|
||
- **Sidecar-config awareness.** When a server reads a separate config file
|
||
(ssh-mcp's `config.toml`), BCC shows where that file actually lives on your
|
||
platform and warns when your command-line args are **inert** because the file
|
||
takes precedence — including when a file sits at the wrong, documented-but-
|
||
unused path.
|
||
- **In-app sidecar editor.** Edit that external config from inside BCC —
|
||
pick-lists for known fields, a raw-text fallback — written atomically with a
|
||
timestamped backup and locked to `0600`. No dropping to a terminal.
|
||
- **Live hot-reload.** External changes to a sidecar (or to your Claude config)
|
||
now surface without restarting BCC.
|
||
- **Version pinning for `npx` servers.** Spots servers launched with `-y` /
|
||
`@latest` that resolve a fresh version every run, shows the version currently
|
||
resolved, and offers a one-click **Pin to this version** — with a drift note
|
||
when a pin has fallen behind.
|
||
- **Permission pre-flight.** Warns when a credential-bearing config is readable
|
||
by other users on the machine and offers a one-click fix to `0600`/`0700`.
|
||
- **Light theme + system-following** (the dark theme is preserved exactly).
|
||
- **"Move to environment variable."** Convert a plaintext secret in a config
|
||
into a `${VAR}` reference in place — offered only on clients that actually
|
||
expand references, so it can't silently break a Claude Desktop config.
|
||
- **Cross-client foundation.** Claude Desktop and Claude Code now flow through a
|
||
single adapter — groundwork for supporting more clients.
|
||
|
||
### Changed
|
||
- The update checker is now **visible** — a persistent banner plus a Help-menu
|
||
item — instead of being buried in the About dialog.
|
||
- Config writes share one atomic-write path; the temp file is created `0600`, so
|
||
a secret is never briefly world-readable mid-write.
|
||
|
||
### Fixed
|
||
- Loading a config with a non-object server value no longer crashes, and named
|
||
server sets survive an external-change merge.
|
||
- Project profiles that share a directory basename are disambiguated, so you
|
||
can't accidentally edit the wrong `.mcp.json`.
|
||
|
||
### Internal / maintainer
|
||
- Signed-catalog core and a maintainer-only **Catalog Console** (review + sign),
|
||
with hardening of the review gate and a split of the signing keys. No
|
||
user-facing catalog browser ships yet.
|
||
|
||
## [1.3.0] — 2026-07-12
|
||
Named server sets, Claude Code project `.mcp.json` discovery, structural schema
|
||
lint, and UX polish (Ctrl+S to save, enable-all / disable-all).
|
||
|
||
## [1.2.1] — 2026-07-12
|
||
First shipped binaries: app-icon fix, a batch of audit fixes, and Windows
|
||
process-tree cleanup on spawn-tests.
|
||
|
||
## [1.2.0] — 2026-07-08
|
||
Server log viewer, duplicate-name conflict handling, a Restart-Claude button,
|
||
stale-file protection, an About dialog, and a notify-only update checker.
|
||
|
||
## [1.1.0] — 2026-07-04
|
||
Backup / restore UI and secret masking.
|
||
|
||
## [1.0.1] — 2026-06-29
|
||
## [1.0.0] — 2026-06-29
|
||
Initial releases: the core `mcpServers` editor with the lenient paste/repair
|
||
pipeline that tolerates malformed JSON.
|
||
|
||
<!-- Backfill for 1.0.0–1.3.0 is summarised from release notes; the Unreleased
|
||
section onward is maintained per-PR. -->
|