Skip to content

docs: rc.10 diagnostics, attribution and Performance Tracks surface - #1642

Merged
ryansolid merged 3 commits into
v2-rebuildfrom
docs/rc10-diagnostics-api
Sep 27, 2026
Merged

ryansolid merged 3 commits into
v2-rebuildfrom
docs/rc10-diagnostics-api

Conversation

@ryansolid

Copy link
Copy Markdown
Member

Brings the diagnostics, attribution, and Performance Tracks coverage in line with solid-js 2.0.0-rc.10 (solid next c3adc2836) and @solidjs/vite-plugin next f9c4f63.

What rc.10 changed

Generator changes

  • scripts/extract-solid-ref.mjs: new @solidjs/web/performance-tracks entry point and (2)solid-web/(7)performance-tracks route; disposition map updated (fold RenderEvent/RecoveryEvent and friends into OBSERVE, the new attribution event types into attribution, GraphSize into graphSize, PerformanceTracksOptions into enablePerformanceTracks; drop the removed InvocationChannel/AttributionHooks/AttributionRecords/AttributionRecordType/OriginRef/TraceSlot entries; hide serializeStream and ssrElementAttribute); OBSERVE and attribution summaries rewritten around the records channel; Learn links for graphSize and enablePerformanceTracks.
  • scripts/check-examples.mjs: @solidjs/web/performance-tracks entry point so its examples type-check.

Regenerated reference pages

  • reference/solid-js/advanced/diagnostics-dev-hooks/{observe,dev,attribution}.mdx
  • reference/solid-web/request-response/get-trace-context.mdx (TraceSlot section removed)
  • New reference/solid-web/performance-tracks/enable-performance-tracks.mdx, linked from the @solidjs/web index.

Guides

  • Debugging reactivity: rc.10 code groups (HUGE_FAN_OUT at fanOut, the cost and responsiveness lists, a server-rendering line), attribution.enable() as a hold with a release, history(type) in place of holds(), the records channel, enablePerformanceTracks().
  • Performance: WIDE_WRITE → HUGE_FAN_OUT; new "See the records on the Performance panel" section (tracks, labels, Server-Timing metrics, options, values).
  • Observability: componentNames → sourceNames, "render" and "recovery" records, engine records on the same channel, the values table, data.error on the sanitized-error codes.
  • Observability adapters: OBSERVE.records.subscribe for engine records, silent/long on holds, SSR_BOUNDARY_WATERFALL and SERVER_ERROR_SANITIZED with data.source, the listener subject argument and OBSERVE.ownerPath(subject).

Vite plugin options page

  • New observe, diagnostics, and solid.sourceNames sections (the three kinds, which compiler handles each, the four-row resolution table, false as a dev opt-out), and dev notes it decides the sourceNames default. diagnostics: false, which the debugging guide references, is confirmed against src/index.ts.

Doc bugs fixed

  • The feedback tables have no late column. FeedbackSource (packages/signals/src/core/attribution-feedback.ts) records holds, heldMs, acknowledgedBy, latestOnly, silent, long; the sentence now says that.
  • FLUSH_IN_ACTION is not a DiagnosticCode; flush() throws it in development (scheduler.ts:1600). Removed from the codes list in favor of the real FLUSH_IN_EFFECT_CALLBACK, with a note that it is a thrown error and a link to the section that covers it.
  • Size caps in the observability guide updated from scripts/size/.size-limit.js: CSR prod 16.04 KB, observe 17.83 KB, observe + attribution 31.98 KB.

Checks

  • pnpm check:lint ✔
  • pnpm check:types ✔
  • node scripts/lint-tone.mjs — 0 errors (1 pre-existing generated warning in action.mdx)
  • node scripts/check-examples.mjs — 552 blocks, 1 pre-existing error (see below)
  • pnpm build ✔ (97 reference files, 196 llms documents)
  • Prettier on the hand-edited guides and options page.

Not in this PR

  • sync:ref against rc.10 also rewrites 15 unrelated reference pages that have drifted from the source since the last regeneration. Those were reverted here to keep the diff on topic; a follow-up pnpm sync:ref commit should land them.
  • scripts/check-examples.mjs fails on (6)migration/(3)from-solid-router.mdx:224 (noScroll prop on <a>), which predates this branch.

