Skip to content

fix(keynote-2): split demo and bench CLI parsing#4703

Merged
joshua-spacetime merged 3 commits intomasterfrom
joshua/fix-keynote-2-bench
Mar 26, 2026
Merged

fix(keynote-2): split demo and bench CLI parsing#4703
joshua-spacetime merged 3 commits intomasterfrom
joshua/fix-keynote-2-bench

Conversation

@joshua-spacetime
Copy link
Copy Markdown
Collaborator

Description of Changes

This cleans up the keynote-2 benchmark CLI and fixes the bench path that was broken after demo and bench started sharing a single parser. demo and bench now parse their own command grammars instead of sharing one import-time parser. This avoids bench inheriting demo-style validation and breaking on test-1 --connectors .... in addition, bench also uses the same cac-builder as demo now, and I've deleted the unused runner_1.ts.

API and ABI breaking changes

None

Expected complexity level and risk

3

Testing

Manually tested the following from templates/keynote-2:

  • pnpm bench test-1 --seconds 10 --concurrency 50 --alpha 1.5 --connectors spacetimedb
  • pnpm demo --seconds 1 --concurrency 5 --alpha 1.5 --systems spacetimedb --skip-prep --no-animation
  • deno run --sloppy-imports -A src/demo.ts --help
  • deno run --sloppy-imports -A src/cli.ts --help
  • deno run --sloppy-imports -A src/cli.ts test-1 --seconds 10 --concurrency 50 --alpha 1.5 --connectors spacetimedb

bradleyshep
bradleyshep approved these changes Mar 25, 2026
@joshua-spacetime joshua-spacetime force-pushed the joshua/fix-keynote-2-bench branch from ae5adff to 11b109a Compare March 25, 2026 17:06
@joshua-spacetime joshua-spacetime added this pull request to the merge queue Mar 25, 2026
@github-merge-queue github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Mar 25, 2026
@joshua-spacetime joshua-spacetime added this pull request to the merge queue Mar 25, 2026
@github-merge-queue github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Mar 26, 2026
@joshua-spacetime joshua-spacetime added this pull request to the merge queue Mar 26, 2026
Merged via the queue into master with commit b98c68c Mar 26, 2026
70 of 73 checks passed
@joshua-spacetime joshua-spacetime deleted the joshua/fix-keynote-2-bench branch March 26, 2026 02:20
github-merge-queue Bot pushed a commit that referenced this pull request Apr 17, 2026
# Description of Changes

Refresh this stale PR against current `master`. Several original items
were already applied upstream or conflict with recent keynote-2 work
(#4616, #4647, #4678, #4682, #4698, #4703, #4743, #4745, #4753, #4757),
so those are dropped. What remains is the still-relevant subset, rebased
onto the current file structures.

**README.md:**
- Use `pnpm run demo` in Quick Demo (consistency with pnpm workspace)
- Add `--concurrency` and `--alpha` to demo options
- Add `--` separator to `docker compose run` bench example
- Fix hardware config punctuation (add comma before "OS:")
- Remove redundant Quick Start section; replace with link to DEVELOP.md
for prerequisites and CLI reference
- Add symlink for license

**DEVELOP.md:**
- Use `pnpm run` throughout (demo, prep, bench) instead of `npm run`
- Drop the `-- ` pass-through after `pnpm run bench` (not needed with
pnpm; matches the `#4703` testing examples)
- Add Rust to Prerequisites
- Add explicit list of valid connector names (`convex`, `spacetimedb`,
`bun`, `postgres_rpc`, `cockroach_rpc`, `sqlite_rpc`, `supabase_rpc`,
`planetscale_pg_rpc`)
- Update CLI reference defaults to match methodology (seconds: 1→10,
concurrency: 10→50)
- Condense `docker compose run` bench example to a single line with `--`
separator; fix `npm prep` → `pnpm run prep`

**src/opts.ts:** (CLI parsing moved here in `#4703`; original PR
targeted the now-gone inline parsers in `cli.ts`/`demo.ts`)
- `parseBenchOptions`: bench `--seconds` default `1` → `10`
- `parseDemoOptions`: demo `--concurrency` default `10` → `50`

**.env.example:**
- Comment out `USE_DOCKER=1` and `SKIP_CONVEX=1` so demo defaults
(convex, spacetimedb) work out of the box
- Comment out `CONVEX_USE_SHARDED_COUNTER=1` (still a supported knob,
just off by default)

# Dropped as superseded by master

- Rust Client README section tweaks (heading capitalization,
`bottlnecked`/`then` typo fixes) — section was removed by `#4753`
- Rename `SPACETIME_METRICS_ENDPOINT` → `USE_SPACETIME_METRICS_ENDPOINT`
— master's `src/config.ts` still reads the original name
- Connector-name fixes in examples (`sqlite` → `sqlite_rpc`, `postgres`
→ `postgres_rpc`) — already corrected on master

# API and ABI breaking changes

None.

# Expected complexity level and risk

**1** – Documentation and default-value changes. No functional changes
to core logic.

# Testing

- [x] `pnpm install` in `templates/keynote-2/` succeeds
- [x] `pnpm run bench --help` / `pnpm run demo --help` render with
valid-connec
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.

2 participants