fix(cli): stop advertising flags that do nothing, and ship the right version - #217
Merged
Conversation
…version Three kinds of user-visible dishonesty, from docs/THREE_WAY_REVIEW.md F1-F4. Inert flags. `--agents`, `--mcp-config`, `--plugin-dir`, `--plugin-url` and `--strict` are parsed into ParsedArgs and consumed by nothing — but `--help` listed all five under OVERRIDES, so passing one looked like it worked. Same shape as the `--permission-mode` bug fixed in #159. They are now dropped from `--help` and reported on stderr when used; still accepted, so scripts that already pass them keep running instead of exiting 2. `--bare` copy. It claimed "No plugins / MCP / skills — just kernel + tools". It suppresses the startup banner. `--no-plugins` is the flag that disables plugins. Version. `deepcode --version` printed 0.1.0 — core's VERSION constant, which the release workflow never stamped, while it patched apps/cli/package.json (0.1.6) and the changelog announced 0.2.0. Every user-facing version string (`--version`, `--help`, `/upgrade`, the `/bug` issue body) was wrong on every release so far. All version fields move to 0.2.0, release.yml now stamps core before each build that embeds it, and a new scripts/version-consistency.test.ts fails CI if core, CLI, desktop, Cargo and the changelog ever disagree again. Positioning. The README stopped promising 1:1 Claude Code parity; the help header, two package descriptions and the migration guide had not. The migration guide also documented `/login` as nonexistent (it shipped in #157), `/rewind` as a skeleton, and the VS Code extension as a v1.1 skeleton. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
CI runs `cargo check --locked`, which fails when Cargo.lock still pins the old version. Also stamps the lock alongside Cargo.toml at release time, and extends the consistency test to cover it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Findings F1–F4 from
docs/THREE_WAY_REVIEW.md. All four are things the tool tells the user that are not true.Inert flags
--agents,--mcp-config,--plugin-dir,--plugin-url,--strictare parsed intoParsedArgsand read by nothing — verified by grepping every consumer.--helplisted all five under OVERRIDES, so passing one looked like it worked. Same shape as the--permission-modebug fixed in #159.They now leave
--help, and using one prints on stderr:Still accepted rather than rejected — they were documented, so they may already sit in someone's scripts, and exiting 2 on them would be a worse break than a warning.
--bareHelp said "No plugins / MCP / skills — just kernel + tools". It suppresses the startup banner.
--no-pluginsis the flag that does the other thing.Version
deepcode --versionprinted0.1.0on every release so far. It reads core'sVERSIONconstant, whichrelease.ymlnever stamped — it patchesapps/cli/package.json(0.1.6) and the changelog says0.2.0. So did--help,/upgrade, and the model/mode line in the/bugissue body.0.2.0release.ymlstamps coreVERSIONfrom the tag in each job that builds something embedding it (npm publish, VSIX, Mac sidecar), before the build, not afterscripts/version-consistency.test.tsfails CI if core / CLI / desktop /tauri.conf.json/Cargo.toml/ newest changelog heading ever disagree againPositioning
The README stopped promising 1:1 Claude Code parity; the help header,
deepcode-cli's and the extension's package descriptions, and the migration guide had not. The migration guide also still said/logindoesn't exist (shipped in #157),/rewindis a skeleton (it has 5 ops), and the VS Code extension ships in v1.1 (it is a protocol client today).Verification
pnpm typecheck·pnpm lint·pnpm format:checkclean. Full suite green: core 710/16 skipped · cli 175 · desktop 62 · server 41 · protocol 24 · vscode 12 · lsp 13 · scripts 20. Smoke-tested the built CLI:--version→0.2.0, warnings fire on a real run path, OVERRIDES section lists only what works.release.ymlchanges cannot be exercised without a tag and secrets; thesedis the same pattern the workflow already uses forCargo.toml, and the publish job greps to confirm the substitution took.🤖 Generated with Claude Code