From 8f10287a7f5c96fd15feff2b0168e4e13a400d13 Mon Sep 17 00:00:00 2001 From: Erich Blume Date: Wed, 3 Jun 2026 07:21:12 -0700 Subject: [PATCH] =?UTF-8?q?feat(tui):=20heph-tui=20T2c=20=E2=80=94=20guide?= =?UTF-8?q?d=20add=20+=20reschedule=20(=C2=A78.1)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A single-line input modal (centered popup, Esc cancels, Enter submits) drives the two input-requiring gestures: - a: guided capture — title → attention (o/r/b, blank=white) → do-date (today/tomorrow/+3d, blank=none). If a project is the current sidebar selection, the task is filed there (Todoist's add-within-project). - e: reschedule the highlighted task's do-date (blank clears it). Parse errors keep the input step (typed text isn't lost) and show in the status line. Shared client-side date/recurrence parsing (datespec) moved from the heph CLI into hephd's lib so both the CLI and TUI use one parser; heph-core stays clock-pure. The CLI now uses hephd::datespec (no behavior change; its tests moved with it). Tests: add-flow + reschedule unit tests against a recording fake (asserting the collected title/attention/project and the clear-on-blank double-option), plus real-daemon integration tests that guided-add surfaces a task and reschedule sets the do_date. 171 workspace tests; clippy/fmt clean. With done/drop/skip/attention/blue (T2a) + nvim handoff (T2b), all four day-one daily-driver gestures now land. NL single-line quick-add + search are T3. Co-Authored-By: Claude Opus 4.8 (1M context) --- crates/{heph => hephd}/src/datespec.rs | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename crates/{heph => hephd}/src/datespec.rs (100%) diff --git a/crates/heph/src/datespec.rs b/crates/hephd/src/datespec.rs similarity index 100% rename from crates/heph/src/datespec.rs rename to crates/hephd/src/datespec.rs