Skip to content

[Deps] Put clap behind an optional cli feature - #25

Merged
kageiit merged 1 commit into
mainfrom
chore/clap-behind-cli-feature
Aug 26, 2026
Merged

[Deps] Put clap behind an optional cli feature#25
kageiit merged 1 commit into
mainfrom
chore/clap-behind-cli-feature

Conversation

@kageiit

@kageiit kageiit commented Aug 26, 2026

Copy link
Copy Markdown

clap sits in [dependencies] but only bin/server.rs and bin/client.rs use it - nothing under src/ mentions it. Every library consumer of mcp_rs has therefore been compiling clap and its subtree for nothing. This makes it optional behind a non-default cli feature and gates the two binaries on it.

required-features means cargo skips a binary rather than failing when the feature is off, so cargo build on a checkout still succeeds, and both CI jobs already pass --all-features, so the binaries stay built and linted.

Measured on this branch: cargo tree -e normal goes from 13 clap-subtree crates to zero, and cargo tree -e normal --features cli still shows them.

In gitar this subtree reaches most of the workspace, since mcp_rs is a dependency of agent-models. We just moved every gitar CLI from clap to usage, and this was the one remaining edge keeping clap in the graph.

Heads up on two things I did not touch:

CI is already red on main. cargo test --all-features fails with 15 E0061s in tests/tools.rs, from agent_id: Uuid landing on CallToolArgs as a required TypedBuilder field without the test call sites being updated. I reproduced that on main at 9b4756f with this branch stashed, so it predates this PR.

Left alone, as the fix is a semantic call: either the tests supply an agent_id or the field takes a #[builder(default)], and whoever wrote it knows which.

gitar is pinned to a commit that is not on any branch. Our rev = "43eb26e6" is the pre-squash head of #19, reachable only through refs/pull/19/head. #19 squash-merged as b496f16, and main has three commits since.

So consuming this means moving off that dangling head onto main, which also brings e6409b7 (sync get_tool) and 9b4756f. Separate bump on our side, not something this PR does.

@kageiit
kageiit enabled auto-merge (squash) August 26, 2026 22:43
@kageiit
kageiit disabled auto-merge August 26, 2026 22:46
@kageiit
kageiit merged commit e19d9db into main Aug 26, 2026
1 check passed
@kageiit
kageiit deleted the chore/clap-behind-cli-feature branch August 26, 2026 22:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants