Repository navigation
perf(signals): fold verdict and lane upkeep out of builds without those engines - #4418
Conversation
…se engines Hello world (compiled floor) 10,059 -> 9,967 B brotli. The verdict engine's CONFIG_ASYNC upkeep, its CONFIG_VERDICT re-derive and flag checks, and recompute's pass-lane seat and restores are guarded on the engines' hooks, which the minifier folds when nothing installs them. CONFIG_VERDICT is only ever set by the verdict engine and passLane only by the lane engine, so the guards change no behavior in any build. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015hPxMkC3jg3Uivh65gvaf2
🦋 Changeset detectedLatest commit: 6c5ab82 The changes in this PR will be included in the next version bump. This PR includes changesets to release 15 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
Size (brotli, eager entry chunk)
Bundled with Rolldown (what Vite ships), brotli q11, decimal KB. A scenario fails only when it is over its brotli cap and its minified size is more than 20 B over the minified recorded with the cap; over the cap within that allowance is brotli layout noise and passes with a warning. Caps and their recorded minified in |
isPending/latest 11.03 -> 11.05 KB (30,407 B), compiled live page 42.61 -> 42.62 KB (125,165 B), live + router 48.29 -> 48.31 KB (142,427 B), from this PR's CI size run. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015hPxMkC3jg3Uivh65gvaf2
Coverage Report for CI Build 40905879905Coverage remained the same at 78.516%Details
Uncovered ChangesNo uncovered changes found. Coverage RegressionsNo coverage regressions found. Coverage Stats
💛 - Coveralls |
Merging this PR will degrade performance by 12.13%2 warnings
Warning Please fix the performance issues or acknowledge them on CodSpeed. Performance Changes
Tip Investigate this regression by commenting Comparing Footnotes
|
|
CodSpeed's −12% on 6c5ab82 doesn't hold up as a regression from this diff:
Size gate, tests and babel-8 are green. Hello world is 9,967 B brotli, down from 10,059 B. Generated by Claude Code |
…4414 (#4421) * chore(size): re-record the ledger on next @ 5d57e12 after #4418 and #4414 Caps at CI brotli + 10 B rounded up to 0.01 KB, recorded minified = CI measured (next @ 5d57e12, size job 123602802067). #4418's floor trim lowers most caps; #4414's truncation sweep (+~100 B minified in solid's hydration client) raises the compiled base page, the compiled live page and live + router's recorded minified. Hello world cap 10.07 -> 9.98 KB. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015hPxMkC3jg3Uivh65gvaf2 * chore(size): move the frozen floors to next @ 5d57e12 Size-Exception in the PR body: the live page grows with #4414; the other floors drop with #4418. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015hPxMkC3jg3Uivh65gvaf2 --------- Co-authored-by: Claude <noreply@anthropic.com>
Before: hello world (
app: compiled floor) ships 10,059 B brotli, which is over the 10 KB stop. About half of what the 2026-10-29 batch added to it is bookkeeping that only the verdict engine (isPending/latest) or the lane engine (optimistic) ever reads.After: hello world is 9,967 B brotli (−92 B, −285 B minified), measured locally on next @ 9545058. Local numbers matched CI exactly for the floors on the batch commits. Every scenario without the verdict engine shrinks: the core floor by −96 B, the render floor by −87 B, hydrating by −98 B and CSR by −103 B brotli.
How: a hook a bundle never installs is a never-assigned
let, and the minifier folds code guarded on it. So these now sit behind their engine's hook:CONFIG_ASYNCupkeep (fix(signals): an async memo over a verdict memo asks each question once #4397: the set inhandleAsync, and the clears on a sync answer, an error and a loading-window NotReady, merged into one clear inrecompute's catch). The bit is read only by the verdict engine.CONFIG_VERDICTinpropagateStatus,settlePendingSource,reruns, andrecompute's posture write, plusread's verdict-flag inheritance.CONFIG_VERDICTis only ever set by the verdict engine.recompute's pass-lane seat and both restores, andread's lane/verdict flight check.passLaneis only ever set by the lane engine.None of the guards changes behavior in any build. Where an engine is installed, the guarded code runs exactly as before. Where it isn't, the guarded code could never have done anything.
Cost: builds with the verdict engine carry the guards, about +34 B minified and +17 B brotli on
signals: + isPending/latest. Two inline caps are over on this head,signals: + isPending/latestandpage: live + router. A follow-up push on this PR re-records them from this PR's CI numbers.Tests: signals 5,982 passed; web client and hydrate passed; web server 1 failure that fails identically on next in this checkout (
server-functions-adapter-requestrebuild-failure case); solid 1 environment failure (unbuiltpackages/universal/dist).Generated by Claude Code