Commit Graph

74 Commits

Author SHA1 Message Date
Gitea Actions
e65d8b0510 chore: bump version to 0.2.35 [skip ci] 2026-03-23 14:31:13 +00:00
Gitea Actions
809acfc781 chore: bump version to 0.2.34 [skip ci] 2026-03-23 13:42:26 +00:00
Gitea Actions
ddfbd65478 chore: bump version to 0.2.33 [skip ci] 2026-03-23 13:24:46 +00:00
Gitea Actions
999bdaa671 chore: bump version to 0.2.32 [skip ci] 2026-03-23 12:38:47 +00:00
Gitea Actions
818cbfa69c chore: bump version to 0.2.31 [skip ci] 2026-03-23 12:30:19 +00:00
Claude
aa319eb823 Fix Ollama settings on startup + video extraction UX
All checks were successful
Release / Bump version and tag (push) Successful in 3s
Release / Build App (macOS) (push) Successful in 1m18s
Release / Build App (Linux) (push) Successful in 3m44s
Release / Build App (Windows) (push) Successful in 3m57s
AI provider:
- Extract configureAIProvider() from saveSettings for reuse
- Call it on app startup after sidecar is ready (was only called on Save)
- Call it after first-time sidecar download completes
- Sidecar now receives correct Ollama URL/model immediately

Video extraction:
- Hide ffmpeg console window on Windows (CREATE_NO_WINDOW flag)
- Show "Extracting audio from video..." overlay with spinner during extraction
- UI stays responsive while ffmpeg runs

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-23 05:30:14 -07:00
Gitea Actions
8faa336cbc chore: bump version to 0.2.30 [skip ci] 2026-03-23 03:12:25 +00:00
Claude
02c70f90c8 Extract audio from video files before loading
All checks were successful
Release / Bump version and tag (push) Successful in 3s
Release / Build App (macOS) (push) Successful in 1m17s
Release / Build App (Linux) (push) Successful in 4m53s
Release / Build App (Windows) (push) Successful in 3m45s
Video files (MP4, MKV, etc.) are now processed with ffmpeg to extract
audio to a temp WAV file before loading into wavesurfer. This prevents
the WebView crash caused by trying to fetch multi-GB files into memory.

- New extract_audio Tauri command uses ffmpeg (sidecar-bundled or system)
- Frontend detects video extensions and extracts audio automatically
- User-friendly error if ffmpeg is not installed with install instructions
- Reverted wavesurfer MediaElement approach in favor of clean extraction
- Added FFmpeg install guide to USER_GUIDE.md

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-22 20:04:10 -07:00
Gitea Actions
66db827f17 chore: bump version to 0.2.29 [skip ci] 2026-03-23 02:55:23 +00:00
Gitea Actions
da49c04119 chore: bump version to 0.2.28 [skip ci] 2026-03-23 01:30:57 +00:00
Gitea Actions
6f9dc9a95e chore: bump version to 0.2.27 [skip ci] 2026-03-23 01:05:15 +00:00
Gitea Actions
34b060a8a5 chore: bump version to 0.2.26 [skip ci] 2026-03-23 00:42:00 +00:00
Gitea Actions
bddce2fbeb chore: bump version to 0.2.25 [skip ci] 2026-03-23 00:38:11 +00:00
Gitea Actions
cf4ac014df chore: bump version to 0.2.24 [skip ci] 2026-03-22 23:25:48 +00:00
Gitea Actions
a53da4f797 chore: bump version to 0.2.23 [skip ci] 2026-03-22 22:27:26 +00:00
Gitea Actions
a02a6bb441 chore: bump version to 0.2.22 [skip ci] 2026-03-22 19:06:30 +00:00
Gitea Actions
f022c6dfe0 chore: bump version to 0.2.21 [skip ci] 2026-03-22 19:03:34 +00:00
Gitea Actions
5af27f379d chore: bump version to 0.2.20 [skip ci] 2026-03-22 18:49:49 +00:00
Gitea Actions
4da40fc5fd chore: bump version to 0.2.19 [skip ci] 2026-03-22 18:00:07 +00:00
Claude
2e7a5819bc Fix CSP for blob URLs + fix pyannote AudioDecoder with torchaudio patch
All checks were successful
Build Sidecars / Bump sidecar version and tag (push) Successful in 4s
Release / Bump version and tag (push) Successful in 3s
Build Sidecars / Build Sidecar (macOS) (push) Successful in 3m25s
Release / Build App (macOS) (push) Successful in 1m26s
Build Sidecars / Build Sidecar (Linux) (push) Successful in 14m31s
Release / Build App (Linux) (push) Successful in 3m50s
Build Sidecars / Build Sidecar (Windows) (push) Successful in 27m7s
Release / Build App (Windows) (push) Successful in 3m26s
CSP: Add blob: to connect-src/img-src/media-src for wavesurfer.js audio
playback. Add http://tauri.localhost to default-src for devtools.

