Context
The V8-arena transport landed for the hot query path (bb4fef2 — 32 query classes, plus getContextualTypeForArgumentAtIndex in 505aed9). Measured on the 1000-file type-aware ESLint corpus: rpc clock 3.4s → 2.65s, heap 1.34GB → 0.90GB, call count unchanged (transport-only).
Principle (maintainer): everything that should be on the arena goes on it. Coverage is decided by payload shape (small fixed-shape records / arrays of them), not by measured frequency alone.
Candidates
- LS navigation payloads (the editor-latency surface — the product's main path):
references / FAR — location arrays (fixed file/line/offset triples; natural arena shape)
definitionAndBoundSpan — location records
quickinfo — display strings (internable)
getCompletionsAtPosition, getSignatureHelp, getRenameInfo/getEditsForRename, getSymbolsDeclarations, getAmbientModules
- Inner type/symbol queries on this path already ride the arena; these are the outer payloads. Frequency needs a tsserver-path profile (sim-nav / volar workload) to prioritize.
- Remaining query classes still on JSON — audit the bridge dispatch for record-shaped results not yet covered (relation getters beyond the current table,
getContextualTypeForJsxAttribute, etc.).
Explicit non-goals (shape already optimal)
updateSnapshot params/results — large documents, V8 native JSON wins (msgpack experiment, reverted)
- diagnostics with nested related-information (document payloads, low frequency — revisit only if editor-path measurement says otherwise)
getSourceFile blobs — already zero-serialization by design (raw binary, 1 memcpy, Electron-sandbox floor)
Work items
Context
The V8-arena transport landed for the hot query path (
bb4fef2— 32 query classes, plusgetContextualTypeForArgumentAtIndexin505aed9). Measured on the 1000-file type-aware ESLint corpus: rpc clock 3.4s → 2.65s, heap 1.34GB → 0.90GB, call count unchanged (transport-only).Principle (maintainer): everything that should be on the arena goes on it. Coverage is decided by payload shape (small fixed-shape records / arrays of them), not by measured frequency alone.
Candidates
references/ FAR — location arrays (fixed file/line/offset triples; natural arena shape)definitionAndBoundSpan— location recordsquickinfo— display strings (internable)getCompletionsAtPosition,getSignatureHelp,getRenameInfo/getEditsForRename,getSymbolsDeclarations,getAmbientModulesgetContextualTypeForJsxAttribute, etc.).Explicit non-goals (shape already optimal)
updateSnapshotparams/results — large documents, V8 native JSON wins (msgpack experiment, reverted)getSourceFileblobs — already zero-serialization by design (raw binary, 1 memcpy, Electron-sandbox floor)Work items
tools/triage-arena-parity.mjs;triage-electron-abi.mjsdifferential coverage for every new method