Repository navigation
feat: bring desktop Studio UI and local playback to web - #2312
richiemcilroy wants to merge 667 commits into
Conversation
|
hey @greptileai, please re-review the PR |
Comments Outside DiffThese findings could not be posted inline.
|
|
hey @greptileai, please re-review the PR |
|
hey @greptileai, please re-review the PR |
|
hey @greptileai, please re-review the PR |
|
hey @greptileai, please re-review the PR |
|
hey @greptileai, please re-review the PR |
|
hey @greptileai, please re-review the PR |
|
hey @greptileai, please re-review the PR |
|
hey @greptileai, please re-review the PR |
|
hey @greptileai, please re-review the PR |
|
hey @greptileai, please re-review the PR |
…ton and keep the comments rail always open
|
hey @greptileai, please re-review the PR |
|
hey @greptileai, please re-review the PR |
…es when access changes
… the recovery test
|
hey @greptileai, please re-review the PR |
…ayer's key handler
… editor is preparing
|
hey @greptileai, please re-review the PR |
| export const isBrowserShortcut = (event: ShortcutKey): boolean => | ||
| event.metaKey || event.ctrlKey || /^F([1-9]|1[0-9]|2[0-4])$/.test(event.key); |
There was a problem hiding this comment.
While the web editor is preparing, this helper does not recognize Alt-modified shortcuts. Alt+Left and Alt+Right therefore reach the fallback handler, which prevents their default behavior and blocks browser history navigation. The share-player helper already treats Alt combinations as browser-owned; this loading path should do the same.
| export const isBrowserShortcut = (event: ShortcutKey): boolean => | |
| event.metaKey || event.ctrlKey || /^F([1-9]|1[0-9]|2[0-4])$/.test(event.key); | |
| export const isBrowserShortcut = (event: ShortcutKey): boolean => | |
| event.metaKey || | |
| event.ctrlKey || | |
| event.altKey || | |
| /^F([1-9]|1[0-9]|2[0-4])$/.test(event.key); |
Prompt To Fix With AI
This is a comment left during a code review.
Path: apps/desktop/src/routes/editor/browser-shortcuts.ts
Line: 12-13
Comment:
**Alt Navigation Is Blocked**
While the web editor is preparing, this helper does not recognize Alt-modified shortcuts. Alt+Left and Alt+Right therefore reach the fallback handler, which prevents their default behavior and blocks browser history navigation. The share-player helper already treats Alt combinations as browser-owned; this loading path should do the same.
```suggestion
export const isBrowserShortcut = (event: ShortcutKey): boolean =>
event.metaKey ||
event.ctrlKey ||
event.altKey ||
/^F([1-9]|1[0-9]|2[0-4])$/.test(event.key);
```
---
For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.
Brings the desktop Studio editor to the web as a pilot, with a browser recorder built around it. Recordings keep screen, camera, microphone and system audio as separate tracks, open straight into the editor, and can be styled, extended with more clips, exported locally or saved back to the same share link.
Studio is gated by
CAP_WEB_EDITOR_STUDIO_ENABLED=enabledand the pilot account (isWebStudioEnabledForEmail). Other accounts keep the existing editor. No database migration.Recorder
Opening the editor
<video>(which downloads a whole fragmented MP4), the waveform streams the mic once and is cached, and decoded frames go straight to the renderer. Sources up to 4K decode with WebCodecs.Editing
Save, export and import
Rendering new recordings
Validation
Known gaps
The PR appears safe to merge, with a non-blocking keyboard-navigation issue during the editor’s loading state.
Findings
Fix with agent prompt
Summary
This PR brings Studio recording, editing, playback, import, export, and publishing workflows to the web while extending the shared desktop editor and render infrastructure. Since the previous review, it adds browser-shortcut exemptions while the editor loads and while the share player has focus.
Reviews (270) · Last reviewed commit: "fix(editor): never cancel browser shortc..." · Reviewed by Greptile