Repository navigation
Conversation
Keep names, permissions, schemas and streaming metadata synchronously available, then single-flight each implementation group on invocation. Generate metadata from the original declarations, preserve admission checks and build switches, and cancel retired streams before their handlers can acquire subscriptions.
759b6b2 to
c5f3a4e
Compare
d470aca to
5b53184
Compare
c5f3a4e to
da5e68f
Compare
5b53184 to
4230d58
Compare
da5e68f to
c5f3a4e
Compare
4230d58 to
5b53184
Compare
|
Closing this experimental implementation because the completed full-app measurements invalidate its current performance rationale under the performance acceptance criterion. The evidence is now preserved independently in merged #33912, in I checked the complete production scope: generated metadata for 70 groups/777 declarations, the group loader/registry wrappers, schema extraction, generator updates and lint exceptions all serve this same loading experiment. Single-flight/retry, metadata identity, cancellation and contract tests protect that new mechanism; there is no separate user-facing bug fix here requiring this implementation to remain open. Current This does not reject a future coarse owner boundary or a redesigned lazy registry. Such a proposal needs a measured full-app benefit sufficient to justify the manifest, loading and first-dispatch costs. The prototype, discussion and contract tests remain available in this PR and its commits; no branch is being deleted. Closing the current measured regression keeps that future work separate from an implementation the evidence says not to land. |
Current disposition: performance hold; do not merge. Adding this experiment increased median main RSS by 5.906 MB and loaded main CJS files by 201 in the historical full-app comparison. A smaller isolated import graph did not translate into a memory win. Evidence #33912 is merged independently into
main.ELI5
Listing RPC capabilities should not load every feature implementation.
What Changed
Advertise the full ordered method/security/schema/streaming surface from generated static metadata and load implementation groups on first dispatch. Preserve compile switches and parameter schemas, verify metadata against original declarations, share concurrent imports, and retry failed loads. Streaming callers canceled during loading cannot install late subscriptions. Update the existing catalog generator and narrow generated-file lint boundaries.
Why
RPC registration previously pulled large unused feature graphs into desktop and headless startup. Static metadata keeps authorization, validation, CLI/mobile capability discovery and mixed-version method names available before implementation loading.
Visual Proof
N/A — main-process loading/lifecycle changes; no rendered UI change. Hidden Playwright CDP checks on the complete stack passed, including the rendered SSH add-host/test/refusal flow; see the evidence PR.
Testing
Catalog verification, Node typecheck, lazy-registry/cancellation tests, and serve/remote/CLI/mobile suites passed. Cold bundled enumeration evaluated zero implementation groups. Independent review checked 70 groups and 777 declarations. A 21-check changed gate passed before a final test-only import move. The RPC-inclusive combined gate passed 23/24 checks; its unit run exposed incomplete runtime/SSH mocks and three daemon fixture failures. After the five test-only mock corrections, all eight failing files (122 tests) passed together on both candidates. The same three daemon cases fail in a broad control at the pinned upstream base. The historical measured stack’s gate excludes this experiment; no successful full RPC-inclusive gate is claimed after the mock corrections.
Local runtime evidence is Linux x64/Electron 43.8.1. macOS physical footprint and native Windows/macOS behavior are not measured locally. Remote, folder workspace, mobile and serve contracts remain in scope; there is no wire-protocol change.
Review
Separate experimental branch; performance hold. Depends on #33892. Review this PR against its configured base branch.
Evidence and benchmark: #33912. The historical measured stack measures −4.44 MB median idle V8 heap and −5.87 MB median Linux RSS (n=3, 120 seconds, fresh hidden profiles, telemetry/GPU disabled). macOS physical footprint is unverified. M3 is a separate experiment on performance hold; M4/M5 do not make xterm/YAML cold at full idle.
Agent skill upstream boundary
Checklist