Skip to content

feat(desktop-gpui): restore the recordings overlay after a Studio recording - #4258

Open
richiemcilroy wants to merge 4 commits into
mainfrom
feat/gpui-recordings-overlay
Open

richiemcilroy wants to merge 4 commits into
mainfrom
feat/gpui-recordings-overlay

Conversation

@richiemcilroy

@richiemcilroy richiemcilroy commented Nov 14, 2026 •

Copy link
Copy Markdown
Member

Brings back the floating overlay that followed a Studio recording in 0.6.0 when "After a Studio recording" was set to show it.

Why it was missing

  • The Tauri app opened RecordingsOverlay from apply_post_studio_editor_behaviour (apps/desktop/src-tauri/src/recording.rs:5963-5975 at 800ab28de^).
  • The GPUI app has no overlay window. It kept the stored value showOverlay but labelled it "Show Cap", and the stop flow sent it to the fallback arm that reshows the main window (app_windows.rs, phase observer).
flowchart LR
    stop[Studio recording stops cleanly] --> rules[automation rules<br/>SkipEditor / OpenEditor]
    rules --> b{postStudioRecordingBehaviour}
    b -- openEditor --> editor[editor]
    b -- showOverlay --> overlay[recordings overlay<br/>main window stays hidden]
    b -- doNothing --> lib[library only]
    shot[screenshot taken] -- overlay already up --> overlay
Loading

What changed

  • apps/desktop-gpui/src/recordings_overlay.rs (new): a stack of 260x150 cards, newest on top, in the bottom-left corner of the display under the cursor. Hovering a card shows the Tauri card's actions:
Action Recording Screenshot
Close removes the card, cancels a running action same
Edit / Open opens the editor and removes the card opens the image
Copy to clipboard renders (MP4, 60 fps, 1080p, Web, the Tauri overlay's settings) and copies the file copies the image
Copy shareable link copies the saved link, or renders and uploads through upload_exported_video with the organization picked in the export dialog (first one if it is gone), with progress uploads the image through upload_rendered_screenshot and saves the link on the bundle
Export system save panel, then renders to that file save panel, then copies the PNG
  • Each action shows a progress panel. A failure shows its message and a Retry button (offline, server error). Signed out starts sign-in. A free plan over 5 minutes opens pricing, as the editor does.
  • Cards stay until closed or edited, as in Tauri (no timeout). The stack hides while a recording runs or a screenshot is captured, so it is never in the capture, and comes back afterwards. Actions in flight keep running meanwhile.
  • A screenshot taken while the stack is up joins it, which is what the Tauri overlay did through NewScreenshotAdded. Screenshots do not open the stack by themselves (Tauri never did that either).
  • When the stack is taller than the display allows, the oldest idle card goes first; a card mid-upload is never dropped. Cards whose recording was deleted meanwhile are dropped when the stack comes back.
  • Setting: postStudioRecordingBehaviour is unchanged on disk. showOverlay, written by 0.6.0 for its overlay and by 0.6.1 to 0.6.3 for "Show Cap", now means the overlay again and is labelled "Show in overlay" (Shortcuts page outcome: "Show overlay"). Nothing new is written, so a downgrade to 0.6.0 still reads it.
  • Automations (feat(desktop-gpui): run saved automation rules #4059): its studio_editor_behaviour maps SkipEditor to doNothing and OpenEditor to openEditor, so the overlay is suppressed and the editor wins exactly as in Tauri's studio_recording_editor_behaviour. No change is needed on either side; the hooks here avoid the lines feat(desktop-gpui): run saved automation rules #4059 touches.
  • Small visibility changes for reuse: editor_export::run_export, export_file_name, app_windows::gpui_display_id, remove_popup_window_chrome.

Callers checked

  • postStudioRecordingBehaviour readers: the phase observer match (app_windows.rs), open_preparing_studio_editor and prepares_studio_editor (only openEditor prepares an editor; showOverlay still waits for finalization before the card appears, so actions never run on an unfinished recording), the Shortcuts page outcome cards and effect sentences (settings_pages.rs, unchanged wording for non-editor outcomes).
  • prepare_for_screenshot_capture and screenshot_finished (both screenshot paths, including Wayland's empty_overlays_for_screenshot, go through them).
  • run_export keeps its single editor caller; signature unchanged.

What could regress

  • Users with showOverlay saved from 0.6.1 to 0.6.3 now see the overlay instead of the main window coming back. That is the intent: the value always meant the overlay, and GPUI's own comment called the reshow a stand-in "until an overlay exists".
  • Every other behaviour value takes the same arm as before.

Tests

  • recordings_overlay::tests (15): completion per behaviour, organization choice, corner placement and the work-area clamp, the card limit, overflow keeping busy cards, progress and titles for every state, a screenshot joining only an open stack, deleted recordings dropped on return, one action at a time with Close cancelling, a deleted recording closing its card, Done and Failed settling back.
  • store::tests::post_studio_overlay_reads_tauri_and_gpui_stores: a full 0.6.0 general_settings object and a GPUI single-key store both read showOverlay as the overlay; unknown and absent values stay openEditor.
  • Locale surface tests cover every new string in all seven catalogs.

Proof

Media and real-app runs on macOS follow in a comment.

RetriggerView in GreptileConfidence Score: 5/5

The PR appears safe to merge; no new blocking issue was found.

Summary

Restores the recordings overlay for the saved showOverlay setting, with copy, share, export, and editor actions.

  • Studio recordings set to “Show in overlay” open a floating action stack.

Reviews (2) · Last reviewed commit: "fix(desktop-gpui): ask about export reso..." · Reviewed by Greptile

@sandchest-com

sandchest-com Bot commented Nov 14, 2026 •

Copy link
Copy Markdown

Sandchest

Sandchest reviewed 876d118: nothing exploitable found in this change.

Sandchest reviews every change for vulnerabilities an attacker could use · 1 credit · Review details

@capy-ai capy-ai Bot 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.

Capy found 3 potential issues (3 medium).

View 1 other finding in Capy.

Open in Capy

Comment thread apps/desktop-gpui/src/app_windows.rs Resolved
@vercel

vercel Bot commented Nov 14, 2026 •

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated
cap-status Skipped Skipped Nov 14, 2026 6:57am UTC

@vercel
vercel Bot temporarily deployed to Preview – cap-status November 14, 2026 06:45 Inactive

@capy-ai capy-ai Bot 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.

Capy found 1 potential issue (1 medium).

Open in Capy

@vercel
vercel Bot temporarily deployed to Preview – cap-status November 14, 2026 06:57 Inactive

@capy-ai capy-ai Bot 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.

Capy found no issues.

View 1 other finding in Capy.

Open in Capy

@richiemcilroy

Copy link
Copy Markdown
Member Author

hey @greptileai, please re-review the PR

This branch was successfully deployed

1 active (outdated) and 1 inactive deployments
Preview – cap-status — 876d1186 Deployed Nov 14, 2026 by vercel[bot]
Preview – cap-web — 80653c45 Deployed Nov 14, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant