Skip to content

v0.3.0 — WhisperFlow overlay (minimal) + dashboard

Choose a tag to compare

@AkashJana18 AkashJana18 released this 13 Sep 12:26
· 12 commits to main since this release
88fd75c

v0.3.0 — 2026-09-13

Minor: whisperflow minimal overlay as default + dashboard coexistence (both per request).

Added

  • Overlay (default, whisperflow) — miccli start is blank when idle (primary screen unchanged, no clear) and shows a small top bar only while holding hotkey; auto-hides ~1.4s after release. No q/Ctrl+C needed while coding. src/tui/ui.rs:render_overlay (~6 lines, top-aligned, ● REC pulsing + app_name + ⌨ type, single-line blocks ▁▂▃▄▅▆▇█ via src/tui/waveform.rs:level_to_block/waveform_to_blocks 40–180 cols, color by peak, transcription + latencies). Transient alt-screen (src/tui/mod.rs:init_overlay_terminal) only during recording via src/daemon.rs:run_overlay_loop; 50ms idle / 12ms rec → bg vs fg perf identical (~0.1% idle, ~0.5–1% rec, 24MB, no fork, CGEventTap stays 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+C quit → auto-restarts overlay daemon in same terminal (start().await). Both modes coexist; start remains overlay. tui.mode (src/config.rs:TuiConfig, default overlay): overlay | dashboard | none in config/config.toml; AppState.mode/paused.
  • Pause: repurpose SIGUSR1 (miccli toggle) via setup_pause_handler (tokio::signal::unix::signal(SignalKind::user_defined1), Arc<AtomicBool> paused); overlay shows ⏸ paused, hotkey ignored until toggled.

Changed

  • miccli start no longer takes --foreground/--no-tui (removed unused foreground flag; fallback now tui.mode = "none" or !is_tty()). src/daemon.rs:start() now () -> Result. src/tui/mod.rs:init_terminal no longer clears on overlay idle; overlay uses transient alt-screen.
  • src/tui/ui.rs:render now dispatches on AppMode (Overlay → render_overlay, else render_dashboard); existing dashboard kept.
  • Cargo.toml 0.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".
  • SIGUSR1 no longer kills daemon (now handled); toggle was no-op in 0.2.0.
  • Waveform 50 → ▄ (test blocks_mapping fixed).

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