feat(activity): add the TUI time range picker #310

Merged
kfickel merged 2 commits from 282_activity-range-overlay into main 2026-10-20 17:01:53 +02:00
Collaborator

Closes #282.

Pressing t in an activity dashboard now opens a modal range picker instead of reporting “not available yet.” Edit the current range with a cursor or choose a quick pick; resolved dates and an inclusive day count update as you type. Invalid input shows the core error and stays editable. Enter applies a valid range as a new root; Esc preserves the dashboard's navigation and mixed-day setting.

The overlay uses the core parser and quick picks, resolving “all” with the stream's tracking start. It supports character-safe insertion/deletion, horizontal input scrolling, wrapped previews/errors and a quick-pick viewport for short terminals. Dashboard shortcuts type into the field and command switching is suppressed while it is open; Ctrl-C retains its global behaviour.

Added pure editor/navigation tests, front-end modal routing coverage, six normal/narrow text snapshots and tiny-terminal cursor checks. Updated README.md, R36a and AGENTS.md.

Validation:

  • Workspace tests and all-target Clippy with warnings denied passed.
  • Commit hooks: tests, Clippy, rustfmt and Conventional Commit checks passed.
  • Terminal smoke test: drill down, edit invalid text, invalid Enter, cancel, select a quick pick, apply and verify the previous parent stack is cleared.
  • nix flake check passed on x86_64-linux, including 1,708 Rust tests and Kotlin bindings.
Closes #282. Pressing `t` in an activity dashboard now opens a modal range picker instead of reporting “not available yet.” Edit the current range with a cursor or choose a quick pick; resolved dates and an inclusive day count update as you type. Invalid input shows the core error and stays editable. Enter applies a valid range as a new root; Esc preserves the dashboard's navigation and mixed-day setting. The overlay uses the core parser and quick picks, resolving “all” with the stream's tracking start. It supports character-safe insertion/deletion, horizontal input scrolling, wrapped previews/errors and a quick-pick viewport for short terminals. Dashboard shortcuts type into the field and command switching is suppressed while it is open; Ctrl-C retains its global behaviour. Added pure editor/navigation tests, front-end modal routing coverage, six normal/narrow text snapshots and tiny-terminal cursor checks. Updated README.md, R36a and AGENTS.md. Validation: - Workspace tests and all-target Clippy with warnings denied passed. - Commit hooks: tests, Clippy, rustfmt and Conventional Commit checks passed. - Terminal smoke test: drill down, edit invalid text, invalid Enter, cancel, select a quick pick, apply and verify the previous parent stack is cleared. - `nix flake check` passed on x86_64-linux, including 1,708 Rust tests and Kotlin bindings.
docs(activity): describe the time range picker
All checks were successful
Continuous Integration / Conventional Commits (push) Successful in 31s
Continuous Integration / Lint, Check & Test (push) Successful in 3m20s
Continuous Integration / Build Package (push) Successful in 12m56s
7deb023762
kfickel deleted branch 282_activity-range-overlay 2026-10-20 17:01:53 +02:00
Sign in to join this conversation.
No reviewers
No labels
android
cli
epic
planned
tui
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Reference
kfickel/streamd!310
No description provided.