pyannote: sys.modules block didn't work — pyannote still uses AudioDecoder
unconditionally. New approach: monkey-patch Audio.__call__ in diarize.py
to use torchaudio.load() directly, bypassing the broken torchcodec path.
Patch runs once before pipeline loading.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-22 10:59:54 -07:00
Gitea Actions
31044b9ad2 chore: bump version to 0.2.18 [skip ci] 2026-03-22 17:56:00 +00:00
Claude
7f1fa1904c Make DevTools a toggle in Settings > Developer tab
Some checks failed
Release / Bump version and tag (push) Successful in 7s
Release / Build App (macOS) (push) Successful in 1m17s
Release / Build App (Windows) (push) Successful in 3m29s
Release / Build App (Linux) (push) Has been cancelled
- DevTools off by default (no more auto-open on launch)
- New "Developer" tab in Settings with a checkbox to toggle devtools
- Toggle takes effect immediately (opens/closes inspector)
- Setting persists: devtools restored on next launch if enabled
- toggle_devtools Tauri command wraps window.open/close_devtools

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-22 10:55:50 -07:00
Gitea Actions
33443c8b00 chore: bump version to 0.2.17 [skip ci] 2026-03-22 16:54:37 +00:00
Claude
db770c341d Fix CSP blocking IPC/assets + fix pyannote AudioDecoder crash
All checks were successful
Build Sidecars / Bump sidecar version and tag (push) Successful in 9s
Release / Bump version and tag (push) Successful in 5s
Build Sidecars / Build Sidecar (macOS) (push) Successful in 3m37s
Release / Build App (macOS) (push) Successful in 1m16s
Build Sidecars / Build Sidecar (Linux) (push) Successful in 14m3s
Release / Build App (Linux) (push) Successful in 4m45s
Build Sidecars / Build Sidecar (Windows) (push) Successful in 24m32s
Release / Build App (Windows) (push) Successful in 3m12s
CSP: Add connect-src for ipc.localhost and asset.localhost so Tauri IPC
commands and local file loading (waveform, audio playback) work.

