Files
Vance IngallsandClaude Fable 5.1 9f3a778fd1 feat(studio): report why a fallback happened, and when a session is missing
Three silent fallback paths, three instruments:

1. resolverDisagreement on sdk_cutover_declined. Composition.getElement is
   canonical-only for a bare id, while dispatch resolves a bare id anywhere
   (resolveScoped). An element under a scoped id is therefore dispatchable yet
   still fails getElement -- a dispatchable edit refused, and invisible in both
   telemetry events (the shadow stays silent when its broader resolver hits).
   resolveSnapshot is now exported so the cutover path can tell the two
   target_not_found cases apart.

2. sdk_session_unavailable. With no session every cutover chokepoint takes the
   server path and emits nothing, and the shadow never runs either -- a total,
   silent SDK bypass. It has exactly three origins, all in useSdkSession's open
   effect: unreadable content, a failed ownership check, and openComposition
   throwing. Each now emits with its stage (and the error message for "open").

3. isResolverDisagreement is deliberately fail-safe: a session shape without
   getElements reports no disagreement rather than throwing, so diagnostic
   context can never turn a clean decline into a failure.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-17 23:24:09 -07:00
..
2026-09-17 01:48:54 -04:00
2026-03-21 22:43:56 -07:00

@hyperframes/studio

Browser-based composition editor UI for Hyperframes. Provides a visual timeline, code editor, and live preview for building video compositions.

Install

npm install @hyperframes/studio

What it does

The studio is a React application with:

  • Visual timeline — drag, resize, and arrange elements on tracks
  • Code editor — edit HTML and GSAP scripts with CodeMirror (syntax highlighting, autocomplete)
  • Live preview — see changes in real time as you edit
  • Composition inspector — view and modify element properties

Development

The studio is embedded in the hyperframes preview command. To develop the studio UI itself:

cd packages/studio
bun run dev        # Start Vite dev server
bun run build      # Build for production
bun run typecheck  # Type-check

Tech stack

  • React 19, Zustand 4/5 (state management; development uses Zustand 5)
  • CodeMirror 6 (editor)
  • Tailwind CSS (styling)
  • Vite (bundler)
  • Phosphor Icons

Documentation

Full documentation: hyperframes.heygen.com/packages/studio