Repository navigation
0.9.0
Changed — may break callers
- The MCP server is
clidev <profile> mcp serve;mcpalone only shows its commands (WC-CMD-3).--http,
--portand--public-urlmove tomcp serve, andmcp --revokeis its own command,mcp revoke, still refused
underCLIDEV_READ_ONLY. There is no alias: a client set up withclaude mcp add clidev -- clidev personal mcp
gets the help and exits 2; set it up again with… mcp serve.mcp server startrunsmcp serve --http. - The skeleton runs on cli-core 0.463.0 and cli-base 0.63.0, the cli-base line cli-core 0.463 accepts; a CLI that
pins cli-base moves both pins together.skill show,skill statusandskill install --jsonanswer in the
one-thing envelope,{ item, meta }, so a script reads their fields underitem. mcp server startno longer offers--permission. cli-core added it to every CLI and passed it to a server
that refused it; now it is refused before anything starts. The profile'spermissionsstill make the server
stricter.
A CLI made from an older template keeps its own src/commands/mcp.ts, since src/ is a seed: copy the template's
file, and change claude mcp add lines in its docs to end in mcp serve.
Security
.gitleaks.tomlcatches Google OAuth tokens. gitleaks' own rules know Google API keys only, so an access token
(ya29.…) or a refresh token (1//…) with no keyword beside it went through. Two rules now catch them. A CLI takes
them withupgrade; scan its history once withgitleaks gitafter that, since CI scans all of it.
Fixed
- A command other than
mcp serveno longer loads the MCP library.src/commands/mcp.tsimportedportOfand
publicUrlOffrom@wirecat/cli-core/mcpat the top, so--versionanddoctorloaded the MCP server SDK too
(WC-LIFE-6).mcp serve --httpnow imports them when it runs. docs/security.mdsays whatmcp serve --httplistens on, what it keeps of each browser login, and that
mcp revokeends them.pnpm audit:commandsprints the CLI's own scorecard lines, not the last CLI's total, which was zoom-cli's. It
fails when the scorecard has no line for the CLI. Whether a new finding fails the run did not change.AGENTS.mdkeeps only what holds for the CLI's whole life. The one-time first task (interview, reference CLI,
rewrite the README and the MCP instructions) moved into theDESIGN.mdthatnewwrites, which the CLI owns and
deletes the section from when it is done.upgradedrops the old text fromAGENTS.md.newwrites afileslist that ships only what the CLI runs from:dist,skills,README.md,
CHANGELOG.mdandLICENSE. It copied the template's own list, so a new CLI published itssrc/with tests and
fakes,scripts/,.github/,bin/release,config/,lint/andtemplate.json(WC-REL-16).package.jsonis
a seed, so a CLI made before this trims its list by hand;pnpm smokethen checks the package still runs.docs/dev/TESTING.mdandci.ymlgive both reasonscontracts:upgradeis skipped: it needs local state of the
CLI's own and a published version to upgrade from (WC-TEST-14).docs/dev/reference-clis.mdshows the provider call cli-core has,store.accounts.registerProvider(entry).
@wirecat/cli-core/storeexports noregisterProviderfunction.