# Behavior traces — solidjs/solid

> Canonical page: https://codevetter.com/unpack/solid/behavior-traces

# Behavior traces — solidjs/solid

Scanned commit b25c557754f2ced0d86490e6dbfded9b1745b663 (2026-09-04). Generated by codevetter codevetter 1.15.0 on 2026-10-02.

Source inspection; upstream code and tests were not executed.

Source inspection followed browser hydration and navigation, structured-state updates, asynchronous resource completion, and static HTML persistence. These traces name the local functions and identify external renderer boundaries explicitly. They describe implementation paths rather than runtime results observed during this investigation.
- Browser startup: the shared index calls hydrate(() => <App />, document); the web wrapper calls enableHydration before hydrateCore, whose implementation is imported through dom-expressions. — [packages/solid-ssr/examples/shared/src/index.js#L1-5](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid-ssr/examples/shared/src/index.js#L1-L5) [packages/solid/web/src/index.ts#L1-1](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/web/src/index.ts#L1-L1) [packages/solid/web/src/index.ts#L46-49](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/web/src/index.ts#L46-L49) [packages/solid/web/src/client.ts#L1-1](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/web/src/client.ts#L1-L1)
- Application initialization: App is wrapped by RouteHOC; the wrapper initializes a location signal from props.url or window.location.pathname, obtains useTransition, and provides location/pending/navigation helpers through RouterContext. — [packages/solid-ssr/examples/shared/src/components/App.js#L1-12](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid-ssr/examples/shared/src/components/App.js#L1-L12) [packages/solid-ssr/examples/shared/src/router.js#L5-23](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid-ssr/examples/shared/src/router.js#L5-L23) [packages/solid/src/reactive/signal.ts#L1129-1130](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/reactive/signal.ts#L1129-L1130)
- Tab action: Link.navigate prevents default navigation, calls history.pushState, and invokes the context setLocation helper; that helper starts a transition, and App's matches predicates determine the Switch/Match branch. — [packages/solid-ssr/examples/shared/src/router.js#L16-35](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid-ssr/examples/shared/src/router.js#L16-L35) [packages/solid/src/reactive/signal.ts#L1082-1109](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/reactive/signal.ts#L1082-L1109) [packages/solid-ssr/examples/shared/src/components/App.js#L52-62](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid-ssr/examples/shared/src/components/App.js#L52-L62)
- Profile loading: the wrapper creates a user resource with a 400 ms promise, creates an info resource sourced from user with initialValue [], and passes both accessors' values into a lazy Profile component containing a nested Suspense list. — [packages/solid-ssr/examples/shared/src/components/Profile/index.js#L1-29](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid-ssr/examples/shared/src/components/Profile/index.js#L1-L29) [packages/solid-ssr/examples/shared/src/components/Profile/Profile.js#L1-11](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid-ssr/examples/shared/src/components/Profile/Profile.js#L1-L11) [packages/solid/src/reactive/signal.ts#L762-768](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/reactive/signal.ts#L762-L768)
- Signal update: createSignal's setter evaluates an updater and calls writeSignal; writeSignal queues invalidated computations within runUpdates, which calls completeUpdates and then runQueue/runTop/updateComputation. — [packages/solid/src/reactive/signal.ts#L252-260](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/reactive/signal.ts#L252-L260) [packages/solid/src/reactive/signal.ts#L1341-1375](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/reactive/signal.ts#L1341-L1375) [packages/solid/src/reactive/signal.ts#L1523-1577](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/reactive/signal.ts#L1523-L1577) [packages/solid/src/reactive/signal.ts#L1624-1626](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/reactive/signal.ts#L1624-L1626)
- Structured-state update: createStore calls unwrap then wrap and returns setStore; setStore calls batch, selects updateArray or updatePath, and reaches setProperty, which emits signal-node notifications. — [packages/solid/store/src/store.ts#L533-555](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/store/src/store.ts#L533-L555) [packages/solid/store/src/store.ts#L294-343](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/store/src/store.ts#L294-L343) [packages/solid/store/src/store.ts#L228-260](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/store/src/store.ts#L228-L260) [packages/solid/src/reactive/signal.ts#L893-895](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/reactive/signal.ts#L893-L895)
- Async completion: createResource.load calls fetcher and attaches promise handlers; loadEnd checks promise identity, completeLoad commits resource state, and Suspense.decrement clears its fallback when the pending counter reaches zero. — [packages/solid/src/reactive/signal.ts#L696-742](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/reactive/signal.ts#L696-L742) [packages/solid/src/reactive/signal.ts#L649-674](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/reactive/signal.ts#L649-L674) [packages/solid/src/render/Suspense.ts#L130-141](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/render/Suspense.ts#L130-L141) [packages/solid/src/render/Suspense.ts#L188-207](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/render/Suspense.ts#L188-L207)
- SSR request: Express's catch-all handler passes req.url into App inside renderToStringAsync, awaits the result, and sends it; the rendering API crosses the web server re-export boundary into dom-expressions. — [packages/solid-ssr/examples/async/index.js#L4-20](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid-ssr/examples/async/index.js#L4-L20) [packages/solid/web/server/index.ts#L1-17](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/web/server/index.ts#L1-L17) [packages/solid/web/server/server.ts#L1-1](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/web/server/server.ts#L1-L1)
- HTML persistence: ssg/export.js maps index/profile/settings into entry/output/url records; renderStatic calls run for each, run spawns writeToDisk.js, and write calls the SSG entry before mkdir and writeFile. — [packages/solid-ssr/examples/ssg/export.js#L5-16](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid-ssr/examples/ssg/export.js#L5-L16) [packages/solid-ssr/static/index.js#L10-25](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid-ssr/static/index.js#L10-L25) [packages/solid-ssr/static/writeToDisk.js#L4-11](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid-ssr/static/writeToDisk.js#L4-L11) [packages/solid-ssr/examples/ssg/index.js#L4-7](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid-ssr/examples/ssg/index.js#L4-L7)
- Custom-element lifecycle: customElement registers withSolid(ComponentType); withSolid creates a root and signal-backed props, inserts the component, updates props on property callbacks, and clears content/disposes on release. — [packages/solid-element/src/index.ts#L14-26](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid-element/src/index.ts#L14-L26) [packages/solid-element/src/index.ts#L41-58](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid-element/src/index.ts#L41-L58) [packages/solid-element/src/index.ts#L70-82](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid-element/src/index.ts#L70-L82)
- Server lazy rejection: load records a cast error and clears its cached rejected promise; the wrapper registers completion/error work with context.block, notifySuspense reaches completed, and Suspense routes errors toward an ErrorBoundary fallback. — [packages/solid/src/server/rendering.ts#L556-607](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/server/rendering.ts#L556-L607) [packages/solid/src/server/rendering.ts#L617-624](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/server/rendering.ts#L617-L624) [packages/solid/src/server/rendering.ts#L675-710](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/server/rendering.ts#L675-L710) [packages/solid/src/server/rendering.ts#L341-371](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/server/rendering.ts#L341-L371)

Every claim links to its cited files at the pinned commit. Citations identify source evidence; they do not establish runtime correctness. Independent CodeVetter scan — not reviewed by upstream maintainers.

## Public product links

- [CodeVetter](https://codevetter.com/)
- [Download](https://codevetter.com/download)
- [Documentation](https://codevetter.com/docs/)
- [Source](https://github.com/Codevetter/codevetter)
