Compare commits
6
Commits
d4ce2647ae
..
v1.4.0
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f73b49f17c | ||
|
|
451e04cd96 | ||
|
|
675490e3c3 | ||
|
|
3768113938 | ||
|
|
583e4e4af0 | ||
|
|
38e9cf2b26 |
@@ -3,13 +3,16 @@ name: CI
|
|||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches: [main]
|
branches: [main]
|
||||||
|
paths-ignore: ["**/*.md"]
|
||||||
pull_request:
|
pull_request:
|
||||||
|
paths-ignore: ["**/*.md"]
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
lint:
|
lint:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
name: Lint (ruff)
|
name: Lint (ruff)
|
||||||
|
timeout-minutes: 10
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
@@ -31,6 +34,11 @@ jobs:
|
|||||||
test:
|
test:
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
name: Tests (py${{ matrix.python }} / ${{ 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:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
@@ -85,6 +93,7 @@ jobs:
|
|||||||
catalog-signature:
|
catalog-signature:
|
||||||
name: Catalog signature
|
name: Catalog signature
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
timeout-minutes: 10
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- 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)
|
# 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.
|
# 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"
|
REPO_URL = "https://git.avezzano.io/the_og/better-claude-config"
|
||||||
ISSUES_URL = f"{REPO_URL}/issues"
|
ISSUES_URL = f"{REPO_URL}/issues"
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
[project]
|
[project]
|
||||||
name = "better-claude-config"
|
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"
|
description = "Cross-platform GUI for editing the mcpServers block of Claude Desktop and Claude Code configs"
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
license = { file = "LICENSE" }
|
license = { file = "LICENSE" }
|
||||||
|
|||||||
Reference in New Issue
Block a user