# solidjs/solid — codebase unpack

> Canonical page: https://codevetter.com/unpack/solid

This is a deterministic Repo Unpack scan of solidjs/solid — a structural map, not a review, security audit, or maintainer-endorsed description.

- Scanned commit: b25c557754f2ced0d86490e6dbfded9b1745b663 (2026-09-04)
- Last upstream commit: ci: bump cve-lite-cli action from v1.29.0 to v1.32.0 (#3273)
- Generated by codevetter 1.15.0 on 2026-10-02
- 183 files scanned · 861 KB

Source inspection; upstream code and tests were not executed.

## Languages

- TypeScript: 70 files
- JavaScript: 43 files
- JSON: 33 files
- Markdown: 22 files
- YAML: 7 files
- CSS: 1 files

## Repository structure

- packages/ — 159 files
- .github/ — 6 files
- .changeset/ — 2 files
- documentation/ — 1 files

Probable source entrypoint: `packages/` (inferred from the tree, not upstream docs)

## Source layout — packages/

- packages/babel-preset-solid/ — 5 files
- packages/solid/ — 116 files
- packages/solid-element/ — 6 files
- packages/solid-ssr/ — 26 files
- packages/test-integration/ — 6 files

## Package

- package.json: solid-js v1.0.0 — 35 declared dependencies

## Structural health signals

Average score 9.2/10 across 63 files; 1 hotspots. These are deterministic review leads, not proof of a bug.

## Recent history

- b25c557754f2 (2026-09-04) ci: bump cve-lite-cli action from v1.29.0 to v1.32.0 (#3273)
- f47845f9cc16 (2026-08-17) chore: refresh lockfile after 1.9.15 peer bump
- a252c783b709 (2026-08-17) chore: version packages for 1.9.15 release
- 5aceb1c5e4c1 (2026-08-17) test: isolate transition #2046 from leaked enableScheduling
- 954b968bfb05 (2026-08-17) Update DOM expression runtimes

## Overview

Solid is a TypeScript and JavaScript UI library for application developers, combining reactive signals with compiled templates that update real DOM nodes. This repository contains the reactive runtime, browser and server component implementations, structured stores, a Babel preset, custom-element integration, and static-rendering utilities. Its distinctive architecture separates dependency tracking from rendering and selects browser, development, and server implementations through package export conditions.

## System map

The repository distributes several packages around Solid's reactive runtime and rendering adapters. Browser, development, and server execution are separate build targets selected through conditional exports. pnpm and Turborepo coordinate compilation, declaration generation, testing, and publishing; the Express applications are examples of consuming the library.
- The root solid-js package is private and declares pnpm@9.15.0; the publishable packages/solid package declares solid-js version 1.9.15. — [package.json#L11-22](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/package.json#L11-L22) [package.json#L69-72](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/package.json#L69-L72) [packages/solid/package.json#L1-17](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/package.json#L1-L17)
- The core entrypoint exports reactive primitives from reactive/signal.ts, observable and scheduler APIs, array helpers, and component/rendering APIs. — [packages/solid/src/index.ts#L1-33](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/index.ts#L1-L33) [packages/solid/src/index.ts#L66-77](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/index.ts#L66-L77) [packages/solid/src/render/index.ts#L1-4](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/render/index.ts#L1-L4)
- Core conditional exports select dist/server for worker, deno, and node conditions, dist/solid for browser production, and dist/dev for development. — [packages/solid/package.json#L45-80](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/package.json#L45-L80)
- Browser DOM operations and server HTML rendering cross an external implementation boundary: client.ts re-exports dom-expressions/src/client.js and server.ts re-exports dom-expressions/src/server. — [packages/solid/web/src/client.ts#L1-1](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/web/src/client.ts#L1-L1) [packages/solid/web/server/server.ts#L1-1](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/web/server/server.ts#L1-L1) [packages/solid/web/src/core.ts#L1-13](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/web/src/core.ts#L1-L13)
- The server core has separate reactive and rendering modules; its createSignal stores a closure value, createMemo computes once, and createEffect is empty. — [packages/solid/src/server/index.ts#L1-58](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/server/index.ts#L1-L58) [packages/solid/src/server/reactive.ts#L76-119](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/server/reactive.ts#L76-L119)
- Structured state is owned by store/src/store.ts and its mutable/modifier companions; web/storage instead provides Node AsyncLocalStorage request context. — [packages/solid/store/src/index.ts#L1-21](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/store/src/index.ts#L1-L21) [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/web/storage/src/index.ts#L1-11](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/web/storage/src/index.ts#L1-L11)
- babel-preset-solid configures babel-plugin-jsx-dom-expressions; solid-element uses component-register to connect custom-element lifecycle callbacks to Solid roots. — [packages/babel-preset-solid/index.js#L1-34](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/babel-preset-solid/index.js#L1-L34) [packages/solid-element/src/index.ts#L41-82](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid-element/src/index.ts#L41-L82)
- Rollup emits CommonJS and ES module targets for core, store, web, universal, html, and hyperscript; replaceDev substitutes the _SOLID_DEV_ and _DX_DEV_ build markers. — [packages/solid/rollup.config.js#L33-83](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/rollup.config.js#L33-L83) [packages/solid/rollup.config.js#L130-174](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/rollup.config.js#L130-L174) [packages/solid/rollup.config.js#L191-267](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/rollup.config.js#L191-L267)
- Root build, types, test, and coverage scripts invoke Turbo; type tests depend on declaration generation, and integration import checks depend on the solid-js build and local link tasks. — [package.json#L12-22](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/package.json#L12-L22) [turbo.json#L14-32](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/turbo.json#L14-L32) [packages/solid/package.json#L207-227](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/package.json#L207-L227)
- Distribution is organized around generated dist/types files and Changesets publishing; the SSR examples separately launch Express on port 3000, while SSG serves generated files on port 8080. — [packages/solid/package.json#L18-43](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/package.json#L18-L43) [.changeset/config.json#L3-9](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/.changeset/config.json#L3-L9) [packages/solid-ssr/examples/ssr/index.js#L7-23](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid-ssr/examples/ssr/index.js#L7-L23) [packages/solid-ssr/package.json#L21-30](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid-ssr/package.json#L21-L30)

## Feature catalog

Solid's public features center on reactive state, declarative control flow, asynchronous rendering, and lifecycle management. Consumers can use compiled JSX, hyperscript, tagged templates, custom elements, or custom host renderers. The repository also exposes server rendering and static generation, with a small routed example demonstrating Home, Profile, and Settings.
- createSignal returns an accessor and setter, accepts equality customization, and supports updater functions; createMemo exposes a derived accessor with its own comparator. — [packages/solid/src/reactive/signal.ts#L227-261](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/reactive/signal.ts#L227-L261) [packages/solid/src/reactive/signal.ts#L442-465](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/reactive/signal.ts#L442-L465)
- createComputed, createRenderEffect, createEffect, and createReaction offer distinct execution and invalidation behavior; batch groups updates and untrack suppresses dependency collection. — [packages/solid/src/reactive/signal.ts#L298-306](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/reactive/signal.ts#L298-L306) [packages/solid/src/reactive/signal.ts#L329-404](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/reactive/signal.ts#L329-L404) [packages/solid/src/reactive/signal.ts#L893-915](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/reactive/signal.ts#L893-L915)
- For maps by item identity with an index accessor, while Index maps by position with an item accessor; both accept fallbacks. — [packages/solid/src/render/flow.ts#L34-79](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/render/flow.ts#L34-L79) [packages/solid/src/reactive/array.ts#L49-60](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/reactive/array.ts#L49-L60) [packages/solid/src/reactive/array.ts#L186-198](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/reactive/array.ts#L186-L198)
- Show supports keyed and accessor-based children; Switch selects the first matching Match and supports a fallback. — [packages/solid/src/render/flow.ts#L101-148](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/render/flow.ts#L101-L148) [packages/solid/src/render/flow.ts#L167-220](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/render/flow.ts#L167-L220) [packages/solid/src/render/flow.ts#L250-251](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/render/flow.ts#L250-L251)
- createResource exposes state, error, loading, latest, mutate, and refetch, with initialValue, custom storage, SSR loading, and hydration callback options. — [packages/solid/src/reactive/signal.ts#L530-545](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/reactive/signal.ts#L530-L545) [packages/solid/src/reactive/signal.ts#L626-648](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/reactive/signal.ts#L626-L648) [packages/solid/src/reactive/signal.ts#L744-768](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/reactive/signal.ts#L744-L768)
- lazy wraps asynchronous component imports and provides preload; Suspense renders fallbacks while resources are pending, and experimental SuspenseList coordinates reveal order and tail visibility. — [packages/solid/src/render/component.ts#L359-426](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/render/component.ts#L359-L426) [packages/solid/src/render/Suspense.ts#L30-104](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/render/Suspense.ts#L30-L104) [packages/solid/src/render/Suspense.ts#L123-141](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/render/Suspense.ts#L123-L141) [packages/solid/src/render/Suspense.ts#L188-207](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/render/Suspense.ts#L188-L207)
- ErrorBoundary catches errors from its child scope, supports a fallback callback with reset, and participates in resetErrorBoundaries; createContext/useContext provide owner-scoped values. — [packages/solid/src/render/flow.ts#L254-296](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/render/flow.ts#L254-L296) [packages/solid/src/reactive/signal.ts#L1202-1227](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/reactive/signal.ts#L1202-L1227)
- createRoot, onMount, onCleanup, getOwner, and runWithOwner expose lifecycle and scope control; mergeProps and splitProps preserve reactive property access, and createUniqueId uses hydration IDs or a client counter. — [packages/solid/src/reactive/signal.ts#L150-184](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/reactive/signal.ts#L150-L184) [packages/solid/src/reactive/signal.ts#L1004-1067](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/reactive/signal.ts#L1004-L1067) [packages/solid/src/render/component.ts#L199-232](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/render/component.ts#L199-L232) [packages/solid/src/render/component.ts#L288-356](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/render/component.ts#L288-L356)
- createDeferred schedules deferred values, createSelector tracks subscribers by key, and useTransition returns pending state plus startTransition; observable/from bridge subscription-style producers. — [packages/solid/src/reactive/signal.ts#L790-813](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/reactive/signal.ts#L790-L813) [packages/solid/src/reactive/signal.ts#L842-883](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/reactive/signal.ts#L842-L883) [packages/solid/src/reactive/signal.ts#L1082-1130](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/reactive/signal.ts#L1082-L1130) [packages/solid/src/reactive/observable.ts#L46-105](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/reactive/observable.ts#L46-L105)
- createStore offers path setters and partial merges; createMutable allows proxy writes, reconcile diffs incoming state with an optional key, and produce exposes mutation-style updates. — [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#L533-555](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/store/src/store.ts#L533-L555) [packages/solid/store/src/mutable.ts#L81-88](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/store/src/mutable.ts#L81-L88) [packages/solid/store/src/modifiers.ts#L135-195](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/store/src/modifiers.ts#L135-L195)
- Portal mounts content elsewhere in the DOM, optionally in a shadow root; Dynamic/createDynamic render either function components or named DOM elements. — [packages/solid/web/src/index.ts#L69-109](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/web/src/index.ts#L69-L109) [packages/solid/web/src/index.ts#L131-170](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/web/src/index.ts#L131-L170)
- solid-js/h supplies a hyperscript factory and an optional jsx/jsxs/jsxDEV runtime; solid-js/html supplies tagged templates, with reactive expressions manually wrapped in functions. — [packages/solid/h/src/index.ts#L1-21](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/h/src/index.ts#L1-L21) [packages/solid/h/jsx-runtime/src/index.ts#L5-14](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/h/jsx-runtime/src/index.ts#L5-L14) [packages/solid/html/src/index.ts#L26-49](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/html/src/index.ts#L26-L49) [packages/solid/html/README.md#L43-64](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/html/README.md#L43-L64)
- solid-element exposes customElement/withSolid and re-exports hot, getCurrentElement, and noShadowDOM; solid-js/universal exposes createRenderer for custom hosts. — [packages/solid-element/src/index.ts#L1-12](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid-element/src/index.ts#L1-L12) [packages/solid-element/src/index.ts#L61-82](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid-element/src/index.ts#L61-L82) [packages/solid/universal/src/index.ts#L1-11](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/universal/src/index.ts#L1-L11) [packages/solid/universal/README.md#L41-96](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/universal/README.md#L41-L96)
- The SSR examples demonstrate renderToString, renderToStringAsync, and renderToStream; solid-ssr/static accepts entry/output/url configurations to generate HTML files. — [packages/solid-ssr/examples/ssr/index.js#L12-20](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid-ssr/examples/ssr/index.js#L12-L20) [packages/solid-ssr/examples/async/index.js#L12-20](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid-ssr/examples/async/index.js#L12-L20) [packages/solid-ssr/examples/stream/index.js#L4-12](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid-ssr/examples/stream/index.js#L4-L12) [packages/solid-ssr/static/index.js#L10-25](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid-ssr/static/index.js#L10-L25)
- The shared example presents Home, Profile, and Settings tabs, a transition pending class, loading fallbacks, and an error reset button; Profile simulates dependent user and information loads. — [packages/solid-ssr/examples/shared/src/components/App.js#L23-64](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid-ssr/examples/shared/src/components/App.js#L23-L64) [packages/solid-ssr/examples/shared/src/components/Profile/index.js#L5-29](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid-ssr/examples/shared/src/components/Profile/index.js#L5-L29)

## Data flow

Reactive reads create dependency edges, and setters propagate invalidation through computation and effect queues. Stores translate property access and path updates into the same signal machinery, while resources translate asynchronous results into state and Suspense notifications. Server rendering uses hydration context to associate resources and fragments, and static generation adds a subprocess and filesystem output boundary.
- createSignal allocates SignalState with value, observers, observerSlots, and comparator; its getter binds readSignal and its setter delegates to writeSignal. — [packages/solid/src/reactive/signal.ts#L229-261](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/reactive/signal.ts#L229-L261)
- readSignal records bidirectional dependency slots between the active Listener and the signal, resolves stale memos, and chooses tentative values during a running transition. — [packages/solid/src/reactive/signal.ts#L1302-1338](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/reactive/signal.ts#L1302-L1338)
- writeSignal applies equality filtering, marks observers stale, queues pure computations separately from effects, and marks downstream memo consumers pending. — [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#L1686-1696](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/reactive/signal.ts#L1686-L1696)
- runComputation installs a computation as Owner and Listener during its callback and restores both afterward; cleanNode removes dependency edges, child scopes, and cleanup callbacks. — [packages/solid/src/reactive/signal.ts#L1402-1437](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/reactive/signal.ts#L1402-L1437) [packages/solid/src/reactive/signal.ts#L1700-1737](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/reactive/signal.ts#L1700-L1737)
- Store proxy reads lazily allocate per-property signal nodes only when tracking requires them; nested wrappable values receive proxies, while ownKeys subscribes to the self node. — [packages/solid/store/src/store.ts#L138-152](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/store/src/store.ts#L138-L152) [packages/solid/store/src/store.ts#L165-196](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/store/src/store.ts#L165-L196)
- setStore batches updatePath/updateArray against the unwrapped object; setProperty mutates or deletes a property and notifies property, existence, array-length, and self observers. — [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/store/src/store.ts#L276-343](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/store/src/store.ts#L276-L343) [packages/solid/store/src/store.ts#L546-551](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/store/src/store.ts#L546-L551)
- A resource source is memoized when callable; load obtains its current key, invokes the consumer fetcher untracked, records its promise, and sets pending or refreshing state. — [packages/solid/src/reactive/signal.ts#L617-634](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/reactive/signal.ts#L617-L634) [packages/solid/src/reactive/signal.ts#L696-742](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/reactive/signal.ts#L696-L742)
- Resource loadEnd accepts a completion only when its promise matches pr, then completeLoad updates value/state/error and decrements subscribed Suspense contexts. — [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/reactive/signal.ts#L677-692](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/reactive/signal.ts#L677-L692)
- Server resources are keyed by sharedConfig context IDs; asynchronous load stores resolved data in ctx.resources, calls notifySuspense, and passes values or promises to ctx.serialize. — [packages/solid/src/server/rendering.ts#L447-478](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/server/rendering.ts#L447-L478) [packages/solid/src/server/rendering.ts#L499-545](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/server/rendering.ts#L499-L545) [packages/solid/src/server/rendering.ts#L617-624](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/server/rendering.ts#L617-L624)
- Hydration consumes deterministic context IDs: createComponent advances into a child context, client resources look up serialized values, and web hydrate first enables hydration behavior. — [packages/solid/src/render/hydration.ts#L19-47](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/render/hydration.ts#L19-L47) [packages/solid/src/render/component.ts#L97-113](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/render/component.ts#L97-L113) [packages/solid/src/reactive/signal.ts#L644-648](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/reactive/signal.ts#L644-L648) [packages/solid/web/src/index.ts#L46-49](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/web/src/index.ts#L46-L49)
- provideRequestEvent stores an AsyncLocalStorage instance on globalThis under RequestContext and runs the supplied callback with its request event; it rejects non-server use. — [packages/solid/web/storage/src/index.ts#L1-11](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/web/storage/src/index.ts#L1-L11)
- Static generation passes entry/output/url into a Node child process; writeToDisk dynamically imports the entry, calls its default export with the URL, creates the output directory, and writes returned HTML. — [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#L1-7](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid-ssr/examples/ssg/index.js#L1-L7)

## Behavior traces

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)

## Testing signals

Tests and CI were inspected, not executed; test existence supplies coverage intent rather than a passing result. Vitest separates jsdom client tests from Node server tests, with additional TypeScript checks and Node assertion/import checks. This inventory is bounded: inspected tests substantiate specific contracts, while coverage configuration and script selection identify limits without establishing exhaustive repository coverage.
- The client Vitest configuration uses jsdom, global test APIs, one fork worker, and isolate:false; it excludes test/server and resolves browser/development implementations. — [packages/solid/vite.config.mjs#L14-37](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/vite.config.mjs#L14-L37)
- Server Vitest uses the Node environment, includes test/server/**/*.spec.ts, and aliases solid-js and solid-js/web to server source entrypoints. — [packages/solid/vitest.server.config.mjs#L4-19](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/vitest.server.config.mjs#L4-L19)
- The solid-js test script runs both client and server Vitest configurations; its separate test-types script invokes tsc against tsconfig.test.json. — [packages/solid/package.json#L225-227](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/package.json#L225-L227) [packages/solid/tsconfig.test.json#L1-12](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/tsconfig.test.json#L1-L12)
- Resource tests assert initial pending/loading state, out-of-order promise handling, and conversion of rejection values into Error objects. — [packages/solid/test/resource.spec.ts#L17-76](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/test/resource.spec.ts#L17-L76)
- Store tests assert blocked direct mutation, reactive getters, key setters, and partial merges; prototype-guard tests cover __proto__, constructor.prototype traversal, unsafe merge keys, and permitted constructor/prototype leaf keys. — [packages/solid/store/test/store.spec.ts#L14-85](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/store/test/store.spec.ts#L14-L85) [packages/solid/store/test/store.spec.ts#L907-945](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/store/test/store.spec.ts#L907-L945)
- Modifier tests check removal of omitted properties by reconcile and rejection of unsafe object keys while preserving safe data. — [packages/solid/store/test/modifiers.spec.ts#L13-33](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/store/test/modifiers.spec.ts#L13-L33)
- External-source regressions cover normal tracking versus untrack, recreating transition-scoped sources after disposal, and retaining external updates after a memo is created during a transition. — [packages/solid/test/external-source.spec.ts#L82-129](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/test/external-source.spec.ts#L82-L129) [packages/solid/test/external-source.spec.ts#L131-168](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/test/external-source.spec.ts#L131-L168)
- Server lazy tests assert stream termination and ErrorBoundary output on rejected imports, asynchronous string rendering, successful imports, and retry on a subsequent request. — [packages/solid/test/server/lazy.spec.ts#L24-46](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/test/server/lazy.spec.ts#L24-L46) [packages/solid/test/server/lazy.spec.ts#L49-93](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/test/server/lazy.spec.ts#L49-L93)
- DOM Index tests inspect actual innerHTML after removals, swaps, rotations, reversal, replacement, and disposal; the transition regression checks committed memo values during pending resource work. — [packages/solid/web/test/index.spec.tsx#L15-90](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/web/test/index.spec.tsx#L15-L90) [packages/solid/web/test/transition.spec.tsx#L63-88](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/web/test/transition.spec.tsx#L63-L88)
- Type tests use @ts-expect-error to specify invalid API combinations; the package type-check configuration includes core/web/store tests but excludes test/server. — [packages/solid/test/signals.type-tests.ts#L25-85](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/test/signals.type-tests.ts#L25-L85) [packages/solid/tsconfig.test.json#L10-11](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/tsconfig.test.json#L10-L11) [tsconfig.test.json#L2-15](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/tsconfig.test.json#L2-L15)
- The Babel preset test is a Node assert comparison against one compiled JSX string; integration import checks intentionally suppress errors other than selected module-resolution/module-syntax failures. — [packages/babel-preset-solid/test.js#L1-15](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/babel-preset-solid/test.js#L1-L15) [packages/test-integration/test-imports.mjs#L1-25](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/test-integration/test-imports.mjs#L1-L25) [packages/test-integration/test-imports.mjs#L27-47](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/test-integration/test-imports.mjs#L27-L47)
- Downloaded integration tests pack packages, fetch aminya/solid-simple-table, install local tarballs, and run its test command; the package's default test selects test:imports rather than test:integrations. — [packages/test-integration/tests/downloaded.spec.ts#L24-58](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/test-integration/tests/downloaded.spec.ts#L24-L58) [packages/test-integration/tests/downloaded.spec.ts#L65-93](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/test-integration/tests/downloaded.spec.ts#L65-L93) [packages/test-integration/package.json#L4-8](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/test-integration/package.json#L4-L8)
- Inspected main CI installs, builds, runs tests and coverage, and uploads Coveralls data; V8 coverage targets client core/store/web sources and excludes server implementations, so that report does not measure those excluded paths. — [.github/workflows/main-ci.yml#L26-42](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/.github/workflows/main-ci.yml#L26-L42) [packages/solid/vite.config.mjs#L17-21](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/vite.config.mjs#L17-L21)
- The inspected dependency-audit workflow runs on main pushes, main pull requests, and a weekly schedule, then uploads SARIF with continue-on-error; no audit result was obtained in this investigation. — [.github/workflows/cve-lite.yml#L3-9](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/.github/workflows/cve-lite.yml#L3-L9) [.github/workflows/cve-lite.yml#L21-36](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/.github/workflows/cve-lite.yml#L21-L36)

## Risk map

The strongest source-observed boundaries are configured code execution and output paths in static generation, external execution in optional integration tests, and shared runtime state. Package-condition mistakes and duplicated client/server behavior can affect broad portions of the public API. These are source observations or labeled hypotheses, not confirmed vulnerabilities or runtime failures.
- Static generation executes a caller-selected entry module and writes a caller-selected output path without repository-root confinement in the inspected runner; execFile uses a fixed Node executable and an argument array rather than shell interpolation. — [packages/solid-ssr/static/index.js#L10-17](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid-ssr/static/index.js#L10-L17) [packages/solid-ssr/static/writeToDisk.js#L4-9](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid-ssr/static/writeToDisk.js#L4-L9)
- writeToDisk discards mkdir/writeFile callback errors and exits with status zero from the write callback; filesystem failures are not explicitly propagated by this source. — [packages/solid-ssr/static/writeToDisk.js#L4-11](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid-ssr/static/writeToDisk.js#L4-L11)
- The optional downloaded-test suite crosses network and shell boundaries, executes a downloaded project's tests, creates tarballs, and contains recursive cleanup operations; it is unsuitable for this read-only investigation. — [packages/test-integration/tests/downloaded.spec.ts#L24-58](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/test-integration/tests/downloaded.spec.ts#L24-L58) [packages/test-integration/tests/downloaded.spec.ts#L65-99](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/test-integration/tests/downloaded.spec.ts#L65-L99)
- Conditional exports are behavior-sensitive: Node core signals do not build the client dependency graph, and browser renderToString/renderToStream mocks only log unsupported-use errors. — [packages/solid/package.json#L45-80](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/package.json#L45-L80) [packages/solid/src/server/reactive.ts#L76-119](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/server/reactive.ts#L76-L119) [packages/solid/web/src/server-mock.ts#L2-39](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/web/src/server-mock.ts#L2-L39)
- Computations and cleanups created without an Owner receive development warnings that they will not be disposed/run; root ownership and disposal are explicit lifecycle responsibilities. — [packages/solid/src/reactive/signal.ts#L150-172](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/reactive/signal.ts#L150-L172) [packages/solid/src/reactive/signal.ts#L1016-1021](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/reactive/signal.ts#L1016-L1021) [packages/solid/src/reactive/signal.ts#L1467-1478](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/reactive/signal.ts#L1467-L1478)
- Client tests share runtime state because isolate:false is enabled; the transition regression explicitly resets scheduling after another suite's enableScheduling call, documenting cross-test scheduler coupling. — [packages/solid/vite.config.mjs#L23-28](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/vite.config.mjs#L23-L28) [packages/solid/web/test/transition.spec.tsx#L17-23](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/web/test/transition.spec.tsx#L17-L23)
- Unsafe-key handling must remain consistent across client store updates, server store updates, and reconcile: each has guards, and tests deliberately preserve constructor/prototype as final keys. — [packages/solid/store/src/store.ts#L263-305](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/store/src/store.ts#L263-L305) [packages/solid/store/src/server.ts#L40-79](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/store/src/server.ts#L40-L79) [packages/solid/store/src/modifiers.ts#L6-22](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/store/src/modifiers.ts#L6-L22) [packages/solid/store/test/store.spec.ts#L926-943](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/store/test/store.spec.ts#L926-L943)
- Server rendering duplicates escape and resolveSSRNode logic, with an explicit source comment calling out duplication from solid-js/web; the external server implementation was not available as tracked source here. — [packages/solid/src/server/rendering.ts#L33-47](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/server/rendering.ts#L33-L47) [packages/solid/src/server/rendering.ts#L88-104](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/server/rendering.ts#L88-L104) [packages/solid/web/server/server.ts#L1-1](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/web/server/server.ts#L1-L1)
- Server SuspenseList contains a TODO for revealOrder/tail and simply returns children after context handling, whereas the client implements reveal-order and tail policies. — [packages/solid/src/server/rendering.ts#L659-672](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/server/rendering.ts#L659-L672) [packages/solid/src/render/Suspense.ts#L49-87](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/render/Suspense.ts#L49-L87)
- SSR example documentation has drift: it advertises localhost:8080 and Lerna commands, while inspected Express examples use port 3000 and manifests supply direct Rollup/Node scripts. — [packages/solid-ssr/README.md#L52-56](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid-ssr/README.md#L52-L56) [packages/solid-ssr/examples/ssr/index.js#L7-23](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid-ssr/examples/ssr/index.js#L7-L23) [packages/solid-ssr/package.json#L21-29](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid-ssr/package.json#L21-L29)
- Hypothesis: an application exposing store range setters to unchecked input could hang on a zero or backward by value, because the inspected client/server loops increment i by by without validating progress. (inferred) — [packages/solid/store/src/store.ts#L319-325](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/store/src/store.ts#L319-L325) [packages/solid/store/src/server.ts#L93-99](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/store/src/server.ts#L93-L99)
- Hypothesis: renderer/compiler dependency changes can have a broad blast radius because DOM, SSR, tagged-template, hyperscript, and universal implementation adapters delegate to external expression packages; local adapters alone cannot establish their security properties. (inferred) — [package.json#L37-43](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/package.json#L37-L43) [packages/solid/web/src/client.ts#L1-1](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/web/src/client.ts#L1-L1) [packages/solid/web/server/server.ts#L1-1](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/web/server/server.ts#L1-L1) [packages/babel-preset-solid/index.js#L1-7](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/babel-preset-solid/index.js#L1-L7)

## Extension points

Extension primarily happens through factory callbacks, renderer host operations, scoped providers, and compiler options. Development hooks expose graph and store updates, while external-source factories connect other reactive systems. Packaging and examples also contain explicit lists that must be extended when adding a new public entrypoint or sample route.
- createRenderer accepts RendererOptions<NodeType>, delegates to the expression renderer, and replaces its mergeProps with Solid's implementation; documented host operations include node creation, insertion, removal, traversal, and property assignment. — [packages/solid/universal/src/index.ts#L1-11](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/universal/src/index.ts#L1-L11) [packages/solid/universal/README.md#L62-96](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/universal/README.md#L62-L96)
- The Babel preset merges caller options over default moduleName, builtIns, contextToCustomElements, wrapConditionals, and generate; custom-renderer documentation sets generate:universal and a host moduleName. — [packages/babel-preset-solid/index.js#L3-27](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/babel-preset-solid/index.js#L3-L27) [packages/solid/universal/README.md#L9-21](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/universal/README.md#L9-L21)
- enableExternalSource accepts a tracking/disposal factory and optional untrack function; repeated registrations compose factories and dispose both layers. — [packages/solid/src/reactive/signal.ts#L129-137](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/reactive/signal.ts#L129-L137) [packages/solid/src/reactive/signal.ts#L1276-1298](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/reactive/signal.ts#L1276-L1298)
- enableScheduling accepts a custom scheduler, with requestCallback as the default; createDeferred routes delayed propagation through requestCallback. — [packages/solid/src/reactive/signal.ts#L1070-1073](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/reactive/signal.ts#L1070-L1073) [packages/solid/src/reactive/signal.ts#L790-809](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/reactive/signal.ts#L790-L809)
- createResource accepts consumer fetchers and custom accessor/setter storage, plus SSR-load and onHydrated options, enabling data-source and state-storage adaptation without changing the resource runtime. — [packages/solid/src/reactive/signal.ts#L530-535](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/reactive/signal.ts#L530-L535) [packages/solid/src/reactive/signal.ts#L598-634](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/reactive/signal.ts#L598-L634) [packages/solid/src/reactive/signal.ts#L707-719](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/reactive/signal.ts#L707-L719)
- createContext creates a unique provider key; useContext reads it from Owner.context with a default fallback, giving libraries a scoped service/state injection mechanism. — [packages/solid/src/reactive/signal.ts#L1207-1227](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/reactive/signal.ts#L1207-L1227) [packages/solid/src/reactive/signal.ts#L1796-1808](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/reactive/signal.ts#L1796-L1808)
- DEV exposes reactive graph hooks and writeSignal/registerGraph; the store DEV export exposes onStoreNodeUpdate hooks and node inspection helpers. — [packages/solid/src/index.ts#L75-77](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/index.ts#L75-L77) [packages/solid/src/reactive/signal.ts#L63-75](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/reactive/signal.ts#L63-L75) [packages/solid/store/src/index.ts#L19-21](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/store/src/index.ts#L19-L21) [packages/solid/store/src/store.ts#L11-27](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/store/src/store.ts#L11-L27)
- SolidStore.Unwrappable is an open interface whose property values become part of NotWrappable, allowing TypeScript declaration augmentation for excluded store value types. — [packages/solid/store/src/store.ts#L34-46](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/store/src/store.ts#L34-L46)
- withSolid adapts component-register component types, and customElement supports either a component alone or a props-definition/component pair for new custom-element registrations. — [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#L61-82](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid-element/src/index.ts#L61-L82)
- New published subpaths require coordinated package exports/files entries and Rollup build targets; declaration scripts also explicitly enumerate generated subpackages. — [packages/solid/package.json#L18-43](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/package.json#L18-L43) [packages/solid/package.json#L163-205](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/package.json#L163-L205) [packages/solid/package.json#L214-222](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/package.json#L214-L222) [packages/solid/rollup.config.js#L175-219](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/rollup.config.js#L175-L219)
- The SSR example's route extension points are App's Link/Match entries and the SSG PAGES list; routing itself exposes RouteHOC, RouterContext, and Link. — [packages/solid-ssr/examples/shared/src/components/App.js#L23-62](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid-ssr/examples/shared/src/components/App.js#L23-L62) [packages/solid-ssr/examples/shared/src/router.js#L25-39](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid-ssr/examples/shared/src/router.js#L25-L39) [packages/solid-ssr/examples/ssg/export.js#L5-15](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid-ssr/examples/ssg/export.js#L5-L15)
- renderStatic accepts one configuration or an array, and each entry module supplies an async default function returning HTML; this makes the runner reusable with different rendering entrypoints. — [packages/solid-ssr/static/index.js#L22-25](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid-ssr/static/index.js#L22-L25) [packages/solid-ssr/static/writeToDisk.js#L4-8](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid-ssr/static/writeToDisk.js#L4-L8) [packages/solid-ssr/README.md#L19-28](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid-ssr/README.md#L19-L28)

## Contributor handoff

Begin with package exports and build/test configuration before editing runtime behavior, because environment selection changes implementation semantics. Keep client/server parity, owner cleanup, hydration IDs, and store safety guards explicit in any proposed change. Tests and CI were inspected, not executed, and this brief is a bounded source inventory rather than exhaustive coverage or validation.
- Use the repository's pnpm/Turbo workflow: root scripts coordinate build, types, tests, and coverage, and CONTRIBUTING documents pnpm install/build/test for an executable development session. — [package.json#L12-22](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/package.json#L12-L22) [package.json#L69-72](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/package.json#L69-L72) [CONTRIBUTING.md#L89-99](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/CONTRIBUTING.md#L89-L99)
- Before changing a public API, read its core export, conditional package map, and Rollup target; source tests alias implementations, while consumers load built artifacts selected by environment. — [packages/solid/src/index.ts#L1-33](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/index.ts#L1-L33) [packages/solid/package.json#L45-80](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/package.json#L45-L80) [packages/solid/rollup.config.js#L41-83](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/rollup.config.js#L41-L83) [packages/solid/vite.config.mjs#L30-37](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/vite.config.mjs#L30-L37)
- Treat signal.ts as a shared runtime hotspot: Observer/Listener slots, Owner trees, tentative transition state, and cleanup are coupled across readSignal, writeSignal, completeUpdates, and cleanNode. — [packages/solid/src/reactive/signal.ts#L1302-1338](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/reactive/signal.ts#L1302-L1338) [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#L1582-1614](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/reactive/signal.ts#L1582-L1614) [packages/solid/src/reactive/signal.ts#L1700-1737](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/reactive/signal.ts#L1700-L1737)
- For store changes, read store.ts, modifiers.ts, and server.ts together and preserve unsafe-key traversal/merge guards, deletion semantics, and permitted leaf keys. — [packages/solid/store/src/store.ts#L228-274](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/store/src/store.ts#L228-L274) [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/server.ts#L32-79](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/store/src/server.ts#L32-L79) [packages/solid/store/test/store.spec.ts#L907-943](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/store/test/store.spec.ts#L907-L943)
- For asynchronous component changes, inspect both lazy implementations, resource/Suspense integration, and rejected-import regressions; the server test verifies a subsequent request retries the rejected module. — [packages/solid/src/render/component.ts#L359-426](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/render/component.ts#L359-L426) [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/render/Suspense.ts#L123-207](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/src/render/Suspense.ts#L123-L207) [packages/solid/test/server/lazy.spec.ts#L64-93](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/test/server/lazy.spec.ts#L64-L93)
- In a separately authorized executable task, use the relevant Vitest file first, then the package test script for both environments and test-types for signature changes; these commands are recommendations, not results from this inspection. (inferred) — [packages/solid/package.json#L225-227](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/package.json#L225-L227) [packages/solid/vitest.server.config.mjs#L5-17](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/vitest.server.config.mjs#L5-L17) [packages/solid/tsconfig.test.json#L1-12](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/tsconfig.test.json#L1-L12)
- Do not interpret inspected coverage as server validation: the client V8 report excludes server source, and the type-test configuration also excludes test/server. — [packages/solid/vite.config.mjs#L17-21](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/vite.config.mjs#L17-L21) [packages/solid/tsconfig.test.json#L10-11](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/tsconfig.test.json#L10-L11)
- Respect test-global interactions: client isolate:false, the MessageChannel replacement, and explicit scheduler resetting in the transition regression can affect scheduling-focused tests. — [packages/solid/vite.config.mjs#L23-28](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/vite.config.mjs#L23-L28) [packages/solid/test/MessageChannel.ts#L1-9](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/test/MessageChannel.ts#L1-L9) [packages/solid/web/test/transition.spec.tsx#L17-23](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/web/test/transition.spec.tsx#L17-L23)
- Avoid mistaking external adapters for local implementations: DOM, SSR, hyperscript, tagged-template, and universal expression engines are re-exported dependency code; fixes may require dependency-level investigation. — [packages/solid/web/src/client.ts#L1-1](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/web/src/client.ts#L1-L1) [packages/solid/web/server/server.ts#L1-1](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/web/server/server.ts#L1-L1) [packages/solid/h/src/hyperscript.ts#L1-1](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/h/src/hyperscript.ts#L1-L1) [packages/solid/html/src/lit.ts#L1-1](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/solid/html/src/lit.ts#L1-L1)
- Keep downloaded integration execution separate from routine import checking: the default integration test uses test:imports, whereas test:integrations invokes a suite with downloads, shell commands, packing, and deletion. — [packages/test-integration/package.json#L4-8](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/test-integration/package.json#L4-L8) [packages/test-integration/tests/downloaded.spec.ts#L24-58](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/test-integration/tests/downloaded.spec.ts#L24-L58) [packages/test-integration/tests/downloaded.spec.ts#L71-99](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/packages/test-integration/tests/downloaded.spec.ts#L71-L99)
- Follow the established formatting and TypeScript configuration: two-space indentation, semicolons, double quotes, no trailing commas, strict NodeNext resolution, preserved JSX, and declaration generation. — [.prettierrc#L1-8](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/.prettierrc#L1-L8) [tsconfig.json#L1-12](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/tsconfig.json#L1-L12)
- Release operations are explicit root scripts, and Changesets links solid-js with babel-preset-solid; publishing requires build/types and should not be conflated with local verification. — [package.json#L17-21](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/package.json#L17-L21) [.changeset/config.json#L3-9](https://github.com/solidjs/solid/blob/b25c557754f2ced0d86490e6dbfded9b1745b663/.changeset/config.json#L3-L9)

Source repository: https://github.com/solidjs/solid
Full evidence corpus: https://github.com/Codevetter/codevetter/tree/main/benchmarks/repo-unpacks/solid.json

## Public product links

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