# Contributor handoff — pmndrs/jotai

> Canonical page: https://codevetter.com/unpack/jotai/agent-handoff

# Contributor handoff — pmndrs/jotai

Scanned commit 6abd0ae3365e02ab432fba4b6e8e6f00aafbf508 (2026-09-29). Generated by codevetter codevetter 1.15.0 on 2026-10-02.

Source inspection; upstream code and tests were not executed.

This brief is grounded in the pinned checkout, including more than twelve source files and multiple end-to-end source traces. Tests and CI were inspected, not executed, and the investigation did not install, build, benchmark, contact services, or modify files. Future edits should preserve the vanilla/React boundary and verify the specific affected regression suites. Ancillary v2 applications, unstable internals, and documentation drift need explicit consideration.
- Begin core work with atom.ts, store.ts, and the relevant internals building blocks; atom configuration identity and per-store state ownership are separate concerns. Preserve referentially stable atoms when used from React render functions. — [src/vanilla/atom.ts#L98-L120](https://github.com/pmndrs/jotai/blob/6abd0ae3365e02ab432fba4b6e8e6f00aafbf508/src/vanilla/atom.ts#L98-L120) [src/vanilla/store.ts#L14-L19](https://github.com/pmndrs/jotai/blob/6abd0ae3365e02ab432fba4b6e8e6f00aafbf508/src/vanilla/store.ts#L14-L19) [src/vanilla/internals.ts#L1209-L1229](https://github.com/pmndrs/jotai/blob/6abd0ae3365e02ab432fba4b6e8e6f00aafbf508/src/vanilla/internals.ts#L1209-L1229) [docs/core/use-atom.mdx#L23-L43](https://github.com/pmndrs/jotai/blob/6abd0ae3365e02ab432fba4b6e8e6f00aafbf508/docs/core/use-atom.mdx#L23-L43)
- For notification edits, preserve recompute-before-flush behavior in storeSet, storeSub, and unsubscribe; read the #3353 tests before changing the changedAtoms-size optimization or introducing nested notification behavior. — [src/vanilla/internals.ts#L1120-L1163](https://github.com/pmndrs/jotai/blob/6abd0ae3365e02ab432fba4b6e8e6f00aafbf508/src/vanilla/internals.ts#L1120-L1163) [tests/vanilla/store.test.tsx#L1617-L1679](https://github.com/pmndrs/jotai/blob/6abd0ae3365e02ab432fba4b6e8e6f00aafbf508/tests/vanilla/store.test.tsx#L1617-L1679)
- For hook edits, read both raw subscription implementations and continuablePromise; the ordinary raw hook includes a post-subscription value check, while RawSync uses useSyncExternalStore. Reconcile mount-timing documentation against these sources. — [src/react/useAtomValueRaw.ts#L19-L39](https://github.com/pmndrs/jotai/blob/6abd0ae3365e02ab432fba4b6e8e6f00aafbf508/src/react/useAtomValueRaw.ts#L19-L39) [src/react/useAtomValueRawSync.ts#L27-L39](https://github.com/pmndrs/jotai/blob/6abd0ae3365e02ab432fba4b6e8e6f00aafbf508/src/react/useAtomValueRawSync.ts#L27-L39) [src/react/continuablePromise.ts#L15-L54](https://github.com/pmndrs/jotai/blob/6abd0ae3365e02ab432fba4b6e8e6f00aafbf508/src/react/continuablePromise.ts#L15-L54) [docs/core/use-atom.mdx#L132-L168](https://github.com/pmndrs/jotai/blob/6abd0ae3365e02ab432fba4b6e8e6f00aafbf508/docs/core/use-atom.mdx#L132-L168)
- For storage changes, preserve getOnInit versus onMount loading, promise-update resolution, RESET deletion, and storage-area/key filtering; inspect the adapter tests rather than assuming browser persistence is infallible. — [src/vanilla/utils/atomWithStorage.ts#L172-L184](https://github.com/pmndrs/jotai/blob/6abd0ae3365e02ab432fba4b6e8e6f00aafbf508/src/vanilla/utils/atomWithStorage.ts#L172-L184) [src/vanilla/utils/atomWithStorage.ts#L222-L260](https://github.com/pmndrs/jotai/blob/6abd0ae3365e02ab432fba4b6e8e6f00aafbf508/src/vanilla/utils/atomWithStorage.ts#L222-L260) [tests/react/vanilla-utils/atomWithStorage.test.tsx#L77-L133](https://github.com/pmndrs/jotai/blob/6abd0ae3365e02ab432fba4b6e8e6f00aafbf508/tests/react/vanilla-utils/atomWithStorage.test.tsx#L77-L133)
- When execution is authorized, use the existing test:spec script for the smallest affected Vitest suite and test:types for API changes, then applicable lint/format checks. This investigation inspected those tests and CI declarations but did not execute them or establish passing status. — [package.json#L71-L75](https://github.com/pmndrs/jotai/blob/6abd0ae3365e02ab432fba4b6e8e6f00aafbf508/package.json#L71-L75) [vitest.config.mts#L13-L29](https://github.com/pmndrs/jotai/blob/6abd0ae3365e02ab432fba4b6e8e6f00aafbf508/vitest.config.mts#L13-L29) [.github/workflows/test.yml#L33-L38](https://github.com/pmndrs/jotai/blob/6abd0ae3365e02ab432fba4b6e8e6f00aafbf508/.github/workflows/test.yml#L33-L38)
- Keep ESM .js import suffixes, strict/exact optional types, isolated declarations, and seven exported entrypoints consistent; build uses --noCheck, so emitted output alone is insufficient type validation. — [src/vanilla.ts#L1-L19](https://github.com/pmndrs/jotai/blob/6abd0ae3365e02ab432fba4b6e8e6f00aafbf508/src/vanilla.ts#L1-L19) [tsconfig.json#L5-L19](https://github.com/pmndrs/jotai/blob/6abd0ae3365e02ab432fba4b6e8e6f00aafbf508/tsconfig.json#L5-L19) [package.json#L20-L56](https://github.com/pmndrs/jotai/blob/6abd0ae3365e02ab432fba4b6e8e6f00aafbf508/package.json#L20-L56) [package.json#L63-L75](https://github.com/pmndrs/jotai/blob/6abd0ae3365e02ab432fba4b6e8e6f00aafbf508/package.json#L63-L75)
- Treat website/example validation separately from root tests: workspace membership is root plus website, inspected applications declare v2 dependencies, and root lint excludes them. benchmarks/run-all.ts shells out to npx tsx and its header describes generated JSON/chart artifacts; it is not a read-only inspection command. — [pnpm-workspace.yaml#L1-L3](https://github.com/pmndrs/jotai/blob/6abd0ae3365e02ab432fba4b6e8e6f00aafbf508/pnpm-workspace.yaml#L1-L3) [website/package.json#L34-L40](https://github.com/pmndrs/jotai/blob/6abd0ae3365e02ab432fba4b6e8e6f00aafbf508/website/package.json#L34-L40) [eslint.config.mjs#L11-L12](https://github.com/pmndrs/jotai/blob/6abd0ae3365e02ab432fba4b6e8e6f00aafbf508/eslint.config.mjs#L11-L12) [benchmarks/run-all.ts#L5-L38](https://github.com/pmndrs/jotai/blob/6abd0ae3365e02ab432fba4b6e8e6f00aafbf508/benchmarks/run-all.ts#L5-L38)
- Contribution guidance requests failing tests for core fixes, focused changes, conventional commit types, and discussion-first submission rather than direct contributor PRs. INTERNAL exports warn of changes without notice; none of these instructions authorize writes or releases during this read-only task. — [CONTRIBUTING.md#L15-L26](https://github.com/pmndrs/jotai/blob/6abd0ae3365e02ab432fba4b6e8e6f00aafbf508/CONTRIBUTING.md#L15-L26) [CONTRIBUTING.md#L56-L70](https://github.com/pmndrs/jotai/blob/6abd0ae3365e02ab432fba4b6e8e6f00aafbf508/CONTRIBUTING.md#L56-L70) [src/vanilla/internals.ts#L1-L2](https://github.com/pmndrs/jotai/blob/6abd0ae3365e02ab432fba4b6e8e6f00aafbf508/src/vanilla/internals.ts#L1-L2)

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)
