Summary
The registry blocks flowchart and flowchart-vertical render blank (dotted-grid background only, no nodes/connectors) on every hyperframes@0.7.x render, and every render that mounts them pays the full 45 s sub_timeline_readiness_timeout.
Reproduction
hyperframes init a project (or take any existing one) and add the registry block:
hyperframes add flowchart-vertical
- Mount it as a sub-composition window in
index.html:
<div class="clip" data-composition-id="flowchart-vertical"
data-composition-src="compositions/flowchart-vertical.html"
data-start="1" data-duration="3" data-track-index="1"
data-width="1920" data-height="1080"></div>
npx hyperframes@0.7.60 render
Expected: the flowchart animates inside its window.
Actual: only the dotted-grid background is captured for the whole window, and the render logs:
[sub_timeline_readiness_timeout] Sub-composition timelines did not become ready within 45000ms
With browser console visible, the root cause is explicit:
[Compiler] Composition script failed flowchart-vertical ... TypeError: Cannot read properties of undefined (reading 'hold5')
Root cause
registry/blocks/flowchart-vertical/flowchart-vertical.html (and the landscape flowchart twin) schedule the "Pythom" → "Python" typing correction by reading a label position back off the timeline:
tl.addLabel("hold5", "+=0.2");
// ...
const typingStart = tl.labels["hold5"]; // ← throws under the render compiler
The 0.7 render compiler executes composition <script>s under a GSAP proxy whose timeline exposes no readable .labels map, so this line throws before window.__timelines[...] = tl runs. The timeline is never registered → the readiness gate times out → the block ships blank.
Environment
Reproduced identically on:
- macOS 15 arm64, native
npx hyperframes@0.7.60 render
- linux/amd64 (Docker), same version
The blocks work in Studio preview (real GSAP, .labels readable) — only the render compiler path breaks, which makes this easy to miss.
Fix
Use GSAP's own label-relative position syntax ("hold5+=<offset>") instead of reading .labels back — the idiom every other step in these files already uses. Timing is identical. PR incoming.
Summary
The registry blocks
flowchartandflowchart-verticalrender blank (dotted-grid background only, no nodes/connectors) on everyhyperframes@0.7.xrender, and every render that mounts them pays the full 45 ssub_timeline_readiness_timeout.Reproduction
hyperframes inita project (or take any existing one) and add the registry block:index.html:npx hyperframes@0.7.60 renderExpected: the flowchart animates inside its window.
Actual: only the dotted-grid background is captured for the whole window, and the render logs:
With browser console visible, the root cause is explicit:
Root cause
registry/blocks/flowchart-vertical/flowchart-vertical.html(and the landscapeflowcharttwin) schedule the "Pythom" → "Python" typing correction by reading a label position back off the timeline:The 0.7 render compiler executes composition
<script>s under a GSAP proxy whose timeline exposes no readable.labelsmap, so this line throws beforewindow.__timelines[...] = tlruns. The timeline is never registered → the readiness gate times out → the block ships blank.Environment
Reproduced identically on:
npx hyperframes@0.7.60 renderThe blocks work in Studio preview (real GSAP,
.labelsreadable) — only the render compiler path breaks, which makes this easy to miss.Fix
Use GSAP's own label-relative position syntax (
"hold5+=<offset>") instead of reading.labelsback — the idiom every other step in these files already uses. Timing is identical. PR incoming.