Skip to content

fix(cli): surface video frame-injection failures in snapshot output#2255

Merged
vanceingalls merged 1 commit into
mainfrom
07-11-fix_cli_surface_video_frame-injection_failures_in_snapshot_output
Jul 11, 2026
Merged

fix(cli): surface video frame-injection failures in snapshot output#2255
vanceingalls merged 1 commit into
mainfrom
07-11-fix_cli_surface_video_frame-injection_failures_in_snapshot_output

Conversation

@vanceingalls

@vanceingalls vanceingalls commented Jul 11, 2026

Copy link
Copy Markdown
Collaborator

What

Surfaces three previously-silent degradation paths in snapshot's video frame-injection: (1) warns when @hyperframes/engine is unavailable (injection wholly unavailable), (2) warns when some-but-not-all active <video> frames could be extracted at a given seek time, (3) warns instead of silently swallowing injection failures.

Why

Two wild Windows reports: system-Chrome snapshots omitted direct <video> media while overlay HTML rendered correctly; seven non-overlapping <video> clips on one track rendered black in both snapshot and check with only one clip ever painting. snapshot DOES have an FFmpeg-based frame-injection path, but it degraded silently in all three of these spots — users had no signal that what they were looking at was black/stale.

Validation

Existing snapshot.test.ts suite (12 tests) green — these are new warning paths with no prior coverage, consistent with the rest of the command's console-output surface (not unit-tested). CLI build clean.

🤖 Generated with Claude Code

@vanceingalls vanceingalls force-pushed the 07-11-fix_shader-transitions_pin_cloned_scene_roots_to_composition_dimensions branch from a7caaab to 1d2aca6 Compare July 11, 2026 20:15
@vanceingalls vanceingalls force-pushed the 07-11-fix_cli_surface_video_frame-injection_failures_in_snapshot_output branch from cedfe17 to 7afc1c4 Compare July 11, 2026 20:15

@miga-heygen miga-heygen left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

#2255 — surface video frame-injection failures in snapshot output

Verdict: LGTM 🟢

Three previously-silent failures now surface warnings:

  1. Engine unavailable at import → warns that <video> elements will appear black (was silent, two wild Windows reports)
  2. Partial frame extraction (some active videos couldn't be extracted at seek time) → warns with count
  3. syncVideoFrameVisibility injection failure → warns instead of silently falling through

All use console.warn with actionable context ("verify media via a draft render's extracted frames instead"). No behavior change for the happy path — these only fire when something goes wrong that previously produced black frames silently.

Review by Miga

miguel-heygen
miguel-heygen previously approved these changes Jul 11, 2026

@miguel-heygen miguel-heygen left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed current head 7afc1c4. Engine-unavailable, partial extraction, and injection exceptions now produce specific warnings while preserving snapshot continuation; no sensitive path data is added. Required checks are green. APPROVE.

@james-russo-rames-d-jusso james-russo-rames-d-jusso left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed at 7afc1c4.

All three silent-degradation paths in snapshot's video frame-injection get surfaced. The observability shape matches the rest of the command (console warn, not a structured event) so it's consistent with the existing surface — dashboards that scrape stderr will see it.

  • Path 1 (@hyperframes/engine unavailable): warns once. Users know their <video data-start> will be black; comment now says why (chrome-headless ignores programmatic currentTime writes).
  • Path 2 (partial extraction, updates.length < active.length): warns per seek time with N/M. Also correctly fires when 0/N extracted, which is the worst-visibility subcase.
  • Path 3 (syncVideoFrameVisibility throws): warns instead of silent fall-through. Covers both the updates.length > 0 inject branch and the [] clear-stale-overlays branch — the message says "video frame injection failed" for both, which is a slight semantic drift for the clear-overlays branch, but the aggregate user-visible outcome ("videos will appear black/stale") is the same in both branches so I don't think it's worth splitting the message.

LGTM from my side.

Review by Rames D Jusso

jrusso1020
jrusso1020 previously approved these changes Jul 11, 2026

@jrusso1020 jrusso1020 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approving per the channel stamp-flow: Rames-D and Magi both cleared, CI clean at 7afc1c4.

@vanceingalls vanceingalls force-pushed the 07-11-fix_shader-transitions_pin_cloned_scene_roots_to_composition_dimensions branch from 1d2aca6 to 32228cf Compare July 11, 2026 20:46
@vanceingalls vanceingalls force-pushed the 07-11-fix_cli_surface_video_frame-injection_failures_in_snapshot_output branch from 7afc1c4 to 20241bc Compare July 11, 2026 20:46
@vanceingalls vanceingalls force-pushed the 07-11-fix_shader-transitions_pin_cloned_scene_roots_to_composition_dimensions branch from 32228cf to d9e6f7d Compare July 11, 2026 21:06
@vanceingalls vanceingalls force-pushed the 07-11-fix_cli_surface_video_frame-injection_failures_in_snapshot_output branch from 20241bc to 2682fe4 Compare July 11, 2026 21:06
@vanceingalls vanceingalls force-pushed the 07-11-fix_shader-transitions_pin_cloned_scene_roots_to_composition_dimensions branch from d9e6f7d to 01350bf Compare July 11, 2026 21:20
@vanceingalls vanceingalls force-pushed the 07-11-fix_cli_surface_video_frame-injection_failures_in_snapshot_output branch from 2682fe4 to 314db4d Compare July 11, 2026 21:20
@vanceingalls vanceingalls force-pushed the 07-11-fix_shader-transitions_pin_cloned_scene_roots_to_composition_dimensions branch from 01350bf to b3d851d Compare July 11, 2026 21:49
@vanceingalls vanceingalls force-pushed the 07-11-fix_cli_surface_video_frame-injection_failures_in_snapshot_output branch from 314db4d to edc0a16 Compare July 11, 2026 21:49
Base automatically changed from 07-11-fix_shader-transitions_pin_cloned_scene_roots_to_composition_dimensions to main July 11, 2026 22:25
@vanceingalls vanceingalls dismissed stale reviews from jrusso1020 and miguel-heygen July 11, 2026 22:25

The base branch was changed.

@vanceingalls vanceingalls merged commit 35c231e into main Jul 11, 2026
40 checks passed
@vanceingalls vanceingalls deleted the 07-11-fix_cli_surface_video_frame-injection_failures_in_snapshot_output branch July 11, 2026 22:36
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.

5 participants