feat: Lumens (Live Interactivity) renderer — scene, runtime, data-bound (impl of #34)#36
Closed
Weegy wants to merge 2 commits into
Closed
feat: Lumens (Live Interactivity) renderer — scene, runtime, data-bound (impl of #34)#36Weegy wants to merge 2 commits into
Weegy wants to merge 2 commits into
Conversation
…, motion omadia-canvas-protocol/1.1 host-app implementation (PR #31, issue #34). - L2 scene primitive: canvas2d draw-list rasteriser (theme-token styling), buffer-native hit-testing → TargetRef, SceneNode renderer. - L3/L4 Lumen runtime: vendored deterministic LX interpreter; useLumen hook (reactive view eval + rAF tick cadence + surface_error halt); LumenNode (structural+semantic validation, events→transitions, host-action bubbling); declarative animate layer (§5, reduced-motion) + per-region dirty-tracking. - L6 ports/wires: typed wire resolution + least-privilege expose. - L9: four reference Lumens (arcade game, wizard, defrag-viz, map) traced end-to-end through the validator + interpreter. - Schema sync + validator generation wired for the 5 new 1.1 schemas. 204 tests, web+node tsc + eslint clean. Depends on byte5ai/omadia canvas-core 1.1 (the schema source) — land that PR first.
10 tasks
- Accept Lumen-bearing snapshots client-side: the canvas-tree primitive oneOf is extended IN PLACE with scene + lumen (same 1.0 $id) in genValidator, so BOTH validateTree AND validateSurfaceEvent (whose surface_snapshot refs the tree) admit a Lumen — a 1.1-only id would only fix validateTree and the envelope path would still reject it. validators.generated.mjs regenerated. - electron.vite.config: externalize ws/bufferutil/utf-8-validate so the main process doesn't crash at launch (the bufferutil gotcha); allow the real node_modules path in the renderer fs allow-list for symlinked/worktree dev.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
The host-app (Electron renderer) side of Live Interactivity (Lumens),
omadia-canvas-protocol/1.1. Stacked on the spec branch (#31) so the diff is implementation-only. Implements #34. Server half: byte5ai/omadia#315.Verified live: connected to a local omadia stack, a real-data prompt renders an interactive, tappable Lumen of actual Dynamics course rows (selection highlights via a state-driven transition); the arcade reference Lumen ticks at 60fps with tap/Space input.
Contents
sceneprimitive (render/scene/): canvas2d draw-list rasteriser with Lume theme-token-only styling, buffer-native hit-testing → TargetRef, declarativeanimatelayer (reduced-motion aware),SceneNoderenderer.render/lumen/): vendored deterministic LX interpreter;useLumenhook (reactive view eval + rAF tick cadence +surface_errorhalt);LumenNode(structural + semantic validation,tap/key/scene-hit→ transitions); per-region dirty-tracking (≈0% CPU at rest).expose.$id) in the renderer validator, so bothvalidateTreeandvalidateSurfaceEventadmit a Lumen-bearing snapshot (a 1.1-only id would only fixvalidateTree).ws/bufferutil externalized (main-process crash); renderer fs allow-list covers symlinked node_modules.Tests
app204 passing; web + nodetsc+ eslint clean.Dependency / merge order
Requires byte5ai/omadia#315 (canvas-core 1.1 — the schema source). Land #315, then #31, then this.