Commit Graph
1364 Commits
Author SHA1 Message Date
wiiiii123 ec6fb0d05d fix(export): keep native video path with offline audio 2026-05-06 18:40:31 +07:00
Phạm Thị Minh Hồng 3f1e30b979 Merge pull request #394 from wizardAEI/codex/feature/camera-crop
[codex] Add webcam crop and mirror controls
2026-05-06 16:06:40 +07:00
wiiiii123 c59d982b0c fix(editor): wait for drawable webcam crop frames 2026-05-06 16:04:53 +07:00
wiiiii123 8fc47d3e31 fix(electron): normalize main cjs bundle 2026-05-06 15:30:35 +07:00
wizardAEI 7fea88b9c5 Merge remote-tracking branch 'upstream/main' into codex/feature/camera-crop
# Conflicts:
#	src/components/video-editor/VideoEditor.tsx
2026-05-06 11:17:15 +08:00
wizardAEI bf99b1747c Improve webcam crop preview and export 2026-05-06 10:41:43 +08:00
webadderall 9ac02024e1 Clarified attribution terms
Clarified attribution requirements for using Recordly's code.
2026-05-06 12:06:57 +10:00
wiiiii123 b3862bde79 fix(export): allow native cursor overlay routing 2026-05-06 07:04:01 +07:00
wiiiii123 1168e0edcc fix(export): preserve pitch for fallback speed audio 2026-05-06 06:43:40 +07:00
wiiiii123 9ac4c55ccf feat(export): prepare native GPU beta candidate
Add validated native CUDA/D3D11 timeline retime, pause-aware capture timing, webcam source-time sampling, edited-track audio duration padding, packaged helper updates, and focused tests for PR #410 tester branch.
2026-05-06 01:50:12 +07:00
wiiiii123 df8a1a3ed3 Merge remote-tracking branch 'origin/main' into perf/native-chunked-export-fastpath
# Conflicts:
#	electron/ipc/register/recording.ts
#	src/components/video-editor/VideoEditor.tsx
#	src/components/video-editor/VideoPlayback.tsx
#	src/hooks/useScreenRecorder.ts
#	src/lib/exporter/modernFrameRenderer.ts
#	src/lib/exporter/modernVideoExporter.ts
2026-05-05 16:59:32 +07:00
webadderall 4ad5e9a29a Update default editor presets 2026-05-05 17:57:34 +10:00
webadderall 7f00d95681 fix presets and motion blur, add dev sliders 2026-05-05 17:29:17 +10:00
webadderall f287dd3132 Restore editor preset header menu 2026-05-05 17:05:44 +10:00
webadderall 467f1aa0e6 Merge pull request #416 from webadderallorg/codex/behavior-3-13-resubmitted
feat: bundle cursor motion and temporal blur updates
2026-05-05 16:41:30 +10:00
webadderall 97e6a3a155 Revert "fix: restore minimal safe-zone cursor recentering"
This reverts commit 5e9f04805987bb94149866a10118e521c8ffe088.
2026-05-05 16:18:47 +10:00
webadderall 024e71a70d fix: restore minimal safe-zone cursor recentering 2026-05-05 16:18:47 +10:00
webadderall 0b0e43ccd6 fix: address review issues and preserve editor rollback 2026-05-05 16:18:47 +10:00
webadderall b773f98ad0 fix: address PR feedback regressions 2026-05-05 16:17:47 +10:00
webadderall 2c0c436267 Reapply "feat: bundle cursor motion and temporal blur updates"
This reverts commit be01bccb7a.
2026-05-05 16:16:56 +10:00
webadderall 17cd7b1169 Update timeline editor image source in README 2026-05-05 15:16:58 +10:00
webadderall cd021a1f02 Change logo image source in README.md
Updated the logo image source in the README.
2026-05-05 15:13:57 +10:00
webadderall ad9895a1c4 Merge pull request #413 from webadderallorg/codex/cursor-telemetry-write-api
feat: add writable cursor telemetry API
2026-05-05 14:57:09 +10:00
webadderall c01981fd5e fix: address PR review regressions 2026-05-05 11:43:04 +10:00
Recordly Reviewer b0ab0bf184 fix: address PR review feedback - canonicalize via realpath and gate whisper soft-fail
isAllowedLocalReadPath now resolves the candidate via fs.realpathSync and requires both the lexical and canonical paths to satisfy the policy, so a symlink placed under an allowed prefix that points outside the allowlist is rejected. The redundant 'either resolved or realResolved is allowed' check in read-local-file and generate-wallpaper-thumbnail is removed since the function canonicalizes internally. Adds a regression test that creates such a symlink (skipping when Windows refuses to create it without Developer Mode).

