Skip to content

cli: a Node-vs-Rust comparison of every CLI command - #3087

Merged
colinmegill merged 2 commits into
edgefrom
cli-differential
Oct 17, 2026
Merged

colinmegill merged 2 commits into
edgefrom
cli-differential

Conversation

@colinmegill

Copy link
Copy Markdown
Member

Observable change: none for users. This adds a test harness and its entry point.

scripts/test-polis-cli-differential.sh runs every CLI command against the same fixture data twice, once with the Rust routes switched off (Node) and once switched on, and requires identical --json data.

  • It covers participant flows (join, an agreeing vote, a comment, same participant) as well as admin reads.
  • It records which backend served each request, and never counts a handoff to Node as a Rust success.
  • It runs on its own in seconds, as the fast loop next to the byte-level recordings, which stay the gate.
  • Commands backed by a route that exists only in Rust are listed separately: with Rust off they must fail cleanly as capability_unavailable, and they're judged by their own contract tests.
  • Includes a fix so the routing proof counts colon-separated route fallbacks correctly.

Today only the merged Rust routes are switched, so most commands compare Node with Node until more Rust routes land. The vote-sign lint reports 0 new sites.

🤖 Generated with Claude Code

colinmegill and others added 2 commits October 16, 2026 15:41
scripts/test-polis-cli-differential.sh runs every CLI command against the
same fixture data twice, once with the Rust routes switched off (Node) and
once on, and requires identical --json data. It covers participant flows
(join, vote, comment) as well as admin reads, records which backend served
each request, and runs on its own in seconds, separate from the byte-level
recordings. Commands backed by a route that exists only in Rust are listed
separately: with Rust off they must fail cleanly as unavailable, and they
are judged by their own contract tests.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018NVGBuYCk4EZmiz4csUv9s
The upload step refuses a path that starts with '..'.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018NVGBuYCk4EZmiz4csUv9s
@colinmegill
colinmegill merged commit 4b91f06 into edge Oct 17, 2026
28 checks passed
@colinmegill
colinmegill deleted the cli-differential branch October 17, 2026 00:24
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