Commit Graph
75 Commits
Author SHA1 Message Date
iamdoubz 6dc68ac92c feat(ui): summary generation + action-item confirmation in the meetings store (T7.1)
Streams tokens for whichever meeting is generating (gated by
summarizingId so a stale stream can't clobber a summary if the user
switches selection mid-generation), and refreshes the selected meeting
once llm://done or confirm_action_items lands.
2026-07-02 07:45:03 -05:00
iamdoubz 075eec6a95 feat(ui): add summary/action-item types + errorMessage() helper (T7.1, FR-LLM-2/3/4)
Types for SummaryFile/ActionItem/LlmStatus and a confirmActionItems
wrapper + onLlmDone listener, so the frontend can consume what
generate_summary/confirm_action_items already produce on the backend.

Also adds errorMessage(): every backend command rejects with
{ kind, message } (see src-tauri/src/error.rs), not a native Error, so
`e instanceof Error` is always false for it and `String(e)` renders as
the literal text "[object Object]" — found by actually clicking
"Generate summary" against an unreachable Ollama endpoint.
2026-07-02 07:44:56 -05:00
iamdoubz b2d423e3ec refactor(ui): use the shared renderMarkdown() in TranscriptNotes (T7.1) 2026-07-02 07:44:47 -05:00
iamdoubz 4609d93faf refactor(ui): extract shared sanitized-Markdown renderer (T7.1)
Notes and LLM-generated summaries both render untrusted Markdown via
{@html} into a webview with an IPC bridge to the Rust backend, so the
DOMPurify sanitization step is a real security boundary, not cosmetic —
worth one shared implementation instead of a second inline copy that
could drift out of sync.
2026-07-02 07:44:41 -05:00
iamdoubz d94472f476 fix(ui): label the symbol-only notes-toolbar buttons (T7.5, FR-UX-4)
Bold/Italic/Bullet-list/Checkbox buttons rendered a bare glyph with
only a title tooltip; add matching aria-label so a screen reader
announces the action rather than the raw Unicode character name.
2026-07-02 07:31:07 -05:00
iamdoubz 6629b692ca fix(ui): add accessible name to the meetings search input (T7.5, FR-UX-4)
A placeholder isn't a reliable accessible name (it disappears on input
and isn't consistently exposed) — add an explicit aria-label.
2026-07-02 07:31:00 -05:00
iamdoubz 8d1a0047ee feat(ui): trap focus in the Settings dialog (T7.5, FR-UX-4) 2026-07-02 07:30:54 -05:00
iamdoubz 90e59ee186 feat(ui): add trapFocus action for modal dialogs (T7.5, FR-UX-4)
Moves focus into the dialog on mount, cycles Tab/Shift+Tab within its
focusable elements, and restores focus to whatever had it before the
dialog opened once it closes.
2026-07-02 07:30:48 -05:00
iamdoubz ff5144e9f0 feat(ui): add LevelMeter component + device notice in the header (T7.3, FR-CAP-5/6)
A simple rms-fill + peak-marker bar rather than a scrolling waveform —
either satisfies the requirement with far less state. Shows a warning
banner while a capture device reconnect is in progress.
2026-07-01 21:09:54 -05:00
iamdoubz 9df6331ecb feat(ui): track live level + device notice in the recording store (T7.3) 2026-07-01 21:09:48 -05:00
iamdoubz 4419f7bd5f feat(ui): type recording://level/device events (T7.3) 2026-07-01 21:09:43 -05:00
iamdoubz 5a1b5ee0d1 fix(ui): use themed status-color tokens in Settings (T7.2, FR-UX-2)
Same dark-theme contrast fix as MeetingsList — danger/success text and
the third-party banner now use --danger/--success instead of fixed hex.
2026-07-01 17:20:43 -05:00
iamdoubz c0e7280853 fix(ui): use themed status-color tokens in MeetingsList (T7.2, FR-UX-2)
Fixed hex colors for live/recovering/error badges failed contrast
against the dark palette; switch to --danger/--warning/--muted.
2026-07-01 17:20:38 -05:00
iamdoubz a2c2516d9d feat(privacy): add Privacy tab to Settings (T7.6, FR-SEC-2)
Shows the LLM endpoint's local/remote status, sync enabled state, the
derived egress allowlist, and enabled sync targets with third-party/TLS
labeling, so the UI can prove local-only handling to the user.
2026-07-01 17:12:53 -05:00
iamdoubz bf863d7bb1 feat(privacy): load and refresh privacy_self_check in the settings store (T7.6)
Fetches the privacy snapshot on load and after any mutation that could
change it (LLM/settings patch, sync enable/target changes).
2026-07-01 17:12:47 -05:00
iamdoubz 899f15fac6 feat(privacy): add PrivacySelfCheck type to the typed Tauri client (T7.6) 2026-07-01 17:12:40 -05:00
iamdoubz 8ac92aae2f Build pre-meeting context panel and attendee-aware speaker naming (T6.4/T6.5) 2026-07-01 15:08:02 -05:00
iamdoubz 30edfa17d2 Add Calendar tab for PST import and browsing imported events (T6.3) 2026-07-01 15:07:58 -05:00
iamdoubz f6be9645b8 Add attachEvent/renameSpeaker/mapSpeaker methods backing the new calendar UI 2026-07-01 15:07:54 -05:00
iamdoubz 6d16e6707f Add calendar store for imported events and PST import progress state 2026-07-01 15:07:47 -05:00
iamdoubz 28225b7513 Add typed wrappers for calendar commands and pst progress event (T6.3-T6.5) 2026-07-01 15:07:43 -05:00
iamdoubz ba48f0afc2 Phase 3 2026-06-30 23:53:33 -05:00
iamdoubz f9b172aff4 Phase 2 2026-06-30 23:18:29 -05:00
iamdoubz 02834e9cd2 Phase 1 2026-06-30 22:17:30 -05:00
iamdoubz aae22a0e23 Add all scaffolding, design, and decision documentation AKA first commit 2026-06-30 16:12:55 -05:00