Skip to content

Replace flaky per-window screencapture loop in Notion manual demo recorder #612

@schickling-assistant

Description

@schickling-assistant

Problem

The manual demo recorder for @overeng/notion-react now has working chapter transitions, validation, sync summaries, and overlay composition, but the current capture backend still relies on a per-window screencapture polling loop.

In practice this is flaky on macOS:

  • screencapture can intermittently print could not create image from window
  • successful end-to-end runs can collapse to slideshow-level input rates (for example ~29 captured frames over ~160 seconds)
  • the resulting video can validate logically while still being visually unusable

Desired outcome

Replace the current per-window PNG polling loop with a stable capture strategy that:

  • records only the dedicated Ghostty + Chrome demo area
  • does not hijack user focus or dim the rest of the screen
  • produces consistent real-time frame rates suitable for a polished demo video
  • keeps the existing overlay / manifest / validation pipeline intact

Likely directions

  • record a fixed rectangle covering the two demo windows instead of polling each window separately
  • or use a more stable native / ffmpeg-based capture backend than repeated screencapture -l...
  • keep the output compatible with the existing chapter overlay compositor

Context

Current work already landed the following pieces in the recorder pipeline:

  • empty-page preroll / pre-stage
  • live tmux-driven editor transitions
  • sync summary lines with timing and notion_api_calls
  • bottom-band chapter overlays with progress indicator
  • chapter-by-chapter Notion/browser/terminal validation

The next step is specifically capture reliability / frame rate.

Metadata

Metadata

Assignees

No one assigned

    Labels

    origin:agentFiled by an AI agenttype:bugSemantic type:bug label

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions