webadderall
de57147eee
Merge remote-tracking branch 'origin/main' into feat/settings-extensions
...
# Conflicts:
# src/components/video-editor/ExtensionManager.tsx
# src/components/video-editor/SettingsPanel.tsx
# src/components/video-editor/TutorialHelp.tsx
# src/components/video-editor/VideoEditor.tsx
# src/components/video-editor/index.ts
# src/components/video-editor/projectPersistence.ts
# src/components/video-editor/timeline/TimelineEditor.tsx
# src/components/video-editor/types.ts
# src/i18n/locales/nl/launch.json
2026-04-17 13:58:36 +10:00
webadderall
98711aa3be
Merge pull request #247 from webadderall/feat/export-pipeline
...
feat: add H.264 stream-copy export, overhaul exporter pipeline, rename native binaries
2026-04-17 13:48:40 +10:00
webadderall
d855fd9a10
Merge remote-tracking branch 'origin/main' into feat/export-pipeline
...
# Conflicts:
# electron/electron-env.d.ts
# electron/ipc/handlers.ts
2026-04-17 13:47:15 +10:00
webadderall
f6cd42bb05
Merge pull request #246 from webadderall/feat/ui-overhaul
...
feat: ui overhaul — Phosphor icons, redesigned launcher, editor layout, and component refresh
2026-04-17 13:36:28 +10:00
webadderall
9cf959b732
fix: clear annotation selection for zoom edits
2026-04-17 12:03:37 +10:00
webadderall
328c4d247b
fix: finish remaining settings review items
2026-04-17 12:00:42 +10:00
webadderall
79d9855ef5
fix: address remaining CodeRabbit feedback
2026-04-17 11:56:31 +10:00
webadderall
f046e1bda3
fix: stabilize editor settings and extension UI
2026-04-17 01:50:14 +10:00
webadderall
8b2e063912
fix: address remaining settings review feedback
2026-04-17 01:03:24 +10:00
webadderall
3da4ac1825
fix: address final export pipeline review follow-ups
2026-04-17 00:41:32 +10:00
webadderall
f58bf90dfa
fix: address remaining ui overhaul review feedback
2026-04-17 00:27:46 +10:00
webadderall
e86e034ba4
fix: address remaining export pipeline review feedback
2026-04-17 00:17:54 +10:00
webadderall
b03753f8e8
fix: address remaining ui overhaul review feedback
2026-04-16 23:39:27 +10:00
webadderall
f2b13c8244
fix: address ui overhaul review feedback
2026-04-16 22:36:23 +10:00
webadderall
e5dd20bf82
fix: address settings and extensions review feedback
2026-04-16 19:16:20 +10:00
webadderall
77af3e58f6
fix: address export pipeline review feedback
2026-04-16 18:49:01 +10:00
webadderall
a84b83f91b
feat: ui overhaul — Phosphor icons, redesigned launcher, editor layout, and component refresh
...
- Replace all lucide-react imports with @phosphor-icons/react across every
component (LaunchWindow, AnnotationSettingsPanel, ExtensionManager,
ExtensionIcon, VideoPlayback, AnnotationOverlay, CropControl, TutorialHelp,
PlaybackControls, all shadcn ui/ primitives, etc.)
- ExtensionIcon: new Phosphor-based resolver with Lucide name alias map for
backwards-compatible extension manifests
- LaunchWindow / SourceSelector: full redesign — new icon rail layout,
updated backgrounds, improved source selection UX, audio/video controls,
countdown overlay
- VideoPlayback: overhaul playback controls and preview panel layout
- Timeline items: border-radius 16px→8px, cyan→blue unification, pill height
85% for breathing room, resize handle vertical centering
- shadcn ui/: refresh accordion, dialog, dropdown, select, slider, switch,
tabs, toggle, popover, button, card, input, label, sonner, content-clamp,
audio-level-meter
- App.tsx / index.css / App.css / tailwind.config: global style updates
- types.ts, captionLayout.ts, captionStyle.ts, webcamOverlay.ts: data model
updates to support new timeline and export features
- package.json: add @phosphor-icons/react, bump dependencies
- scripts/, .eslintrc, biome, tsconfig, vite.config: tooling alignment
- extension-sources: update built-in extension bundles
2026-04-16 18:01:04 +10:00
webadderall
781cb4c38d
feat: settings tab with language picker, extension fixes, and i18n expansion
...
- SettingsPanel: new 'settings' section — in-app language picker (all 5
locales), auto-apply fresh recording zooms toggle, connect-neighboring-
zooms toggle, keybinds shortcut into KeyboardShortcutsDialog
- VideoEditor: wire autoApplyFreshRecordingAutoZooms preference through to
SettingsPanel; connect zoom settings into new section
- editorPreferences: add autoApplyFreshRecordingAutoZooms field; update tests
- extensionMarketplace: filter __MACOSX sidecar dirs when unzipping extensions
uploaded from macOS Finder (fixes manifest-not-found on Finder zips)
- useExtensions: guard window.electronAPI for SSR safety; reformat to tabs
- I18nContext: expose setLocale; persist locale preference
- ShortcutsContext: shortcut registration improvements
- lib/extensions: renderHooks, extensionHost, fileUrls, cursorCoordinates
updated for new extension capability surface
- i18n: expand extension locale strings across all 5 supported languages
2026-04-16 17:52:53 +10:00
webadderall
26f1ce2476
feat: add H.264 stream-copy export, overhaul exporter pipeline, rename native binaries
...
- IPC: new inputMode 'h264-stream' — browser VideoEncoder output stream-copied
into MP4 via ffmpeg rather than piping raw RGBA frames, cuts memory usage
- Security: replace flat approvedLocalReadPaths with userApprovedPaths fed from
dialog pickers and project load; isAllowedLocalReadPath uses it alongside
dir prefix / existsSync checks
- nativeVideoExport: add buildNativeH264StreamExportArgs for stream-copy path
- frameRenderer / modernFrameRenderer: cursor-follow camera integration,
annotation blur post-processing, shadow profile, squircle geometry
- audioEncoder / streamingDecoder / gifExporter / muxer: full pipeline
hardening — drift correction, backpressure, proper teardown
- Rename native helpers openscreen-* → recordly-* on darwin-arm64 and
darwin-x64; update helpers-manifest.json for win32-x64
- electron/main, windows, updater, rendererServer: startup and window
lifecycle improvements
- preload: expose inputMode and new IPC surface to renderer
2026-04-16 17:51:41 +10:00
webadderall
0111d634ec
Update EXTENSIONS.md
2026-04-15 20:55:56 +10:00
webadderall
8999cf5405
fix: allow local export media files
v1.1.23
2026-04-15 18:02:46 +10:00
webadderall
abda1e05e1
fix: hotfix export regressions
2026-04-15 17:19:49 +10:00
webadderall
1d7619fec6
chore: apply low-risk lint cleanup
2026-04-15 14:59:02 +10:00
webadderall
ad2eb59440
docs: sync Chinese README with English version
2026-04-15 14:42:43 +10:00
webadderall
c37472c9d6
fix(export): remove output path restriction
v1.1.22
2026-04-14 22:28:30 +10:00
webadderall
7a954e8942
Merge pull request #228 from Wing900/fix/silent-mp4-exports
...
Fix silent MP4 exports with FFmpeg audio fallback
2026-04-13 20:38:45 +10:00
webadderall
b6323f82f1
Merge pull request #224 from afostr/feature/preserve-hud-position
...
fix(hud): preserve user-dragged position across recording state changes
2026-04-13 20:37:26 +10:00
Wing900
63f8ff27ae
Fix silent MP4 exports with FFmpeg audio fallback
2026-04-12 20:55:34 +08:00
webadderall
d1829d9f30
Add Francesco to the list of supporters
2026-04-12 20:37:34 +10:00
webadderall
845faaf3fd
Update README.md
2026-04-12 20:34:58 +10:00
webadderall
a671f31e0f
Update README.md
2026-04-12 20:14:09 +10:00
webadderall
2becacd1fc
Update README for new video
...
Refactor README to enhance clarity and encourage contributions.
2026-04-12 20:11:55 +10:00
webadderall
5112847309
Add files via upload
2026-04-12 19:43:18 +10:00
webadderall
a3eb3c1ddc
chore: bump version to 1.1.21
v1.1.21
2026-04-12 18:08:30 +10:00
webadderall
8396b89d60
feat(editor): full-width timeline, extension i18n, lifecycle fixes
...
- Move timeline below preview+settings so it spans full editor width
- Remove react-resizable-panels vertical split
- Add scoped i18n for ExtensionManager (en/zh/ko/ja/es)
- Fix stale extension activation cleanup and deactivation on uninstall
- Cache-bust extension module URLs on reinstall
- Move bundled cursor packs to extension-sources/ for marketplace upload
- Track marketplace download counts (fire-and-forget POST)
2026-04-12 16:59:07 +10:00
webadderall
20f42d3fca
fix(audio): add browser microphone fallback for macOS < 14
...
On macOS versions before Sonoma (14.0), SCStreamConfiguration does not
support the captureMicrophone/microphoneCaptureDeviceID selectors. The
native helper was throwing a fatal error, blocking recording entirely
when microphone was enabled.
Now the Swift helper logs MICROPHONE_CAPTURE_UNAVAILABLE and continues
capture without microphone. The Node handler detects this signal and
returns microphoneFallbackRequired to the renderer, which starts a
browser-side MediaRecorder capturing the mic via getUserMedia. On stop,
the audio blob is saved as a .mic.webm sidecar alongside the native
recording, where the existing companion audio detection picks it up.
Fixes: 'Native microphone capture is unavailable on this macOS/Xcode
runtime' error on older macOS versions.
2026-04-12 16:59:06 +10:00
webadderall
1764607ef0
Merge pull request #163 from longmaba/feat/webcam-preview-floating-overlay
...
feat(launch): add draggable floating webcam preview overlay
2026-04-12 13:13:13 +10:00
Long
070c44983f
Merge main into feature branch and resolve LaunchWindow conflict.
...
Keep the floating webcam preview container and pointer-drag behavior while integrating latest main changes.
Made-with: Cursor
2026-04-12 00:57:52 +07:00
Andrew Foster
2729fdf7b8
resolve coderabbit nitpick listeners
2026-04-11 12:10:19 -05:00
Andrew Foster
7ad75b12cf
resolve coderabbit feedback on applyHudOverlayBounds
2026-04-11 12:10:19 -05:00
Andrew Foster
224a480e67
fix(hud): preserve user-dragged position across recording state changes
...
The HUD overlay snaps back to the centered default position whenever
recording starts because the idle-to-recording UI swap triggers a
resize, and applyHudOverlayBounds() always recomputes a centered
location. This is disruptive when the user has intentionally moved
the bar out of the way before a timed recording.
Remember the position after a drag ends and reuse it for subsequent
bounds updates, clamped to the current work area. The position resets
on app restart or when displays change so the bar cannot get stranded
off-screen.
2026-04-11 12:10:19 -05:00
webadderall
3a11981bc2
feat(extensions): marketplace integration, wallpaper thumbnails, cursor packs, and bug fixes
...
- Extension marketplace UI with browsing, installing, screenshot gallery
- Wallpaper & cursor style registration API for extensions
- Wallpaper thumbnail system (nativeImage resize + disk cache, OOM-safe)
- Fix HUD crash: check configurable before redefining electronAPI
- Fix zip-slip false positive on macOS (fs.realpath for symlinks)
- Extension icon sizing and description truncation improvements
- Eager extension activation in SettingsPanel
2026-04-12 01:38:36 +10:00
webadderall
c84ab6d931
feat(editor): wire extension lifecycle and update docs
...
- Connect extension activation/deactivation in VideoEditor
- Update CONTRIBUTING.md and README.md with extension development info
2026-04-12 01:38:36 +10:00
webadderall
5bef938dc1
feat(export): add extension render hooks to export pipeline
...
- Integrate extension render hooks into frameRenderer and modernFrameRenderer
- Add modernFrameRenderer for compositing extensions during export
- Wire extension audio processing in audioEncoder
- Support extension hooks in gif and video export paths
2026-04-12 01:38:36 +10:00
webadderall
cf09dc9111
fix(playback): improve cursor rendering and layout calculations
...
- Refine cursor telemetry loop with extension coordinate support
- Improve DPI-aware cursor rendering pipeline
- Extend layout utilities for extension-driven scene transforms
2026-04-12 01:37:28 +10:00
webadderall
072ca8a014
refactor(timeline): extract zoom suggestion logic into standalone utility
...
- Move zoom suggestion computation out of TimelineEditor into zoomSuggestionUtils
- Simplify TimelineEditor by delegating zoom calculations
2026-04-12 01:37:28 +10:00
webadderall
6af018ec01
feat(extensions): integrate extension hooks into editor playback and settings
...
- Wire render hooks and cursor effects into VideoPlayback canvas pipeline
- Add extension settings panels to SettingsPanel
- Persist extension-related editor preferences and project state
2026-04-12 01:37:28 +10:00
webadderall
983a08758c
security: restrict read-local-file and open-external-url IPC handlers
...
- read-local-file: whitelist to RECORDINGS_DIR, USER_DATA_PATH, asset root, and temp only
- open-external-url: reject non-http/https protocols (blocks file://, javascript:, etc.)
Prevents malicious renderer code from reading arbitrary files (SSH keys,
credentials) or opening dangerous URLs via shell.openExternal.
2026-04-12 01:37:28 +10:00
webadderall
18d5a091f8
feat: extension system with marketplace, permissions, and security hardening
...
- Extension loader with manifest validation, ID sanitization, and path traversal protection
- Permission-gated runtime API (render, cursor, audio, timeline, ui, assets, export)
- Extension host with lifecycle management (activate/deactivate)
- Marketplace client for browsing, downloading, and installing extensions
- Extension Manager UI panel with enable/disable/uninstall
- IPC bridge for extension discovery, management, and marketplace operations
- Proxy guard on window.electronAPI to block extension access to privileged IPC
- Zip-slip protection via post-extraction directory traversal validation
- Safe PowerShell invocation for Windows zip extraction (no string interpolation)
- File URL resolution with path escape prevention
2026-04-12 01:37:28 +10:00
webadderall
7e1cef7493
fix(export): render blur annotations in modern pipeline
2026-04-11 21:40:37 +10:00