Skip to content

Retire the JavaScript CLI in cli/; e2e tests the Rust CLI - #57

Merged
chenchenSimular merged 1 commit into
mainfrom
chenchen/retire-js-cli
Nov 11, 2026
Merged

chenchenSimular merged 1 commit into
mainfrom
chenchen/retire-js-cli

Conversation

@chenchenSimular

Copy link
Copy Markdown
Contributor

Closes #56.

Why

@simular-ai/box on npm has been the Rust simular-box from simular-ai/box-cli since 1.0.0 (1.1.1 is latest), and this repo's npm trusted publisher was removed. cli/ (the 0.2.x JavaScript CLI) can't ship anything, and publishing from here would be wrong. Its copied protos (cli/proto, used only by cli/src/box/connection.js) go too: protos now live only in simular-ai/box.

What changes

  • Removed: cli/ in full: source, bin, proto/, unit tests, fake box, smoke test, eslint config and lockfile. Also removed: the JS check job (lint, unit, smoke, pack) and the npm publish job with its cli-v* tag trigger.
  • Kept and moved to e2e/: the client install matrix (install-matrix.mjs, clients.json, isolated-env.mjs) and the live staging check (live.mjs, mcp-tools.mjs). They used to run the JS CLI. They now run the version the Claude plugin pins, npx -y @simular-ai/box@X.Y.Z read from claude/skills/box-offload/SKILL.md (e2e/cli.mjs), or $BOX_CLI to test a local box-cli build. The assertions are unchanged. JSON from doctor is parsed from stdout only, and npm's update notice is off in the isolated env.
  • Workflow: publish-cli.yml is renamed to ci.yml and keeps the plugins, clients and live jobs. Its paths now point at e2e/. Pushes to main also run when claude/ or .claude-plugin/ change, because the pin decides what the e2e tests.
  • Docs: README.md and claude/README.md now point at @simular-ai/box / simular-ai/box-cli instead of cli/.

Testing

  • Locally (macOS) I ran node e2e/install-matrix.mjs with CLI 1.1.0 for codex, opencode, gemini-cli and openclaw at the pinned versions, and for claude-code with a local 2.1.322. All passed.
  • I also ran claude plugin validate on . and ./claude, the pin check, npm pack ./dsh --dry-run, and the OpenClaw build, install, inspect and doctor. All passed.
  • Not run locally: cursor, hermes, Windows/Linux legs, and live staging (needs BOX_CI_KEY). This PR's CI covers them.
  • An independent review compared the assertions and per-client config paths with box-cli v1.1.0 and found no issues.

Left for later (manual, not in this PR)

The npm GitHub environment and the cli release tags tag ruleset are now unused.

🤖 Generated with Claude Code

https://claude.ai/code/session_01JpjBLYLub5jiuXCLhoSg2s

@simular-ai/box on npm is the Rust simular-box from simular-ai/box-cli
since 1.0.0, and this repo's npm trusted publisher was removed, so cli/
(the 0.2.x JavaScript CLI, its copied protos, tests and publish job)
can no longer ship anything. Protos live only in simular-ai/box.

The client install matrix and the live staging check move to e2e/ and
now run the CLI version the Claude plugin pins (npx -y
@simular-ai/box@X.Y.Z, or BOX_CLI), so they test what users run.
publish-cli.yml becomes ci.yml without the JS check and publish jobs.

Claude-Session: https://claude.ai/code/session_01JpjBLYLub5jiuXCLhoSg2s
@chenchenSimular
chenchenSimular merged commit 15d07a9 into main Nov 11, 2026
22 checks passed
@chenchenSimular
chenchenSimular deleted the chenchen/retire-js-cli branch November 11, 2026 09:05
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.

Retire the JavaScript CLI in cli/ (and its copied protos)

1 participant