overengineeringstudio / overengineeringstudio/effect-utils

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

Open
#612 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

origin:agent type:bug
Dominant language
TypeScript
Stars
82
Forks
2
Avg merge
1d 8h
Merged PRs (30d)
121

Description

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.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Locate the manual demo recorder's per-window screencapture polling loop and trace how its frames feed the existing overlay, manifest, and validation pipeline. Run an end-to-end recording to establish the current frame rate, then verify that a replacement captures only the Ghostty and Chrome area without focus or dimming issues and remains compatible with the existing compositor.

Written by the indexing model from the issue text.

Assessment

Tech stack
macos, typescript
Domain
desktop, tooling
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.