Skip to content

Use reusable glyph projections for renderer views - #153

Merged
kostyafarber merged 1 commit into
mainfrom
agent/glyph-projection-views
Jul 16, 2026
Merged

Use reusable glyph projections for renderer views#153
kostyafarber merged 1 commit into
mainfrom
agent/glyph-projection-views

Conversation

@kostyafarber

Copy link
Copy Markdown
Collaborator

Summary

  • replace location-resolved glyph preview payloads with compact, location-independent GlyphProjection backing from shift-font through the workspace bridge
  • introduce reactive GlyphView objects that use live authored layers when available and local interpolation otherwise, including exact incompatible source shapes and recursive components
  • share interpolation-basis weights across glyphs with the same compatible source set; numeric edits stay in the existing signal graph while structural changes refresh resident projections atomically
  • make the virtualized grid coalesce projection reads by glyph identity, retain loaded backing across scrolling, and scrub locally without IPC or location-keyed caches
  • use the same derived advance in text positioning, removing the interpolated x-advance jump
  • document the loading, ownership, invalidation, and naming invariants for future renderer work

Related to #50.

Verification

  • pnpm test:unit — 494 desktop tests passed
  • pnpm typecheck
  • pnpm lint:check
  • pnpm format:check
  • pnpm deadcode:strict
  • cargo test -p shift-font -p shift-wire -p shift-bridge — 199 tests passed
  • cargo clippy --workspace --all-targets -- -D warnings
  • commit hooks passed in full

python3 scripts/context-drift-check.py still reports the 15 existing repository documentation errors; the new renderer-model route is valid and adds no new drift error.

@kostyafarber
kostyafarber marked this pull request as ready for review July 16, 2026 21:24
@kostyafarber
kostyafarber merged commit 7f1678e into main Jul 16, 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