feat(miri): show hidden window photos on shared display edges#80

merged
miri/v0.5.2
miri/150-edge-slice-photos
opened13d agobySSamanyu Das
View on GitHubTwo-way sync enabledPR last imported 13d ago

Why

Side-by-side displays cannot keep a hidden window's real sliver on their shared edge. This adds the opt-in photo panels required by miri#150.

What changed

  • Show each visible slice in a non-activating panel and refresh its ScreenCaptureKit photo every two seconds.
  • Repaint changed pixels and reuse each window's capture filter.
  • Cancel unwanted pending captures and skip refreshes while panels are unseen.

Scope

Stacked on #79. This implements photos and drawing. Click and drag forwarding follows separately. The app switch is miri#152.

Blast Radius

Screen Recording is opt-in and defaults off. Free edges retain real slivers. Capture callbacks carry cancellation tickets and generation numbers.

Verification

  • Prior checks on this exact engine head passed strict Clippy and 42 library plus 1031 binary tests.
  • The integration session verified panel geometry, matching edge pixels, two-second changes, and switch, fullscreen, sleep, and lock cuts under the Miri Developer grant.
  • Five alternating 30-second release pairs with a changing clock page measured engine CPU at 2.57% of one core on versus 0.87% off. Each on sample captured and repainted 15 photos with zero repeat lookups or capture errors. A playing AVPlayer video and paused frame were verified in this continuation. Five alternating 10-second pairs measured 2.60% on versus 1.00% off for video, and 2.60% on versus 1.10% off for the still frame. All 25 video photos repainted. All 25 still photos were unchanged and caused zero repaints. Off samples took no photos. These are engine CPU medians as a percentage of one core, not a comparison with the standalone prototype.

Reviewed with sol-loop: 2 rounds with gpt-6.1-sol on high. Sol verdict: approved

Implemented with Claude Opus 5.5. Continued with GPT-6.1 Sol in T3 Code.

Checks

1 skipped
All checks passed
14a08e4
Synced from GitHub

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

External image Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 7c98fe8f-ed6b-4c4f-bc5b-c58f55475b30

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • ๐Ÿ” Trigger review
  • Autofix ยท Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

โค๏ธ Share

Comment @coderabbitai help to get the list of available commands.