diff --git a/.gitignore b/.gitignore
index bc75a52a..f3a14846 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,32 +3,32 @@ logs
*.log
npm-debug.log*
yarn-debug.log*
-yarn-error.log*
-pnpm-debug.log*
-lerna-debug.log*
-
-node_modules
-dist
-dist-electron
-dist-ssr
-*.local
-
-# Editor directories and files
-.vscode/*
-!.vscode/extensions.json
-.idea
-.DS_Store
-*.suo
-*.ntvs*
-*.njsproj
-*.sln
-*.sw?
-release/**
-*.kiro/
-# npx electron-builder --mac --win
-.tmp/
-.history/
-*.tsbuildinfo
+yarn-error.log*
+pnpm-debug.log*
+lerna-debug.log*
+
+node_modules
+dist
+dist-electron
+dist-ssr
+*.local
+
+# Editor directories and files
+.vscode/*
+!.vscode/extensions.json
+.idea
+.DS_Store
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.sw?
+release/**
+*.kiro/
+# npx electron-builder --mac --win
+.tmp/
+.history/
+*.tsbuildinfo
vite.config.js
vite.config.d.ts
@@ -36,6 +36,14 @@ vite.config.d.ts
electron/native/wgc-capture/build/
electron/native/cursor-monitor/build/
+# Local build tools and caches
+.cache/
+.cmake_ext/
+ebcache/
+docs/
+recordly_dev/
+.agent/
+
# Local debug helpers
tmp-*.ps1
.tmp-*.ps1
diff --git a/electron/native/bin/win32-x64/cursor-monitor.exe b/electron/native/bin/win32-x64/cursor-monitor.exe
index 68f2e54f..97d7a92d 100644
Binary files a/electron/native/bin/win32-x64/cursor-monitor.exe and b/electron/native/bin/win32-x64/cursor-monitor.exe differ
diff --git a/electron/native/bin/win32-x64/helpers-manifest.json b/electron/native/bin/win32-x64/helpers-manifest.json
index 8713d1c3..ed41409c 100644
--- a/electron/native/bin/win32-x64/helpers-manifest.json
+++ b/electron/native/bin/win32-x64/helpers-manifest.json
@@ -5,17 +5,17 @@
"helpers": {
"wgc-capture": {
"binaryName": "wgc-capture.exe",
- "binarySha256": "5f364b07b016c597288f90a9b61c581e6559d6d32b79ffadceb37859bbea8dd2",
+ "binarySha256": "c01e731bb255096ba8add9bf293d82545af29d82848d456545c2b182a17717fc",
"sourceDir": "electron/native/wgc-capture",
"sourceFingerprint": "9e9bce082266ca5968cf5f0b535b469d47c4ec3a775a93726171c0dfdbcdaa44",
- "updatedAt": "2026-03-28T05:48:46.587Z"
+ "updatedAt": "2026-03-29T02:18:57.450Z"
},
"cursor-monitor": {
"binaryName": "cursor-monitor.exe",
- "binarySha256": "916ed064c12a3b861d7721df8b9209d10ec0fdb8078564a2ba3ea8cf4f4354c4",
+ "binarySha256": "d81b6358021ee5b27e601c14b9cc5edd0689647abd507e3dcd8ffe12f914c50d",
"sourceDir": "electron/native/cursor-monitor",
"sourceFingerprint": "6ad1b8b50bb336f2a48937b06f5ec56d90b6ab4a3e56a4bca278cf67a5d3e52e",
- "updatedAt": "2026-03-28T05:17:17.697Z"
+ "updatedAt": "2026-03-29T02:19:01.284Z"
}
}
}
diff --git a/electron/native/bin/win32-x64/wgc-capture.exe b/electron/native/bin/win32-x64/wgc-capture.exe
index ac92a80b..b0187cfa 100644
Binary files a/electron/native/bin/win32-x64/wgc-capture.exe and b/electron/native/bin/win32-x64/wgc-capture.exe differ
diff --git a/package-lock.json b/package-lock.json
index 2c283f39..9f0a9cd3 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "recordly",
- "version": "1.1.6",
+ "version": "1.1.7",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "recordly",
- "version": "1.1.6",
+ "version": "1.1.7",
"hasInstallScript": true,
"dependencies": {
"capturekit": "^1.0.13",
diff --git a/src/components/video-editor/AnnotationOverlay.tsx b/src/components/video-editor/AnnotationOverlay.tsx
index 3260a542..31b2e043 100644
--- a/src/components/video-editor/AnnotationOverlay.tsx
+++ b/src/components/video-editor/AnnotationOverlay.tsx
@@ -50,8 +50,8 @@ export function AnnotationOverlay({
@@ -111,6 +111,17 @@ export function AnnotationOverlay({
);
+ case 'blur':
+ return (
+
+ );
+
default:
return null;
}
@@ -127,7 +138,7 @@ export function AnnotationOverlay({
const xPercent = (d.x / containerWidth) * 100;
const yPercent = (d.y / containerHeight) * 100;
onPositionChange(annotation.id, { x: xPercent, y: yPercent });
-
+
// Reset dragging flag after a short delay to prevent click event
setTimeout(() => {
isDraggingRef.current = false;
diff --git a/src/components/video-editor/AnnotationSettingsPanel.tsx b/src/components/video-editor/AnnotationSettingsPanel.tsx
index 2cddf970..e6470ebf 100644
--- a/src/components/video-editor/AnnotationSettingsPanel.tsx
+++ b/src/components/video-editor/AnnotationSettingsPanel.tsx
@@ -21,6 +21,7 @@ interface AnnotationSettingsPanelProps {
onTypeChange: (type: AnnotationType) => void;
onStyleChange: (style: Partial) => void;
onFigureDataChange?: (figureData: FigureData) => void;
+ onBlurIntensityChange?: (intensity: number) => void;
onDelete: () => void;
}
@@ -43,6 +44,7 @@ export function AnnotationSettingsPanel({
onTypeChange,
onStyleChange,
onFigureDataChange,
+ onBlurIntensityChange,
onDelete,
}: AnnotationSettingsPanelProps) {
const t = useScopedT('editor');
@@ -128,21 +130,29 @@ export function AnnotationSettingsPanel({
{/* Type Selector */}
onTypeChange(value as AnnotationType)} className="mb-6">
-
-
-
+
+
+
{t('annotations.text')}
-
-
+
+
{t('annotations.image')}
-
-
{/* Text Content */}
@@ -499,6 +509,31 @@ export function AnnotationSettingsPanel({
+
+
+
+
+
+ {annotation.blurIntensity ?? 12}px
+
+
+
{
+ onBlurIntensityChange?.(value);
+ }}
+ min={1}
+ max={100}
+ step={1}
+ className="w-full"
+ />
+
+ {t('annotations.blurDescription', 'Obscure sensitive information by blurring the underlying video content.')}
+
+
+