You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docs: observability — the observe build, the error hooks, records, traces, and attribution in production
Two Learn pages and the reference behind them. "Observability" is the app
author's page: the three builds and what each costs, the two error hooks
(where an error was thrown against where it was met; the server hook's
return value is the wire), the trace the runtime carries into the browser
on Server-Timing and <meta>, the records channel, the attribution engine on
the observe build, and the fields that carry user data. "Build an
observability adapter" is the tool author's contract: capture from the
hooks alone, build spans from settled records in a microtask, join a call
to its interaction by the identity of `origin`, answer the trace slot once
per request, treat diagnostics as issues, and exclude the adapter's own
root. App structure gains `start.instrument`.
Reference: OBSERVE, configureClientErrors, configureServerErrors, and the
`solid-js/attribution` entry get pages of their own instead of folding into
DEV; the diagnostics types sit on both. observeServerFunctionCalls is gone
upstream, so its page goes and a redirect points at the records channel.
The generator strips member JSDoc from inline object types, which the
render/renderToStream option lists had begun to carry. Existing guides
move from `attribution.why()`/`costs()`/`feedback()`/`subscriptions()` to
the named exports they became.
Co-Authored-By: Claude via Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
@@ -602,6 +693,18 @@ const HIDDEN_EXPORTS = new Set([
602
693
"storeHasFamily",
603
694
"storeHasOptimisticFamily",
604
695
"storeIsShallow",
696
+
// Store-source kinds and the static-key probe: consumed by the merge/omit
697
+
// views and the DOM list driver.
698
+
"SOURCE_MEMO",
699
+
"SOURCE_MERGE",
700
+
"SOURCE_OMIT",
701
+
"SOURCE_PROXY",
702
+
"SourceKind",
703
+
"isStatic",
704
+
// The root error hook's storage key; configureClientErrors is the API.
705
+
"ROOT_ERROR_HOOK",
706
+
// Engine-side owner labelling; records carry the result as `ownerPath`.
707
+
"ownerPath",
605
708
// Compiler-emitted tracked one-layer read for object-valued style/class bindings.
606
709
"readShallow",
607
710
"RequestContext",
@@ -681,6 +784,14 @@ const ENTRY_CALLOUTS = {
681
784
};
682
785
683
786
constENTRY_SUMMARY_OVERRIDES={
787
+
OBSERVE:
788
+
"The observe tier's wiring: the records channel, the diagnostics channel, the attribution slot, and on the server the boundary channel and the trace-provider slot. `undefined` in a production build; an object in the observe and dev builds.",
789
+
attribution:
790
+
"The attribution engine from `solid-js/attribution`: install it with `enable()`, read the interaction, navigation, hold, and re-run records it settles through `subscribe()`, and fold them with `costs()`, `feedback()`, `why()`, and `subscriptions()`. Inert in a production build.",
791
+
configureClientErrors:
792
+
"Registers the ambient client error hook: called once per error object when an error boundary renders its fallback, with where the error was thrown and where it was met.",
793
+
configureServerErrors:
794
+
"Registers the ambient server error hook: called once per error object for every failure the server runtime handles or fails on, with the site that met it; the return value, when given, replaces what the client receives.",
684
795
SourceAccessor:
685
796
"The getter `createSignal` and `createMemo` return: an `Accessor<T>` carrying the `Refreshable` brand, which is what lets [`refresh()`](/reference/solid-js/lifecycle-actions/refresh) accept it. A plain `Accessor<T>` parameter accepts a `SourceAccessor<T>`; the reverse does not hold.",
0 commit comments