Skip to content

fix(cli): stop advertising flags that do nothing, and ship the right version - #217

Merged
oratis merged 2 commits into
mainfrom
fix/cli-flag-and-doc-honesty
Aug 3, 2026
Merged

fix(cli): stop advertising flags that do nothing, and ship the right version#217
oratis merged 2 commits into
mainfrom
fix/cli-flag-and-doc-honesty

Conversation

@oratis

@oratis oratis commented Aug 3, 2026

Copy link
Copy Markdown
Owner

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, --strict are parsed into ParsedArgs and read by nothing — verified by grepping every consumer. --help listed all five under OVERRIDES, so passing one looked like it worked. Same shape as the --permission-mode bug fixed in #159.

They now leave --help, and using one prints on stderr:

Warning: --mcp-config is not implemented yet and was ignored.

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.

--bare

Help said "No plugins / MCP / skills — just kernel + tools". It suppresses the startup banner. --no-plugins is the flag that does the other thing.

Version

deepcode --version printed 0.1.0 on every release so far. It reads core's VERSION constant, which release.yml never stamped — it patches apps/cli/package.json (0.1.6) and the changelog says 0.2.0. So did --help, /upgrade, and the model/mode line in the /bug issue body.

  • all version fields → 0.2.0
  • release.yml stamps core VERSION from the tag in each job that builds something embedding it (npm publish, VSIX, Mac sidecar), before the build, not after
  • new scripts/version-consistency.test.ts fails CI if core / CLI / desktop / tauri.conf.json / Cargo.toml / newest changelog heading ever disagree again

Positioning

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 /login doesn't exist (shipped in #157), /rewind is 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:check clean. 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: --version0.2.0, warnings fire on a real run path, OVERRIDES section lists only what works.

release.yml changes cannot be exercised without a tag and secrets; the sed is the same pattern the workflow already uses for Cargo.toml, and the publish job greps to confirm the substitution took.

🤖 Generated with Claude Code

t and others added 2 commits August 3, 2026 08:26
…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>
@oratis
oratis merged commit 6e40e65 into main Aug 3, 2026
5 checks passed
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.

1 participant