list_models returns capitalized names ("Base") but isModelDownloaded
compared with toLowerCase ("base"), so already-downloaded models were
never recognized. Use case-insensitive comparison instead.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
whisper-rs-sys and llama-cpp-sys-2 both bundle ggml statically, causing
LNK2005/LNK1169 on MSVC. This flag tells the linker to accept duplicates.
TEMPORARY: replace with shared system ggml or process separation before release.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Export Your Data section with three buttons: Export Transcriptions (MD/TXT),
Export Tasks (JSON/CSV), and Export to Obsidian. Each opens a directory picker
and shows status on completion.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Three new commands: export_transcriptions (MD/TXT), export_tasks (JSON/CSV),
and export_to_obsidian (MD with wikilinks and checklists). All write plain
text files to a user-selected directory.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Consolidated 7 separate Card components into a single Card with 8 accordion sections
- Added openSection $state variable; 'transcription' open by default, others collapsed
- Each section header is a clickable button with +/− indicator; clicking open section closes it
- Section headings use font-display italic 18px (vs 26px page title) as accordion headers
- All existing functionality preserved: toggles, dropdowns, model download/load, profiles, templates, hotkey recorder, output folder picker
- Profiles & Templates remain as nested accordion-within-accordion (existing pattern kept)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Replaced tall header (pt-6 pb-4 with 28px timer + label stack) with 56px control strip
- Control strip: 40px record button + waveform placeholder + 20px timer + status badge + task toggle
- Waveform placeholder shows animated bars during recording, hint text at idle
- Actions moved to dedicated toolbar row (justify-end) below control strip
- Status footer (word count, format mode, profile) moved inside transcript Card
- Insert-at-cursor indicator relocated to status footer
- Page container remains flex-col h-full; transcript area fills all remaining space
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Replace card-per-entry layout with single-line rows (title truncated, duration, source icon, date, chevron)
- Add expand/collapse per row via expandedId $state (id-based, one at a time)
- Expanded detail shows full transcript, audio player (when active), and action buttons (Rename, Copy, Open viewer, Delete)
- All existing functionality preserved: search, playback, rename, delete, openViewer, clearAll
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Add sidebarCollapsed to settings defaults (persists via localStorage on saveSettings)
- Sidebar collapses to 48px icons-only view with smooth 200ms transition
- Toggle button (chevron) at top of nav; [ keyboard shortcut in layout (input-safe)
- Auto-collapse on window resize below 900px (checked on mount and on resize event)
- Titlebar left spacer tracks sidebar width reactively (48px / 210px)
- All labels, profile selector, status text hidden in collapsed mode; nav items show tooltips via title attribute
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>