Skip to content

Sync notebook cells through external store#607

Merged
rgbkrk merged 1 commit intomainfrom
codex/fix-issue-599-syncexternalstore
Mar 8, 2026
Merged

Sync notebook cells through external store#607
rgbkrk merged 1 commit intomainfrom
codex/fix-issue-599-syncexternalstore

Conversation

@rgbkrk
Copy link
Member

@rgbkrk rgbkrk commented Mar 8, 2026

Summary

  • move cell storage inside a dedicated syncExternalStore-backed module for reactive consumers
  • wire useAutomergeNotebook to read/write from the new store instead of local state and keep loading status aligned with the WASM bootstrap cycle
  • retain helper exports for snapshot access so optimistic updates and Blob work still rely on a single source of truth

@rgbkrk rgbkrk enabled auto-merge (squash) March 8, 2026 06:44
@rgbkrk rgbkrk force-pushed the codex/fix-issue-599-syncexternalstore branch from f802d50 to 04c149c Compare March 8, 2026 06:53
@rgbkrk rgbkrk merged commit a95e2fd into main Mar 8, 2026
19 of 20 checks passed
@rgbkrk rgbkrk deleted the codex/fix-issue-599-syncexternalstore branch March 8, 2026 07:30
rgbkrk added a commit that referenced this pull request Mar 8, 2026
Replace the single CellSkeleton placeholder with three skeleton cells
of varying heights (2.5rem, 5rem, 2rem) to better mimic a real notebook
loading. Staggered animation delays (0/75/150ms) give a subtle wave
effect on the pulse animation.

The loading state infrastructure from #607 handles detection:
- isLoading=true until bootstrap finds cells or first sync message
- CellSkeleton shows when cells.length===0 && isLoading
- Transition to real cells is automatic via useSyncExternalStore
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant