Skip to content

fortemi-react v2026.6.3

Choose a tag to compare

@jmagly jmagly released this 15 Jun 23:12
· 364 commits to main since this release
642decf

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

  • @fortemi/core@2026.6.3
  • @fortemi/graph@2026.6.3
  • @fortemi/react@2026.6.3

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