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
## Summary
Fixes `setup-mcp` so it writes MCP server config to the files clients
actually read, adds Codex support, refreshes dependencies, and cuts
**4.2.0**. Net diff vs `main` represents the full 4.2.0 release (rolls
up the unreleased 4.1.1 version-prep commit).
## Root Cause / Context
`setup-mcp` wrote the `gather-step` block to `.claude/settings.json`
under `mcpServers`. Claude Code does **not** read server definitions
from `settings.json` (only toggles like `enableAllProjectMcpServers`),
so the registered server never appeared in the client — it was silently
ignored. The `serve` vs `mcp serve` args were never the problem (both
route to the same dispatch); the target file was.
## Key Decisions
- **Per-client targets that match each client's real config model:**
- Claude `--scope local` → project-scoped `.mcp.json`
- Claude `--scope global` → user-scoped `~/.claude.json`
- New `--client codex` → `~/.codex/config.toml` (scope ignored; Codex
has one global config). Default client stays `claude`.
- **`toml_edit` for Codex** so merges preserve existing servers, other
keys, and comments, and render the idiomatic `[mcp_servers.gather-step]`
section rather than an inline table.
- **Dependency bumps are SemVer-compatible only** (no majors);
intentionally exact-pinned crates left untouched; `gix` major skipped.
## Files Changed
- `crates/gather-step-cli/src/commands/setup_mcp.rs` — `--client` flag,
path resolution, JSON + TOML writers
- `crates/gather-step-cli/src/commands/init.rs` — pass `client` through
auto-setup
- `crates/gather-step-cli/tests/cli_setup_mcp.rs` — JSON + Codex TOML
coverage
- `Cargo.toml` / `crates/*/Cargo.toml` / `Cargo.lock` — `toml_edit` dep,
compatible bumps, version 4.2.0
- `website/` — astro 6.4.2, version 4.2.0, changelog entry, landing-page
stamps, MCP-clients doc fix
## Test Plan
- [x] `cargo test -p gather-step --test cli_setup_mcp` — 8 pass (JSON +
TOML writers, merge-preservation, malformed-input)
- [x] `cargo build --workspace` clean; `cargo clippy -p gather-step
--tests` clean
- [x] Functional smoke test: `--scope local` writes `.mcp.json`;
`--client codex` writes a clean `[mcp_servers.gather-step]` block
- [ ] Full CI suite
## Follow-ups
- `release-notes/` is legacy (stops at v3.1.0); canonical changelog is
`website/.../changelog.md`. Consider removing the stale dir.
- 4.0.6 / 4.1.1 were never tagged; this PR rolls them into 4.2.0. No tag
is pushed here — tagging `v4.2.0` will trigger `release.yml`.
0 commit comments