Compare commits
6
Commits
d4ce2647ae
...
v1.4.0
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f73b49f17c | ||
|
|
451e04cd96 | ||
|
|
675490e3c3 | ||
|
|
3768113938 | ||
|
|
583e4e4af0 | ||
|
|
38e9cf2b26 |
@@ -3,13 +3,16 @@ name: CI
|
||||
on:
|
||||
push:
|
||||
branches: [main]
|
||||
paths-ignore: ["**/*.md"]
|
||||
pull_request:
|
||||
paths-ignore: ["**/*.md"]
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
lint:
|
||||
runs-on: ubuntu-latest
|
||||
name: Lint (ruff)
|
||||
timeout-minutes: 10
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
@@ -31,6 +34,11 @@ jobs:
|
||||
test:
|
||||
runs-on: ${{ matrix.os }}
|
||||
name: Tests (py${{ matrix.python }} / ${{ matrix.os }})
|
||||
# Guards against a job that hangs mid-run (e.g. a wedged test). Note: this
|
||||
# counts from when a runner PICKS UP the job, so it does not rescue a job
|
||||
# stuck "Waiting to run" because the self-hosted Windows runner is offline —
|
||||
# for that, bring the runner back or skip via paths-ignore (docs).
|
||||
timeout-minutes: 15
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
@@ -85,6 +93,7 @@ jobs:
|
||||
catalog-signature:
|
||||
name: Catalog signature
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 10
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
|
||||
@@ -0,0 +1,91 @@
|
||||
# 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]
|
||||
|
||||
## [1.4.0] — 2026-08-13
|
||||
|
||||
> ⚠️ **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. -->
|
||||
+1
-1
@@ -77,7 +77,7 @@ KNOWN_FIELDS = {"command", "args", "env", "url", "type", "headers"}
|
||||
# binary. All network I/O here is fail-quiet (returns None on any problem)
|
||||
# so it's safe to run unattended, off the UI thread, at startup.
|
||||
# --------------------------------------------------------------------------- #
|
||||
__version__ = "1.3.0"
|
||||
__version__ = "1.4.0"
|
||||
|
||||
REPO_URL = "https://git.avezzano.io/the_og/better-claude-config"
|
||||
ISSUES_URL = f"{REPO_URL}/issues"
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
[project]
|
||||
name = "better-claude-config"
|
||||
version = "1.3.0"
|
||||
version = "1.4.0"
|
||||
description = "Cross-platform GUI for editing the mcpServers block of Claude Desktop and Claude Code configs"
|
||||
readme = "README.md"
|
||||
license = { file = "LICENSE" }
|
||||
|
||||
Reference in New Issue
Block a user