Repository navigation
Benchmark TypeScript prototype against Rust - #1852
Merged
Merged
Conversation
This was referenced Nov 7, 2026
Closed
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Measures typechecking, slice tests, standalone compilation, executable bytes,
source inventories and ADR-0017 model execution. The report compares subprocess
cleanup, exhaustiveness and shared Console contracts, and states the workload
and cache limits. ADR-0001 is unchanged.
Closes #1840
Evidence
Execution evidence
bun test --cwd prototypes/typescript tests/benchmark.test.tsfailed with
ENOENT: no such file or directoryfordocs/research/typescript-vs-rust.md(1 pass,1 fail). The initial CLI testalso failed with
Module not foundforbenchmark.ts(0 pass,1 fail).After: the same command passes (
2 pass,0 fail,125 expect() calls).bun prototypes/typescript/benchmark.ts --ref 8700be5d --output /tmp/issue-1840-benchmark-final.jsoncompleted all 16 measurements. TypeScript's bundle passed 54 tests; Rust's
selected bundle passed 183 with three ignored. The committed JSON retains
actual command output, tool/host metadata and per-file line counts.
bun run --cwd prototypes/typescript typecheckpassed.python3,scripts/affected-tests 01ecf28cba640c766ce2bfa008fdbc63fbe7c163passedtypechecking (5.02s) and all prototype tests (56 passed, 443 assertions,
99.70s). Its full Rust selection stopped at the unchanged Console cache test
(
unchanged request reread 156409 bytes): 1657 unit tests passed, and Consolehad 235 passed, one failed and one ignored. Rust wall time was 851.50s with
cached compilation. The earlier Python
tomllibsetup failure was corrected;the affected Bug origins regression also passed in isolation and in this run.
Seams under test: the benchmark CLI's JSON/log output, failure propagation and
Worktree cleanup; the published report and its recorded measurement artifact.
The unchanged Rust Console baseline also fails in isolation:
cargo test --locked --test console idle::unchanged_requests_reuse_retained_records_but_replacements_are_visible -- --exact --nocapturereports
unchanged request reread 156041 bytesagainst a 48 KiB limit. The237-test Console diagnostic had 235 passed, one failed and one ignored.
Production code, Rust tests, Cargo files and embedded skills have no diff from
the pinned Base branch. The report explicitly discloses this limitation.
Review coverage
Independent Standards and Spec reviews against
issue-1831at01ecf28c:0 Standards findings; 0 Spec findings. Each axis read all six changed files,
including the complete raw JSON data. Generated-output exclusions: none.
Unread changed files: none.
Unaddressed findings
Standards
None.
Spec
None.
Security
None.
Security review outcome
No unaddressed introduced findings.
Merge Danger
Door: two-way
Blast Radius: tooling
The change adds prototype benchmarking and research evidence; reverting it
removes those artifacts without a data migration.
Built with codex codex-cli 0.160.0 · gpt-6.1-sol · high
CI notes
console-testrun 42314231567 intermittently timed out atconsole/tests/inbox.test.cjs:1584waiting for the liveCI redbadge; the test, Console sources, Cargo dependencies and CI job have no diff between head0bfaa8b0and baseissue-1831(01ecf28c), the focused test passes on both checkouts, andcargo build --lockedplusnpm test --prefix consolepasses all 150 browser tests locally without changes.scripts/affected-tests origin/issue-1831passes prototype typechecking and all 56 prototype tests (443 assertions), then stops at the previously documented, unchanged Rust Console cache assertion:idle::unchanged_requests_reuse_retained_records_but_replacements_are_visible,unchanged request reread 157557 bytes(tests/console/idle.rs:43); 1,657 Rust unit tests pass, and the Console integration result is 235 passed, one failed, one ignored.src/, Rust tests and Cargo files are identical to01ecf28c; this is unrelated to the benchmark/research diff.