Skip to content

fix(skills): materialize frame root durations - #2862

Closed
miguel-heygen wants to merge 2 commits into
mainfrom
fix/frame-root-duration-contract
Closed

fix(skills): materialize frame root durations#2862
miguel-heygen wants to merge 2 commits into
mainfrom
fix/frame-root-duration-contract

Conversation

@miguel-heygen

Copy link
Copy Markdown
Collaborator

What

Materialize a storyboard-backed data-duration on faceless-explainer frame roots when workers omit it.

Why

Timeline-driven frame roots can be valid without a static duration, but the transition injector must extend the outgoing root and its tail clips. Without the attribute, assembly succeeds and transition injection fails at the next workflow stage.

How

  • Extend the existing assembler metadata repair to add the storyboard duration alongside missing dimensions.
  • Make the shared frame-worker contract require a positive root duration matching the packet.
  • Add an integration regression covering assembly followed by transition injection for two timeline-driven frames.

Test plan

  • Unit tests added/updated (bun run test:skills: 436 passed)
  • Manual testing performed (focused assembler-to-transition integration: pass)
  • Documentation updated (shared frame-worker contract)
  • Skill lint and mirror checks passed

@miguel-heygen
miguel-heygen force-pushed the fix/frame-root-duration-contract branch from 6b6ce5b to 0aac986 Compare July 29, 2026 16:31
@miguel-heygen

Copy link
Copy Markdown
Collaborator Author

Closing after root-cause triage. Timeline-backed composition roots are explicitly allowed to omit data-duration; the failure is in transition injection checking duration before identifying the matching root. #2873 fixes that boundary directly and materializes the computed tail duration there. This PR instead normalizes one upstream producer and changes the shared worker contract, which would leave other valid producers dependent on the same fragile assumption. Keeping both would duplicate policy and make the optional-duration contract inconsistent.

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