Commit Graph

76 Commits

Author SHA1 Message Date
jake
ddf93ae0ac fix(ui): fix case mismatch in isModelDownloaded preventing model detection
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>
2026-03-21 16:44:17 +00:00
jake
ca8555f6ad fix(build): add /FORCE:MULTIPLE for ggml duplicate symbol collision
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>
2026-03-21 15:49:38 +00:00
jake
0685428c90 feat(ui): add export section to SettingsPage with directory picker and format selection
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>
2026-03-21 15:20:42 +00:00
jake
eace0e88c3 feat(export): add Tauri commands for transcript, task, and Obsidian export
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>
2026-03-21 15:20:38 +00:00
jake
d56c37d9b6 feat(ui): add MicroSteps component with expandable micro-steps in WipTaskList
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 14:48:43 +00:00
jake
954f83d2f4 feat(tasks): add decompose_and_store, list_subtasks, complete_subtask commands
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 14:46:36 +00:00
jake
c61f0585e0 feat(storage): add parent_task_id migration for micro-stepping
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 14:43:06 +00:00
jake
b1fa2739b7 feat(llm): add kon-llm crate with llama-cpp-2 inference, model management, and Tauri commands
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 14:15:46 +00:00
jake
2fc4ee7087 feat(timer): wire VisualTimer to tasks with notifications and persistence
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 13:59:12 +00:00
jake
f1ef171acb feat(history): migrate history to SQLite with FTS5 search
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 13:34:43 +00:00
jake
6d8597e9ea feat(tasks): migrate task store from localStorage to SQLite backend
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 13:00:52 +00:00
jake
7a9a034e3a feat(tasks): add Tauri commands for full task CRUD with WIP limit enforcement
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 12:53:06 +00:00
jake
13456e1fb6 feat(history): add Tauri commands for transcript persistence and FTS5 search
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 12:47:28 +00:00
jake
d79ad40b33 feat(storage): add migration v2 — task fields, FTS5 search, timer state
- Migration v2: adds priority, project, status, updated_at, sort_order, notes columns to tasks table
- FTS5 virtual table on transcripts with insert/update/delete triggers for automatic index sync
- Timer state table for persisting active countdown timers across app restarts
- New database functions: insert_task_v2, update_task_v2, reorder_tasks, list_tasks_by_status, search_transcripts, save/get/clear_timer_state
- TimerStateRow type for timer persistence
- Extended TaskRow with v2 fields
- Fixed migration runner to handle BEGIN...END blocks in CREATE TRIGGER statements
- All 11 tests passing, Tauri app compiles cleanly
2026-03-21 12:38:43 +00:00
jake
103585d7ea feat(plan): add Phase 2 functional MVP implementation plan
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 12:10:26 +00:00
jake
017425d976 feat(docs): add brief and brand reference docs to phase-2 branch
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 12:01:50 +00:00
jake
1933604176 agent: files — restyle with brand tokens and empty state
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 11:04:06 +00:00
jake
5caf886252 agent: history — restyle with brand tokens and empty state
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 11:04:06 +00:00
jake
3f69543f73 agent: tasks — restyle with WIP limits, manual input
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 11:04:06 +00:00
jake
85d34f234b agent: firstrun — restyle with brand voice, progressive disclosure
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 11:04:06 +00:00
jake
01f6e42346 agent: settings — restyle with zone picker and accessibility controls
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 11:04:06 +00:00
jake
73851bdda9 agent: dictation — restyle with brand identity, Lucide icons, empty states
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 11:04:05 +00:00
jake
5f05e25b74 agent: windows — apply brand tokens and preferences to secondary windows
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 10:56:00 +00:00
jake
3a633d1510 agent: cleanup — delete Profiles page (dead code)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 10:53:53 +00:00
jake
2118fa6c6b agent: sidebar — restyle with Lucide icons, labels, and collapsed tooltips
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 10:51:56 +00:00
jake
4c0fd0aeda agent: foundation — sync incremental changes from legacy codebase
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 10:50:32 +00:00
jake
387e7d7acc agent: deps — add lucide-svelte for icon migration
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 10:50:32 +00:00
jake
c2cfa6b504 agent: textures — add grain texture PNG tile for background overlay
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 10:49:40 +00:00
jake
7cc51d9c26 agent: fonts — bundle font files as static assets for offline use
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 10:49:40 +00:00
jake
4e82788725 agent: a11y — add bionic reading Svelte action using safe DOM manipulation
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 10:46:54 +00:00
jake
32677e785b agent: components — add WIP task list and visual timer components
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 10:46:53 +00:00
jake
5ba4606de9 agent: components — add accessibility controls panel
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 10:46:53 +00:00
jake
ea99b4285d agent: components — add sensory zone picker with live preview
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 10:46:53 +00:00
jake
1e6e22d455 agent: components — add shared EmptyState component
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 10:46:53 +00:00
jake
4bbe9a0a84 agent: components — restyle Card, Toggle, SegmentedButton with brand tokens
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 10:44:49 +00:00
jake
f1a9fe8383 agent: titlebar — restyle with brand tokens, add compact variant
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 10:44:49 +00:00
jake
c5164c292f agent: layout — wire preferences store to layout, replace class-based theme toggle
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 10:43:28 +00:00
jake
fa7e812166 agent: rust — add preferences webview injection for zero-flash hydration
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 10:41:44 +00:00
jake
c3a01d217d agent: tokens — align tokens to brand guidelines, bundle fonts, add zones and motion tokens
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 10:37:04 +00:00
jake
49aa943d8e agent: store — add preferences store with DOM sync and SQLite persistence
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 10:35:09 +00:00
jake
420d0138a2 agent: icons — icon audit mapping table for Lucide migration
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 10:34:12 +00:00
jake
2ab34eb15a refactor(kon): settings page — collapsible sections, first section open by default
- 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>
2026-03-17 02:29:49 +00:00
jake
ac0aeff676 refactor(kon): dictation page layout — compact control strip, toolbar, more transcript space
- 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>
2026-03-17 02:28:46 +00:00
jake
4d962adea6 refactor(kon): history page — compact list view with expand-to-detail
- 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>
2026-03-17 02:28:41 +00:00
jake
3f6d718bb2 feat(kon): collapsible sidebar — toggle with [ key, auto-collapse below 900px, icons-only mode
- 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>
2026-03-17 02:26:08 +00:00
jake
4bfc4c1374 refactor(kon): standardise page padding — pt-6 px-7 pb-5, tighter task cards
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 02:22:18 +00:00
jake
3eb14d004d feat(kon): add semantic HTML and ARIA labels — main wrapper, live regions, button labels
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 02:20:21 +00:00
jake
b0f7c544a9 fix(kon): improve focus ring — 3px offset, uses radius token
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 02:19:30 +00:00
jake
59e8cbf3da feat(kon): add prefers-reduced-motion support — disables all animations globally
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 02:19:04 +00:00
jake
90b01b89a1 fix(kon): bump tertiary text contrast to WCAG AA — #716b60 dark, #8a8578 light
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 02:18:41 +00:00