• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

eustatos / nexus-state
71%

Build:
DEFAULT BRANCH: main
Repo Added 01 Mar 2026 10:09AM UTC
Files 133
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

LAST BUILD ON BRANCH main
branch: SELECT
CHANGE BRANCH
x
  • No branch selected
  • chore/kill-test-process
  • chore/planning
  • docs/bench
  • docs/readme
  • epic/phase-0-performance
  • feature/69-get-registry-atoms
  • feature/benchmarks-ci
  • feature/core-refactor
  • feature/form-evaluate
  • feature/form-query-improve
  • feature/query-advanced
  • feature/react-versions
  • feature/signal-ready-architecture
  • feature/snapshot-diff
  • feature/time-travel-optimize
  • fix/66-timetravel-capture
  • fix/67-setState-atom-registry-hydration
  • fix/chore
  • fix/docs
  • main
  • perf/optimize-flush-computed
  • test/core

27 Mar 2026 10:55AM UTC coverage: 71.309% (-0.05%) from 71.362%
23642968821

push

github

web-flow
refactor(core): atom = identity + logic (state in Store)

ARCHITECTURE: Atom is a label, not state container
- Atoms register lazily on first store.get/set/subscribe()
- State lives in Store, not in Atom
- Global registry stores atom references + metadata only

CHANGES:
- atom.ts: Remove immediate registration, lazy-only
- atom-registry.ts: Store references + metadata (not values)
- StoreImpl.ts: Fast-path registration in createGetter()
- TimeTravelController.ts: Store-specific tracking with DEV warnings

BENEFITS:
✅ SSR Isolation: One atom, different states per store
✅ Time-travel: Snapshots are store-specific
✅ Memory: States GC'd with store, atoms lightweight
✅ Multi-store: Shared atoms work correctly

PERFORMANCE:
- Baseline (atom creation): 25x faster (124ms → 5ms)
- Factory (createReactiveValue): 4x faster (285ms → 67ms)
- Overhead % appears higher due to smaller baseline

TESTS:
- Updated tests for explicit atom access before capture
- 1259/1259 core tests passed
- 99/99 time-travel tests passed

Refs: #71

2177 of 2547 branches covered (85.47%)

Branch coverage included in aggregate %.

109 of 117 new or added lines in 3 files covered. (93.16%)

16 existing lines in 3 files now uncovered.

8274 of 12109 relevant lines covered (68.33%)

3053.02 hits per line

Relevant lines Covered
Build:
Build:
12109 RELEVANT LINES 8274 COVERED LINES
3053.02 HITS PER LINE
Source Files on main
  • Tree
  • List 133
  • Changed 5
  • Source Changed 4
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
23642968821 main refactor(core): atom = identity + logic (state in Store) ARCHITECTURE: Atom is a label, not state container - Atoms register lazily on first store.get/set/subscribe() - State lives in Store, not in Atom - Global registry stores atom references + ... push 27 Mar 2026 10:57AM UTC web-flow github
71.31
23642791253 perf/optimize-flush-computed Merge 972a6f325 into e3f4fe976 Pull #77 27 Mar 2026 10:52AM UTC web-flow github
71.13
23602700180 main feat(core): defer atom registration until first store access - Remove immediate registration of named atoms in atom() function - Atoms are now registered only when accessed via store.get(), store.set(), or store.subscribe() - This ensures atoms a... push 26 Mar 2026 03:28PM UTC web-flow github
71.36
23600548451 main fix(core): setState searches atoms in local store registry during hydration (#75) - Change setState() to search atoms only in current store's local registry instead of global atomRegistry - Prevents state restoration from wrong store during SSR... push 26 Mar 2026 02:45PM UTC web-flow github
71.34
23600350844 fix/67-setState-atom-registry-hydration Merge b47fce476 into 2947df308 Pull #75 26 Mar 2026 02:41PM UTC web-flow github
71.34
23599677513 main fix(time-travel): Use store-specific registry in capture() and flushC… * fix(time-travel): Use store-specific registry in capture() and flushComputed() - Replace atomRegistry.getAll() with store.getRegistryAtoms() for filtering - Only initializ... push 26 Mar 2026 02:28PM UTC web-flow github
71.33
23599548950 fix/66-timetravel-capture Merge 402ad80d1 into ac87ce2cb Pull #74 26 Mar 2026 02:25PM UTC web-flow github
71.33
23598270077 main feat(core): Add public methods getRegistryAtoms() and getRegistry() - Add getRegistryAtoms() method to Store interface and StoreImpl - Add getRegistry() method to Store interface and StoreImpl - Add comprehensive tests for both methods - Tests v... push 26 Mar 2026 01:59PM UTC web-flow github
71.33
23594758836 feature/69-get-registry-atoms Merge 02d0bc6ca into 81046ecd9 Pull #73 26 Mar 2026 12:41PM UTC web-flow github
71.33
23591733246 main release: up versions push 26 Mar 2026 11:25AM UTC eustatos github
71.31
See All Builds (88)
  • Repo on GitHub
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc