Skip to content

design: evaluate tsrs for EmDash typechecking - #4333

Open
swissky wants to merge 1 commit into
emdash-cms:mainfrom
swissky:design/tsrs-typecheck-evaluation
Open

swissky wants to merge 1 commit into
emdash-cms:mainfrom
swissky:design/tsrs-typecheck-evaluation

Conversation

@swissky

@swissky swissky commented Oct 21, 2026

Copy link
Copy Markdown
Member

Design proposal

This proposal evaluates whether tsrs can shorten EmDash's typechecking feedback loop while the current tsgo check remains authoritative.

The local package benchmark showed these potential savings:

  • core: 3.122s with tsgo versus 0.421s with tsrs, a reduction of 2.701s (about 86%).
  • admin: 1.298s versus 0.435s, a reduction of 0.863s (about 67%).
  • Across 32 package checks, the sum of sequential package medians fell from 11.387s to 5.097s, a reduction of 6.290s (about 55%).
  • Peak process memory also fell in these two packages: core from 1,358 MB to 545 MB, and admin from 940 MB to 368 MB.

These are local measurements, not CI wall-clock savings. The benchmark used different TypeScript development revisions, and 31 of 32 package checks produced identical diagnostics. The remaining difference is TS5115 in the Cloudflare package under tsrs. The proposal therefore calls for a non-blocking shadow evaluation, aligned compiler revisions, editor-support checks, and measurements of the full typecheck matrix on Linux CI before any adoption decision. It does not change the required checker or claim faster Worker execution or public page delivery.

Proposal: proposals/evaluate-tsrs-typechecking.md

Proposal type

  • Feature plan
  • RFC
  • Amendment, supersession, or withdrawal

Related work

Discussion: Not applicable. This bounded tooling evaluation does not require an Ideas Discussion.

Readiness

  • The proposal identifies its author and, for an RFC, its champion and Maintainer sponsor
  • The proposal describes observable behavior, compatibility, failure handling, and verification in proportion to its risk
  • Conflicting accepted or pending proposals are reconciled in this pull request
  • This pull request contains no implementation code
  • The proposal status is accepted (check only when ready to merge)

AI assistance

  • This proposal used AI assistance — model/tool: GPT-6 Luna

@changeset-bot

changeset-bot Bot commented Oct 21, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 73be59a

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@swissky
swissky marked this pull request as ready for review October 21, 2026 20:37
@github-actions github-actions Bot added the review/needs-review No maintainer or bot review yet label Oct 21, 2026
@MA2153

MA2153 commented Oct 21, 2026

Copy link
Copy Markdown
Contributor

I believe feature proposals are for things affecting published packages, not the development workflow itself.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants