generated from eblume/project-template
A macOS global quick-capture popover to retire Todoist. New `heph-quickadd` crate: an always-warm eframe/egui agent that registers ⌘' (global-hotkey, Carbon — no Accessibility permission) and toggles a hidden, pre-created window visible + focused on press — never spawning on the keypress, so it's a muscle reflex. A single field live-parses Todoist-style inline syntax via the shared parser; chips show ⚑ attention · 📁 project · ⏰ do-date · ↻ recurrence as you type. Enter saves optimistically (hide now, task.create on a bg thread; a failed RPC re-shows with the text restored). #project autocomplete (Tab/↑↓/click; focus-locked so Tab completes instead of traversing). Example hints rotate, fading in only after ~2s idle. Parser lifted from heph-tui into hephd's lib (hephd::quickadd) so the TUI and the popover share one parser. hephd supervises the helper as a child in local mode on macOS (opt-in HEPH_QUICKADD=1, set by the installed launchd plist) — one service to manage, no second launch agent; the helper self-exits when orphaned so killing hephd leaves nothing behind. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1.8 KiB
1.8 KiB
heph-quickadd(§8) — a global quick-capture popover, the last piece needed to retire Todoist. A tiny always-warmeframe/eguiagent registers ⌘' system-wide (global-hotkey, via Carbon — no Accessibility permission) and, on press, toggles an already-created hidden window visible and focuses a single capture field — never spawning on the keypress, so it's a muscle-reflex (design §6.2.1). The field reuses the sharedquickadd::parse(lifted fromheph-tuiintohephd's lib so both surfaces share one parser): one line likeCall dentist fri p1 #Healthparses live into title + attention (p1–p4) + do-date + recurrence + project, shown as a chip row (⚑ attention · 📁 project · ⏰ do-date · ↻ recurrence) as you type. Enter saves optimistically — the window hides instantly andtask.createruns on a background thread, so perceived latency is just the keystroke; a failed RPC re-shows the window with the text restored, so a capture is never lost. Esc dismisses.- Supervision (no second launch agent): hephd supervises
heph-quickaddas a child in local mode on macOS (opt-in viaHEPH_QUICKADD=1, which the installed launchd plist now sets — dev/test runs that spawn a local daemon never pop a window). hephd already runs as agui/$uidLaunchAgent, so the child inherits the Aqua session the hotkey/GUI need, and the user still installs/manages exactly one service (heph daemon). The helper self-exits when orphaned (its parent daemon gone) and exits if ⌘' is already held, so killing hephd — evenkill -9— leaves nothing behind and duplicates never stack. Runs as a macOS accessory app (no Dock icon). macOS-only for v1;global-hotkey+eguialso run on Linux/X11, so the Linux port is mostly window-behavior polish.