Skip to content

Introduce renderer FontStore glyph snapshots#106

Merged
kostyafarber merged 14 commits into
mainfrom
codex/fontstore-glyph-snapshots
Jun 26, 2026
Merged

Introduce renderer FontStore glyph snapshots#106
kostyafarber merged 14 commits into
mainfrom
codex/fontstore-glyph-snapshots

Conversation

@kostyafarber

@kostyafarber kostyafarber commented Jun 21, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Add renderer-owned FontStore for workspace summary records, loaded glyph snapshots, snapshot status, stable model identity, and pending local commits.
  • Rename WorkspaceEditQueue to WorkspaceSync and make it own async apply/undo/redo/save/snapshot ordering while WorkspaceSession stays transport-only.
  • Replace layer-addressed snapshot reads with bounded glyph/source workspace.glyphSnapshots requests through the shared protocol, bridge types, NAPI bridge, WorkspaceHost, and WorkspaceSession.
  • Keep variation data on the glyph snapshot, not layer state; layer state remains structure + values only.
  • Move route, grid preview, and text-entry snapshot hydration behind the editor-owned GlyphSnapshotLoader boundary so UI/model getters remain synchronous.
  • Tighten FontStore, GlyphSnapshotLoader, and Font model API boundaries with explicit sync/load/glyph-snapshot ports and id-based glyph/layer reads; guard stale/failed snapshot responses by workspace generation.

Verification

  • pnpm --filter @shift/desktop run typecheck
  • pnpm --filter @shift/desktop run lint:check
  • pnpm run format:check
  • pnpm --filter @shift/desktop exec vitest run src/renderer/src/lib/model/GlyphSnapshotLoader.test.ts src/renderer/src/lib/model/FontStore.test.ts
  • GitHub Actions CI manual run on 337cda9: required CI Passed gate succeeded, including Unit Tests and Integration Tests. https://github.com/shift-editor/shift/actions/runs/27920122677
  • Blocked locally: broader Vitest suites that import shift-bridge cannot collect because shift-bridge-linux-x64-gnu / cargo are missing in this environment.

Comment thread apps/desktop/src/renderer/src/components/editor/Canvas.tsx Outdated
Comment thread apps/desktop/src/renderer/src/lib/editor/rendering/RenderFrame.ts Outdated
Comment thread apps/desktop/src/renderer/src/lib/editor/rendering/RenderFrame.ts Outdated
Comment thread apps/desktop/src/renderer/src/lib/model/Font.ts Outdated
Comment thread apps/desktop/src/renderer/src/lib/model/FontStore.ts
@kostyafarber kostyafarber force-pushed the codex/fontstore-glyph-snapshots branch from 6c91ce6 to 3d64f26 Compare June 26, 2026 18:20
@kostyafarber kostyafarber marked this pull request as ready for review June 26, 2026 18:26
@kostyafarber kostyafarber merged commit 85477a6 into main Jun 26, 2026
11 of 12 checks passed
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