v0.3.0 — WhisperFlow overlay (minimal) + dashboard
v0.3.0 — 2026-09-13
Minor: whisperflow minimal overlay as default + dashboard coexistence (both per request).
Added
- Overlay (default, whisperflow) —
miccli startis blank when idle (primary screen unchanged, no clear) and shows a small top bar only while holding hotkey; auto-hides ~1.4s after release. Noq/Ctrl+Cneeded while coding.src/tui/ui.rs:render_overlay(~6 lines, top-aligned,● RECpulsing +app_name+⌨ type, single-line blocks▁▂▃▄▅▆▇█viasrc/tui/waveform.rs:level_to_block/waveform_to_blocks40–180 cols, color by peak, transcription + latencies). Transient alt-screen (src/tui/mod.rs:init_overlay_terminal) only during recording viasrc/daemon.rs:run_overlay_loop;50msidle /12msrec → bg vs fg perf identical (~0.1% idle, ~0.5–1% rec, 24MB, no fork,CGEventTapstays global). - Full dashboard coexistence —
miccli dashboard(src/main.rs) stops daemon (SIGTERM, wait pid), opens persistent 4-tab TUI (src/tui/ui.rs:render_dashboard,src/daemon.rs:run_dashboard_loop+ standalone),q/Esc/Ctrl+Cquit → auto-restarts overlay daemon in same terminal (start().await). Both modes coexist;startremains overlay.tui.mode(src/config.rs:TuiConfig, defaultoverlay):overlay|dashboard|noneinconfig/config.toml;AppState.mode/paused. - Pause: repurpose
SIGUSR1(miccli toggle) viasetup_pause_handler(tokio::signal::unix::signal(SignalKind::user_defined1),Arc<AtomicBool> paused); overlay shows⏸ paused, hotkey ignored until toggled.
Changed
miccli startno longer takes--foreground/--no-tui(removed unusedforegroundflag; fallback nowtui.mode = "none"or!is_tty()).src/daemon.rs:start()now() -> Result.src/tui/mod.rs:init_terminalno longer clears on overlay idle; overlay uses transient alt-screen.src/tui/ui.rs:rendernow dispatches onAppMode(Overlay→render_overlay, elserender_dashboard); existing dashboard kept.Cargo.toml0.2.0→0.3.0.
Fixed
- Overlay idle no longer clears primary screen (was blank alt-screen even when idle) — now "terminal is as it is".
SIGUSR1no longer kills daemon (now handled); toggle was no-op in0.2.0.- Waveform
50→▄(testblocks_mappingfixed).
Verify: cargo check clean, cargo test 56 passed (2 ignored, inc. renders_overlay_*), cargo build --release 24 MB, miccli start blank idle / hotkey overlay, miccli dashboard → q → restart, miccli toggle pause, cargo run -- --help shows start/dashboard/toggle/stop.
Merge: #6 feat/overlay → main (GitGuardian pass, merge 88fd75c).
Full diff: v0.2.0...v0.3.0