pyannote: Block torchcodec in sys.modules at startup so pyannote.audio
falls back to torchaudio for audio decoding. pyannote has a bug where
it uses AudioDecoder unconditionally even when torchcodec import fails.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-22 09:54:21 -07:00
Gitea Actions
4160202ad7 chore: bump version to 0.2.16 [skip ci] 2026-03-22 16:27:25 +00:00
Claude
e2c5db89b6 Enable devtools in release builds + add frontend logging
All checks were successful
Release / Bump version and tag (push) Successful in 3s
Release / Build App (macOS) (push) Successful in 1m16s
Release / Build App (Linux) (push) Successful in 4m30s
Release / Build App (Windows) (push) Successful in 3m20s
- Enable Tauri devtools feature so right-click Inspect works in release
- Open devtools automatically on launch for debugging
- Add log_frontend command: frontend can write to ~/.voicetonotes/frontend.log
- Sidecar logs go to %LOCALAPPDATA%/com.voicetonotes.app/sidecar.log
- Frontend logs go to %USERPROFILE%/.voicetonotes/frontend.log

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-22 09:16:29 -07:00
Gitea Actions
25e4ceaec9 chore: bump version to 0.2.15 [skip ci] 2026-03-22 16:13:22 +00:00
Gitea Actions
c783cde882 chore: bump version to 0.2.14 [skip ci] 2026-03-22 15:53:42 +00:00
Claude
fffd727d30 Add bytes crate dependency for reqwest stream chunks
All checks were successful
Release / Bump version and tag (push) Successful in 5s
Release / Build App (macOS) (push) Successful in 1m18s
Release / Build App (Windows) (push) Successful in 3m22s
Release / Build App (Linux) (push) Successful in 4m51s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-22 08:53:36 -07:00
Gitea Actions
ded8f8a4e0 chore: bump version to 0.2.13 [skip ci] 2026-03-22 15:46:41 +00:00
Claude
45247ae66e Decouple sidecar versioning from app versioning
Some checks failed
Build Sidecars / Bump sidecar version and tag (push) Successful in 3s
Release / Bump version and tag (push) Failing after 3s
Release / Build App (Linux) (push) Has been skipped
Release / Build App (Windows) (push) Has been skipped
Release / Build App (macOS) (push) Has been skipped
Build Sidecars / Build Sidecar (macOS) (push) Successful in 5m28s
Build Sidecars / Build Sidecar (Linux) (push) Successful in 13m54s
Build Sidecars / Build Sidecar (Windows) (push) Successful in 37m38s
Sidecar now has its own version (1.0.0) and release lifecycle:
- Sidecar tags: sidecar-v1.0.0, sidecar-v1.0.1, etc.
- App tags: v0.2.x (unchanged)
- Sidecar workflow triggers only on python/** changes or manual dispatch
- App release no longer bumps python/pyproject.toml

Sidecar version tracked via sidecar-version.txt in app data dir:
- resolve_sidecar_path() reads version from file instead of CARGO_PKG_VERSION
- download_sidecar() fetches latest sidecar-v* release from Gitea API
- check_sidecar_update() compares local vs remote sidecar versions
- Version file written after successful download

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-22 07:57:51 -07:00
Claude
9652290a06 Split CI into app + sidecar workflows, fix reqwest compilation
Some checks failed
Build Sidecars / Build Sidecar (macOS) (push) Successful in 3m39s
Release / Bump version and tag (push) Has been cancelled
Release / Build App (Linux) (push) Has been cancelled
Release / Build App (Windows) (push) Has been cancelled
Release / Build App (macOS) (push) Has been cancelled
Build Sidecars / Build Sidecar (Windows) (push) Has been cancelled
Build Sidecars / Build Sidecar (Linux) (push) Has been cancelled
CI split:
- release.yml: version bump + lightweight app builds (no Python/sidecar)
- build-sidecar.yml: builds CPU + CUDA sidecar variants per platform,
  uploads as separate release assets, runs in parallel with app builds
- Sidecar workflow uses retry loop to find release (race with version bump)

Fixes:
- Add reqwest "json" feature for .json() method
- Add explicit type annotations for reqwest Response and bytes::Bytes
- Reuse client instance for download (was using reqwest::get directly)

Bundle targets: deb, rpm, nsis, msi, dmg (all formats, app is small now)
Windows upload finds both *.msi and *-setup.exe

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-22 07:50:55 -07:00
Gitea Actions
5947ffef66 chore: bump version to 0.2.12 [skip ci] 2026-03-22 14:09:28 +00:00
Claude
7fa903ad01 Download sidecar on first launch instead of bundling
Some checks failed
Release / Bump version and tag (push) Successful in 13s
Release / Build (macOS) (push) Failing after 4m55s
Release / Build (Windows) (push) Failing after 14m58s
Release / Build (Linux) (push) Failing after 17m18s
Major refactor: sidecar is no longer bundled in the installer. Instead,
it's downloaded on first launch with a setup screen offering CPU vs CUDA
choice. This solves the 2GB+ installer size limit and decouples app/sidecar.

Backend:
- New commands: check_sidecar, download_sidecar, check_sidecar_update
- Streaming download with progress events via reqwest
- Added reqwest + futures-util dependencies
- Removed sidecar.zip from bundle resources
- Restored NSIS target (no longer size-constrained)

CI:
- Each platform builds both CPU and CUDA sidecar variants (except macOS: CPU only)
- Sidecar zips uploaded as separate release assets
- Asset naming: sidecar-{os}-{arch}-{variant}.zip

Frontend:
- SidecarSetup.svelte: first-launch setup with CPU/CUDA radio choice,
  progress bar, error/retry handling
- Update banner on launch if newer sidecar version available
- Conditional rendering: setup screen → main app flow

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-22 07:09:10 -07:00
Gitea Actions
1b706a855b chore: bump version to 0.2.11 [skip ci] 2026-03-22 13:35:22 +00:00
Claude
70b6b5f1ed Add RPM target for Linux, install 7z fallback on Windows
Some checks failed
Release / Bump version and tag (push) Successful in 3s
Release / Build (macOS) (push) Successful in 5m2s
Release / Build (Windows) (push) Failing after 8m12s
Release / Build (Linux) (push) Has been cancelled
- Add rpm to bundle targets and install rpm on Linux CI
- Upload both .deb and .rpm from Linux build
- Install 7-Zip via choco if not already available on Windows runner

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-22 06:35:12 -07:00
Gitea Actions
67d3325532 chore: bump version to 0.2.10 [skip ci] 2026-03-22 13:33:25 +00:00
Claude
024efccd42 Fix Windows CUDA build: replace Compress-Archive and drop NSIS
Some checks failed
Release / Bump version and tag (push) Successful in 4s
Release / Build (Windows) (push) Has been cancelled
Release / Build (macOS) (push) Has been cancelled
Release / Build (Linux) (push) Has been cancelled
- Replace Compress-Archive (2GB limit) with 7z for sidecar packaging
- Remove NSIS from bundle targets — NSIS has a 2GB per-file limit that
  breaks with CUDA-sized sidecar.zip; MSI (WiX) handles large files
  by splitting into multiple CABs
- Update Windows upload to look for .msi only

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-22 06:33:08 -07:00
Gitea Actions
7c814805f3 chore: bump version to 0.2.9 [skip ci] 2026-03-22 13:14:43 +00:00
Gitea Actions
5311b19fdc chore: bump version to 0.2.8 [skip ci] 2026-03-22 12:56:13 +00:00
Claude
8f6e1108cc Enable CUDA for Windows/Linux builds + clean up old sidecars
Some checks failed
Release / Bump version and tag (push) Successful in 16s
Release / Build (macOS) (push) Successful in 4m51s
Release / Build (Linux) (push) Failing after 15m36s
Release / Build (Windows) (push) Has been cancelled
- Windows and Linux sidecar builds now use --with-cuda for GPU acceleration
  (macOS stays CPU-only — Apple Silicon uses Metal, not CUDA)
- Windows upload switched from --data-binary to -T streaming for 2GB+ files
- Add cleanup_old_sidecars() that removes stale sidecar-* directories on
  startup, keeping only the current version
- Add NSIS uninstall hook to remove sidecar data dir on Windows uninstall
  (user data in ~/.voicetonotes is preserved)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-22 05:55:55 -07:00
Gitea Actions
fcbe1afd0c chore: bump version to 0.2.7 [skip ci] 2026-03-22 12:37:00 +00:00
Gitea Actions
2be5024de7 chore: bump version to 0.2.6 [skip ci] 2026-03-22 03:48:06 +00:00
Gitea Actions
68ae48a771 chore: bump version to 0.2.5 [skip ci] 2026-03-22 03:23:01 +00:00
Gitea Actions
ef1481b359 chore: bump version to 0.2.4 [skip ci] 2026-03-22 01:37:55 +00:00
Claude
ba3d5c3997 Fix sidecar.log not created: ensure data dir exists
All checks were successful
Release / Bump version and tag (push) Successful in 3s
Release / Build (Linux) (push) Successful in 7m47s
Release / Build (macOS) (push) Successful in 30m20s
Release / Build (Windows) (push) Successful in 36m45s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-21 18:37:49 -07:00
Gitea Actions
9a6ea84637 chore: bump version to 0.2.3 [skip ci] 2026-03-21 21:46:10 +00:00
Claude
011ff4e178 Fix sidecar crash recovery and Windows console window
All checks were successful
Release / Bump version and tag (push) Successful in 3s
Release / Build (macOS) (push) Successful in 4m40s
Release / Build (Linux) (push) Successful in 7m34s
Release / Build (Windows) (push) Successful in 17m2s
- Fix is_running() to check actual process liveness via try_wait()
  instead of just checking if the handle exists
- Auto-restart sidecar on pipe errors (broken pipe, closed stdout)
  with one retry attempt
- Hide sidecar console window on Windows (CREATE_NO_WINDOW flag)
- Log sidecar stderr to sidecar.log file for crash diagnostics
- Include exit status in error message when sidecar fails to start

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-21 14:46:01 -07:00
Gitea Actions
d2d111a5c7 chore: bump version to 0.2.2 [skip ci] 2026-03-21 18:56:14 +00:00
Gitea Actions
9033881274 chore: bump version to 0.2.1 [skip ci] 2026-03-21 18:53:23 +00:00