build-whisper-runtime now only soft-fails when invoked from postinstall, in CI, or with WHISPER_RUNTIME_ALLOW_MISSING=1. Direct 'npm run build*' invocations fail loudly when CMake is missing and no bundled runtime is staged so we don't ship release builds with broken auto-captioning.
2026-05-04 14:31:09 -04:00
Recordly Reviewer dce19d5209 fix: tighten local read allowlist and gracefully skip whisper-runtime build without CMake
isAllowedLocalReadPath previously returned true for any existing path because of an existsSync fast-path, which made the read-local-file IPC handler and the local media URL policy effectively allow reading arbitrary files on disk. Drop the existsSync bypass so only paths under app-managed directories or paths that have been explicitly approved (via dialogs, exports, recording sessions, etc.) are accepted. Adjust the local media path policy tests to cover the new behaviour.

Also make build-whisper-runtime fall back to bundled artifacts when CMake is missing (mirroring build-windows-capture) so npm ci does not fail on machines without a C++ toolchain.
2026-05-04 14:21:49 -04:00
webadderall 42c6cf458e Merge pull request #415 from webadderallorg/revert-414-codex/behavior-3-13
Revert "feat: bundle cursor motion and temporal blur updates"
2026-05-04 18:17:20 +10:00
webadderall be01bccb7a Revert "feat: bundle cursor motion and temporal blur updates" 2026-05-04 18:17:04 +10:00
webadderall dedf43720a Merge pull request #414 from webadderallorg/codex/behavior-3-13
feat: bundle cursor motion and temporal blur updates
2026-05-04 18:15:30 +10:00
webadderall 0abc7a3098 feat: bundle cursor motion and temporal blur updates 2026-05-04 18:12:47 +10:00
webadderall 6cc83b31e9 feat: add writable cursor telemetry API 2026-05-04 17:28:10 +10:00
wiiiii123 23f17f2772 Merge main into native GPU export PR 2026-05-04 11:42:27 +07:00
webadderall 35c6038e36 Merge pull request #404 from sharkcreep87/fix/export-2gib-readfile-limit
fix(export): return temp path from buffer-mode FFmpeg muxer (>2 GiB) (#380)
2026-05-04 14:00:59 +10:00
webadderall 572000bf0d Merge remote-tracking branch 'origin/main' into codex/clip-flow-cleanup
# Conflicts:
#	src/components/video-editor/timeline/TimelineEditor.tsx
2026-05-04 13:21:05 +10:00
wiiiii123 94bbd0280f Add NVIDIA CUDA export compositor 2026-05-04 09:59:41 +07:00
wiiiii123 9c81006e5c Add native GPU static layout export path 2026-05-03 22:43:23 +07:00
aei cf40acedf7 Merge branch 'main' into codex/feature/camera-crop 2026-05-03 20:13:12 +08:00
wizardAEI 57a070d615 Fix webcam speed region sync 2026-05-03 18:32:02 +08:00
wizardAEI 6b3c7e4209 Fix webcam squircle clipping 2026-05-03 18:18:53 +08:00
webadderall 816116de26 Merge pull request #405 from webadderallorg/copilot/click-cluster-zoom
timeline: suggest zoom tracks from click clusters instead of dwell heuristics
2026-05-02 21:01:01 +10:00
webadderall dad073ebed harden explicit click zoom suggestions 2026-05-02 20:38:07 +10:00
webadderall 676d01827f tighten click-cluster zoom suggestions 2026-05-02 20:21:35 +10:00
webadderall 3e871b924d clean up clip-first timeline editing 2026-05-02 20:14:54 +10:00
webadderall d4b5cf77ec timeline: suggest zoom tracks from click clusters instead of dwell heuristics
Replace the dwell-ranking-based auto-zoom algorithm with a pure click-cluster
approach:

- Extract explicit click events (click, double-click, right-click, middle-click)
  from cursor telemetry via detectInteractionCandidates
- Chain-merge clicks that occur within 2500 ms of each other into one cluster
- Expand each cluster to a zoom window of [firstClick - 500 ms, lastClick + 500 ms]
- Skip clusters that overlap already-placed zoom regions (reservedSpans)

New exported constants: CLICK_CLUSTER_MERGE_GAP_MS (2500) and CLICK_CLUSTER_PAD_MS (500).
Adds zoomSuggestionUtils.test.ts with 7 unit tests covering the new logic.
2026-05-02 20:00:40 +10:00
webadderall 5090910ce3 Add Tandava Appadoo and Digitalfastmind to supporters 2026-05-02 16:30:50 +10:00
sharkcreep87 df3527c1e9 chore: update repository URLs to canonical webadderallorg org (#402)
The repo was moved from github.com/webadderall to github.com/webadderallorg
but several files still reference the old URL. GitHub serves a 301
redirect today, but package.json metadata, the Homebrew cask, and the
in-app issues link should point to the canonical location.

Updated:
- package.json (homepage, repository.url, bugs.url)
- README.md and README.zh-CN.md (releases / clone / issues links)
- CONTRIBUTING.md (issues link)
- recordly.rb (Homebrew cask url + homepage)
- src/components/video-editor/TutorialHelp.tsx (RECORDLY_ISSUES_URL)
- src/components/video-editor/videoPlayback/motionSmoothing.ts (attribution comment)
2026-05-02 12:08:28 +10:00
shafeq 01f61dfada fix(export): return temp path from buffer-mode FFmpeg muxer (>2 GiB)
Exports of recordings whose muxed output exceeds 2 GiB failed with
RangeError [ERR_FS_FILE_TOO_LARGE]: Node's fs.readFile rejects files
larger than kIoMaxLength (2 ** 31 - 1). The legacy export pipeline hit
this in muxExportedVideoAudioBuffer, which called
  await fs.readFile(finalized.outputPath)
to ship the muxed bytes back to the renderer.

Mirror the path-based contract that mux-exported-video-audio-from-path
already uses:

- muxExportedVideoAudioBuffer now returns { outputPath, metrics } and
  collects byte size via fs.stat instead of fs.readFile. The unmuxed
  intermediate is still cleaned up; the muxed output is left for the
  IPC handler to register and the renderer to finalize.
- The mux-exported-video-audio IPC handler registers the muxed output
  via registerOwnedExportPath and returns { tempPath, metrics }.
- preload.ts and electron-env.d.ts: tempPath replaces data in the
  renderer-facing return type.
- videoExporter.ts and modernVideoExporter.ts (the
  finalizeExportWithFfmpegAudio fallback paths) now return
  { tempFilePath } so VideoEditor's existing finalize-exported-video
  flow handles the move — the same path the modern stream-mode export
  already takes.

The renderer already preferred tempFilePath over blob in
VideoEditor.tsx for MP4 saves (with the explicit comment "avoids ever
allocating a multi-GiB ArrayBuffer in the renderer"), so this just
removes the buffer-mode regression for large legacy exports.

Adds electron/ipc/export/native-video.test.ts asserting the new
contract: muxExportedVideoAudioBuffer returns a path, never calls
fs.readFile, and still records muxedVideoBytes via stat.

Closes #380
2026-05-02 09:48:05 +08:00
webadderall 5570c119ca [codex] Fix cursor sync after recording pause (#399)
* Fix cursor sync after recording pause

* Align recorder and cursor pause boundaries
2026-05-01 17:18:35 +10:00
webadderall 666a690b3c Merge pull request #391 from webadderallorg/copilot/presets-draft-pr
Add editor presets menu
2026-05-01 16:49:43 +10:00
webadderall 7a87763ca3 Fix preset review feedback 2026-05-01 16:44:10 +10:00