v2026.6.3

fortemi-react v2026.6.3 release notes.

fortemi-react v2026.6.3

fortemi-react v2026.6.3 pushes more capability down into the framework-agnostic layer and tightens the chunked-index DX. The graph-source state machine moves out of React into `@fortemi/graph` so JS-only hosts can drive it without React, `@fortemi/core` gains optional slim/projected chunk parts to halve broad-scan transfer, and `useAiwgIndex().counts` now works the same in chunked and whole-index modes.

Highlights

  • `@fortemi/graph` `GraphController` (#170, #171): the `citations | topics | precomputed | dynamic-search | user-authored` mode dispatch, transition tracking, and load orchestration now live in a framework-free `GraphController` with a plain `getState()` / `subscribe()` surface. `@fortemi/graph` depends on `@fortemi/core` (linear chain `pglite ← core ← graph ← react`, no cycles); the pure projection helpers stay database-free and tree-shakeable. `useGraphController` is now a thin `useSyncExternalStore` adapter — unchanged public return shape.
  • `@fortemi/core` slim/projected chunk parts (#168): `AiwgFortemiChunkManifest` gains optional `projection` and `detail`; declaring a projection lets scan parts omit detail-only fields (`source`, `provenance`, `relationships`, `updated_at`) — roughly half the bytes for a typical index — while `getRecord(id)` + a bounded LRU detail cache resolve full records on demand. New pure builder `buildAiwgChunkedIndex(...)` emits `{ manifest, parts, details }`. Fully backward compatible: absent a projection, parts remain whole records.
  • `@fortemi/react` chunked `counts` (#173): `useAiwgIndex().counts` derives per-type counts from `chunkedManifest.facets.type` in chunked mode (exact global counts from the ~2 KB manifest, no part fetch) and from the item tally otherwise. Consumers can drop their manifest-facet workaround.

Published Packages

Compatibility

Existing `2026.6.2` consumers upgrade without source changes. All additions are backward compatible: the chunk `projection`/`detail` fields are optional, `getRecord`/`counts` keep their existing behavior in whole-index mode, and `useGraphController`'s return shape is unchanged. `@fortemi/graph` now pulls `@fortemi/core` transitively — hosts importing only the pure projection helpers still tree-shake the DB-backed `GraphController` out. No archive schema migration is included in this release.

Verification

Run the repository checks on the release-prep commit and wait for CI to pass:

pnpm typecheck
pnpm lint
pnpm test:core
pnpm test:e2e
pnpm build

Cut the release tag with the project release key only:

tools/release/cut-tag.sh 2026.6.3
git push origin main --tags
git push github main --tags