Co-Authored-By: Claude via Cursor cursoragent@cursor.com

Bring the guides and generated reference in line with solid-js 2.0.0-rc.10
(solid next c3adc2836) and @solidjs/vite-plugin next f9c4f63.

Reference (regenerated with sync:ref)
- extract-solid-ref.mjs: add the @solidjs/web/performance-tracks entry point
  and route, fold the new records/attribution/history/graph types, drop the
  removed InvocationChannel/AttributionHooks/OriginRef/TraceSlot
  dispositions, hide serializeStream and ssrElementAttribute, refresh the
  OBSERVE and attribution summaries and Learn links.
- check-examples.mjs: type-check blocks importing @solidjs/web/performance-tracks.
- Regenerate OBSERVE, DEV, attribution, and getTraceContext; add the
  enablePerformanceTracks page and link it from the @solidjs/web index.

Guides
- Debugging reactivity: rc.10 code groups (HUGE_FAN_OUT at fanOut,
  WASTED_RECOMPUTE, GRAPH_GROWTH, the responsiveness and server codes),
  attribution.enable() as a hold with a release, history(type) in place of
  holds(), the records channel, and enablePerformanceTracks().
- Performance: WIDE_WRITE -> HUGE_FAN_OUT; new section on the Performance
  panel tracks, labels, Server-Timing metrics, and options.
- Observability: componentNames -> sourceNames, the "render" and "recovery"
  records, one records channel for runtime and engine records, the values
  option, data.error on the sanitized-error codes.
- Observability adapters: OBSERVE.records.subscribe for engine records,
  silent/long on holds, SSR_BOUNDARY_WATERFALL and SERVER_ERROR_SANITIZED
  with data.source, the listener subject argument and OBSERVE.ownerPath.

Vite plugin options
- Document observe, diagnostics, and solid.sourceNames (kinds, which
  compiler handles each, the resolution table).

Doc bugs fixed
- The feedback tables have no `late` column; describe what FeedbackSource
  records (holds, heldMs, acknowledgedBy, latestOnly, silent, long).
- FLUSH_IN_ACTION is an error flush() throws in development, not a
  DiagnosticCode; list FLUSH_IN_EFFECT_CALLBACK instead and point at the
  section that covers the throw.
- Size caps from scripts/size/.size-limit.js: 16.04 / 17.83 / 31.98 KB.

Co-Authored-By: Claude via Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
@bolt-new-by-stackblitz

Copy link
Copy Markdown

Review PR in StackBlitz Codeflow Run & review this pull request in StackBlitz Codeflow.

@netlify

netlify Bot commented Sep 27, 2026 •

Copy link
Copy Markdown

✅ Deploy Preview for solid-docs-v2 ready!

Name Link
🔨 Latest commit f252988
🔍 Latest deploy log https://app.netlify.com/projects/solid-docs-v2/deploys/6ab8cc6f4b46000008dc6fa1
😎 Deploy Preview https://deploy-preview-1642--solid-docs-v2.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
🤖 Make changes Run an agent on this branch

To edit notification comments on pull requests, go to your Netlify project configuration.

@ryansolid
ryansolid merged commit 160f9ac into v2-rebuild Sep 27, 2026
8 checks passed
@ryansolid
ryansolid deleted the docs/rc10-diagnostics-api branch September 27, 2026 08:11
ryansolid added a commit that referenced this pull request Sep 27, 2026
The extractor now writes its output in the repository's Prettier style,
so autofix and sync:ref agree and a regeneration no longer rewrites
every page. Multi-line printed types are collapsed onto one line, since
Prettier re-indents a multi-line code span in a list item on each pass.

Lands the 15 pages that had drifted from solid next c3adc2836 and were
held out of #1642, among them the Loading on rework (#3540), the
cross-origin csrf.origin allowlist and CORS answer (#3538), and the live
resume hook. American spelling in the Performance guide.

Co-authored-by: Cursor <cursoragent@cursor.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant