Feature/editor suite#8
Closed
joaothaira wants to merge 627 commits into
Closed
Conversation
…alog-redesign feat: replace native OS close dialog with custom in-app dialog
…vaddem#513) Adds a Radix UI slider below the zoom preset buttons allowing any scale between 1.0x and 5.0x. When the slider value matches a preset exactly, that preset button also shows as active. - Add `customScale?: number` to `ZoomRegion` and `getZoomScale()` helper that returns customScale when set, falling back to ZOOM_DEPTH_SCALES[depth] - Overlay indicator, playback renderer, and frame exporter all use getZoomScale() so preview, playback, and export are consistent - Fix focus clamping in zoomRegionUtils and frameRenderer to use actual scale instead of depth-based preset scale, preventing zoom drift with custom values - Fix drag boundary in VideoPlayback to use clampFocusToScale with the actual scale so the full canvas is clickable at high custom zoom levels - Timeline item label shows custom scale value when set - Slider styled dark with green thumb/fill when a custom (non-preset) value is active Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Clamp and NaN-guard customScale in getZoomScale (defensive sanitization) - Set customScale on preset button click so slider stays green - Set customScale on new zoom region creation so slider lights up immediately
…ussian-localization Add Russian localization
fix: bumped npmDepsHash on package.nix
…zoom-slider-clean feat: add custom zoom slider with continuous scale control (siddharthvaddem#513)
…ebcam-layout-preset feat: add 'No Webcam' layout preset to hide webcam in final recording
The right-side trim handle could be dragged past the end of the timeline because clampSpanToBounds did not cap the computed end value at totalMs. This adds Math.min(…, totalMs) so the handle snaps to the timeline edge. Fixes siddharthvaddem#393
…boundary-clamp fix: clamp trim handle end position to timeline boundary
…allowlists setPermissionCheckHandler and setPermissionRequestHandler only allowed ["media", "audioCapture", "microphone", "videoCapture", "camera"], causing any renderer-side getUserMedia/desktopCapturer request using a screen source to be silently denied by Electron before macOS TCC is ever consulted. Fix: add "screen" and "display-capture" to both handler allowlists.
… startup Microphone permission is checked at startup via getMediaAccessStatus, and camera has a dedicated request-camera-access IPC handler, but screen recording relied entirely on desktopCapturer.getSources() to implicitly trigger the TCC prompt — causing the permission dialog to reappear on every launch (issue siddharthvaddem#558). Note: askForMediaAccess() only accepts "microphone" | "camera"; screen recording TCC is triggered via desktopCapturer.getSources() instead. Fix: - Import desktopCapturer in main.ts - Call getMediaAccessStatus("screen") in app.whenReady(); trigger the TCC prompt via getSources when status is "not-determined" - Add request-screen-access IPC handler symmetric to request-camera-access
com.apple.security.device.audio-input is an entitlement key and should only appear in macos.entitlements. Placing it in extendInfo writes it into Info.plist where it has no effect and is misleading. The correct entry already exists in macos.entitlements; this removes the redundant, incorrectly-placed duplicate.
Resolve conflict in electron/i18n.ts by keeping both `ar` (from main) and `vi` (from this branch). Also add `vi` to SUPPORTED_LOCALES in src/i18n/config.ts so Vietnamese is selectable in the language picker.
…i18n-1022783609047552672 Add Vietnamese i18n support (vi locale)
…-screen-capture-permissions fix(macOS): fix three screen capture permission issues in Electron layer
Auto-updates the openscreen Homebrew tap on each published release: finds the macOS DMGs, computes sha256, and rewrites Casks/openscreen.rb in siddharthvaddem/homebrew-openscreen. Requires HOMEBREW_TAP_TOKEN secret with contents:write on the tap repo. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…ebrew-cask-workflow chore: add homebrew cask bump workflow
- Use #{version} interpolation in URLs so brew detects them as versioned
(silences "Use sha256 :no_check when URL is unversioned").
- Drop blank line between on_arm and on_intel (same stanza group).
- Alphabetize zap trash array.
- Add verified: stanza for the GitHub release URL.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…ebrew-cask-audit-fix chore: fix homebrew cask audit warnings
- Drop unnecessary verified: stanza (URL host matches homepage host). - Add blank line between sha256 and url inside on_arm/on_intel (rubocop treats them as separate stanza groups). - Keep no blank line between on_arm and on_intel blocks (same outer stanza group). After re-running the bump workflow, the cask passes both brew audit --cask and brew style --cask cleanly. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…ebrew-cask-final-style chore: final homebrew cask style cleanup
Auto-publishes new releases to winget via vedantmgoyal9/winget-releaser. On every "released" event (not pre-release), the action opens a PR against microsoft/winget-pkgs bumping SiddharthVaddem.OpenScreen. Requires: - WINGET_ACC_TOKEN secret: classic PAT with public_repo scope (fine-grained PATs are NOT supported by the action). - A fork of microsoft/winget-pkgs under siddharthvaddem (or pass fork-user if forked elsewhere). Closes siddharthvaddem#299 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…-reset-button-hover-text fix: remove conflicting hover style from shortcuts reset button
…ard-shortcut-to-open-OpenScreen feat: add configurable global shortcut to open app
Add more built-in annotation font options
…mcnulty-1089a4 Add Waveform as Background of the Trim Track - Easier to size the Trim
feat: add Brazilian Portuguese (pt-BR) translation
Capture the real system cursor image during macOS recording so custom and default cursors render natively instead of being mapped to bundled SVGs, bringing macOS in line with the Windows WGC capture path. - macOS cursor helper grabs NSCursor.currentSystem as a PNG asset (SHA256 id, intrinsic scale factor, pixel hotspot); the bitmap payload is emitted once per shape and referenced by assetId thereafter - helper returns nil cursorType instead of an arrow fallback so default/custom cursors fall through to the captured bitmap while text/pointer stay beautified - MacNativeCursorRecordingSession collects deduped assets, tags samples with assetId, and reports provider "native" when bitmaps are captured
- Replace lastEmittedAssetId with a process-wide Set<String> so each unique
cursor shape is serialised at most once even across non-adjacent repeats
(e.g. arrow → text → arrow no longer resends the arrow bitmap)
- Wrap the sampling loop body in autoreleasepool{} to prevent Cocoa objects
(NSBitmapImageRep, PNG Data, base64 String) from accumulating for the
lifetime of the helper during long recordings
- Update stale Accessibility comments: missing Accessibility only disables
text/pointer affordance detection; native bitmap capture is unaffected
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Add pt-BR to the dialogsByLocale map so the test covers the newly added locale instead of crashing on an undefined entry.
…sor-capture feat: native macOS cursor capture using NSCursor
…cal-menu-tray-layout Add vertical tray layout toggle
…line-handle-snap Add Timeline Snap Guides
Add text animation presets for annotations
Fix screen source selection recovery flow
…or anti-flash - preload + native bridge: getPathForFile, loadProjectFileFromPath, and onMenuNewProject / onMenuImportVideo listeners. - main process: New Project File-menu item (Cmd/Ctrl+N) + menu-new-project. - handlers: broaden import video formats (.m4v, .wmv, .flv, .ts). - windows: keep main's HUD geometry + draggable handler; re-apply the show-on-ready-to-show anti-flash for the HUD and editor windows.
- EditorEmptyState shown when no video is loaded: Import Video, Load Project, and drag-drop of .openscreen files. - "Open Studio" button in the recording HUD (replaces the two separate open-video / open-project buttons). - New Project flow that clears back to the dashboard, prompting to save on unsaved changes; Load Project now prompts too (variant-aware dialog). - Rebuilt on current main, preserving main's export refactor, cursor-clip / zoom-preview / trim-waveform work and the vertical/horizontal HUD tray.
SourceSelector.test.tsx uses toBeInTheDocument but never imported @testing-library/jest-dom, and vitest.config.ts has no setupFiles to register the matchers globally. It only passed when test ordering happened to leak the matcher from another file, making CI intermittently red on main (e.g. the siddharthvaddem#652 merge). Importing jest-dom directly makes the test self-sufficient and deterministic.
…udio-and-import Studio Dasboard with Separated UI for future scalability and Fixes
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Pull Request Template
Description
Motivation
Type of Change
Related Issue(s)
Screenshots / Video
Screenshot (if applicable):
Video (if applicable):
Testing
Checklist
Thank you for contributing!