Skip to main content

OGraf Studio 0.04

OGraf Studio 0.04 strengthens the Reality Hub/Lino data contract and raises the ceiling for authored broadcast design while preserving deterministic realtime and non-realtime OGraf behavior.

Reality Hub and recursive GDD data​

  • Added operator descriptions, select labels, file-extension hints, and JSON Schema length, range, pattern, step, and item-count constraints.
  • Added integer, duration-ms, percentage, file-path, select, and select-multiple controls.
  • Every compiled field emits applicable gddType and gddOptions metadata.
  • Added recursive object properties and array item schemas with structured defaults, nested required properties, stable schema-node identities, and segment-array binding paths.
  • Extended browser text stress/QA so a nested bound text leaf uses its own declared maxLength.

Deterministic runtime collections​

  • Added bounded object-item runtime collections distinct from finite authoring-time repeaters.
  • One contiguous persistent-group prototype expands item-major with explicit X/Y stride, capacity 1–100, and truncate overflow. Capacity is mirrored to manifest maxItems for operator validation.
  • Array updates replace by index, use the existing absolute update crossfade, share prototype lifecycle and loop timing, and remain reproducible during forward and backward goToTime() seeks.
  • Added human editor controls and revisioned MCP operations to create, update, inspect, and remove collections by stable IDs, field keys, group IDs, ordered layer IDs, or exact layer names.
  • Added collection-aware browser capture metadata (receivedCount, renderedCount, capacity, and truncated), SVG diagnostics, package resource rewriting, and editor-generated OGraf round-trip.
  • Stabilized transparent PNG capture after item-count changes by rebuilding the immutable expanded DOM after html-to-image's first foreignObject cache warm-up.

Composition and motion quality​

  • Added normal, multiply, screen, overlay, darken, lighten, color-dodge, color-burn, hard-light, soft-light, difference, and exclusion layer blending.
  • Isolated the transparent composition root so blend output depends only on lower OGraf layers, not on an editor checkerboard or controller/video background.
  • Replaced the lower-third recipe's lockstep default with a compiled mask wipe, cubic-out entrance, and cubic-in exit. Added explicit stagger, directional slide, and no-motion alternatives.
  • Expanded deterministic design QA with lockstep motion, easing direction, missing stagger, weak type scale, near-miss optical alignment, inconsistent padding, and loop-seam rules.

Preview and documentation​

  • Added reliable Start/replay behavior to the main OGraf Preview and fixed source-overlay geometry.
  • Raised editable projects through document v19 with migration coverage for GDD metadata, blend modes, recursive fields, binding paths, and runtime collections.
  • Updated README, architecture, roadmap, status, known issues, generated MCP contracts, ADRs, and the complete ograf-authoring skill; rebuilt and validated ograf-authoring.zip.

Validation​

  • npm run verify passes generated-contract drift, formatting, lint, all workspace typechecks, 266 tests across 54 files, the runtime bundle, and the production editor build.
  • Live browser verification rendered 0, 3, 4, and 6-row leaderboard payloads; six received items correctly produced four rendered items with truncated: true.
  • The exact recursive-data package passed project semantics, the official OGraf v1 manifest schema, package layout, module/default-export/API, and strengthened realtime/non-realtime lifecycle gates.
  • Non-realtime certification now rewinds and repeats goToTime() after an array-count update and compares collection visibility for deterministic replay.

Current boundaries​

  • A real Reality Hub module → Zero Density Lino smoke test is still recommended for target-stack proof, especially for renderer-specific blend precision.
  • Runtime collections currently use object items, index identity, synchronized prototype timing, bounded capacity, and truncate overflow. Scroll, pagination, grids, keyed move animation, independent item timing, and nested repeated arrays are not included.
  • Headless render/certify remains explicitly deferred. Browser-backed capture, measurement, certification, save, and export require one connected responsive editor tab.
  • The generated MCP contract is now approximately 335 KB because recursive operation schemas still appear in multiple tools. Context-surface consolidation is the recommended next milestone.
  • The production editor build retains the existing non-blocking large-chunk advisory.