Roadmap
Roadmap
Section titled “Roadmap”This page tracks where DailyDriver has been and where it might go. The Shipped section is drawn from real release history (CHANGELOG.md and the version tags); nothing here is invented. The Planned section collects ideas that are not yet built.
Shipped
Section titled “Shipped”Release tags are created manually; the package version is defined in
dailydriver.__version__and exposed throughpyproject.tomlpackage metadata. Release notes are kept inCHANGELOG.mdalongside the version history.
✅ v2.5.0 — 2026-10-16
Section titled “✅ v2.5.0 — 2026-10-16”- Fuzzy value completion: category paths, target and qada names, flags, and search words match fuzzily and are ordered best-first in the REPL, bash, and fish (
alemorfindsrelatives/alex_morgan). - fzf-tab support in zsh: when the fzf-tab plugin is active, the zsh script asks a new
main.py --complete-unfilteredhook for every candidate at the cursor and lets fzf do the matching. Plain zsh keeps prefix completion. - Completion cleanup: bare
st/etare no longer offered,stNappears for free slots andetN/lnNfor active ones, and the free-form text afteret1is never completed.
✅ v2.4.0 — 2026-10-16
Section titled “✅ v2.4.0 — 2026-10-16”- Numbered category states:
st1–st9start independent category-injecting intervals;et...ends one or more slots with the first slot anchoring an optional final log. - Numbered chaining:
ln4 <text>chains fromlast_actionto now and ends state 4, with extra digits closing extra slots; active states render on compact per-state header lines. - Full-line tab completion: context-aware REPL engine (subcommands, flags, live target/qada/category values) plus bash/zsh/fish scripts for the
daCLI via a fastmain.py --completehook. calargument fix: month/year arguments are honored, English month names accepted, and invalid months reported instead of silently showing the current month.
✅ v2.3.0 — 2026-09-23
Section titled “✅ v2.3.0 — 2026-09-23”- Prayer windows & fiqh deadlines: three-band state machine (fadilat, normal, late) with city-specific offline solar calculations and fiqh deadlines (sunrise, sunset, midnight).
- Two-row prayer nudges: open window nudges render across two rows with explicit band names (
fadilat,normal,late), fitting narrow 48-column mobile screens without clipping. - Prayer window persistence & export:
prayer_logsrecordswindow_bandvia an automatic schema migration with historical backfill; timeline exports anddayview display specific bands (✅ Fadilat,🟡 Normal,🔴 Late,🕯️ Qada). - Multi-city support: registry (Tehran, Karaj, Qom, Mashhad), schedule editor, override mode, and per-city weather and prayer times.
- Target chaining control:
-nand--no-lastflags to log target progress without touching thelast_actionchaining timestamp. - Activity timestamp fixes: starting running events (
se) and great events (sge) updateslast_action; manager definition writes in qada, hygiene, and birthdays no longer touchlast_action. - Quality-of-life additions: weather condition translations, flag day Jalali event, and browse-screen time display unification.
✅ v2.2.0 — 2026-09-19
Section titled “✅ v2.2.0 — 2026-09-19”- Iranian-first offline Hijri calendar: month-start data is bundled locally with calculated fallback coverage, month-specific manual corrections, and the existing global correction command retained for compatibility.
- Offline Tehran prayer calculation: prayer times use a deterministic coordinate-based solar calculation without a runtime network request.
- Minute-resolution prayer nudges: upcoming prayers count down by minute and show
due nowduring the final minute. - Documentation and maintenance cleanup: built-in stemming, refreshed stopwords, the Astro Starlight docs site, shared prayer/duration helpers, typed prayer arguments, and qada import compatibility.
✅ v2.1.0 — 2026-08-24
Section titled “✅ v2.1.0 — 2026-08-24”- Unified day timeline:
dayshows everything logged that day in chronological order — journal entries, prayers, sleep, naps, qada, and targets — sharing one timeline builder withexport; items are placed by start time. Each item renders as time, then label/categories, then the description. - Day-boundary modes:
minside the day view toggles midnight (default) vs the configured day-start hour; the choice persists in the meta table. - Search rewritten as a token filter: no relevance scoring; whole-word stem matching over descriptions and category paths, results grouped by how many query words matched (styled group headers, ignored-word reporting). The FTS/fuzzy scoring modules were removed.
- Time ranges everywhere:
viewandsearchshow export’sHH:MM → HH:MM (dur)format and sort/jump by start time. - Export polish: day headers gain an abbreviated weekday (
Mon, 02 Shahrivar 1405); theexport_itemshook accepts an optional inclusive end bound for future range export. - Category editor (
tools/category_editor.py, port 8768): list, rename, merge, and safe-delete categories, with a similar-pairs Suggestions tab. - Fixed an ANSI-slicing bug in
pline_wraptruncation; first test suites for search, day view, and the entry browser (500 tests).
✅ v2.0.0 — 2026-08-24
Section titled “✅ v2.0.0 — 2026-08-24”- Category ranking reworked: whole-segment path matching (no more
art→startfalse positives) and a gentle, coverage-proportional exact-match boost where a full path match outranks a deeper partial one. - prompt_toolkit input backend: command autocompletion, persistent history, and an autocompleting category picker (5 numbered suggestions, a 20-deep ranked live dropdown that removes already-chosen entries, Enter = suggestion #1) — with automatic fallback to plain input when non-interactive.
-h/--helpon every command from a single help registry; the?summary is generated from the same source.- Birthday creation (
bd) is now fully interactive; inline date parsing removed. - Fixed the header event lines (great/running event) and the
ege/eecancelled-log behavior. - Breaking:
bdno longer accepts inlinename datearguments. - Documentation rebuilt into
docs/;COMMANDS.mdremoved in favor of the new per-feature command pages.
✅ v1.8.0 — 2026-08-23
Section titled “✅ v1.8.0 — 2026-08-23”- Multiple sleep sessions per day; header shows total plus individual ranges.
tools/sleep_avg.pysleep/nap analysis.- Feature-package architecture overhaul: capability-based contracts (
NAME,VERSION,register_commands,header_sections,migrations), monolithic_logic.py/_header.py/_manager.pyfiles removed. - Test suite rebuilt around package boundaries (395 passing tests).
✅ v1.7.0 — 2026-08-04
Section titled “✅ v1.7.0 — 2026-08-04”- Breaking:
qadabecame a full feature (manager +qada log,qada fasting) instead of an alias forp q. - Targets feature (
nazr,habit,targets) with intervals, counters, and a manager. - Travel mode; configurable day-start hour; void scratchpad;
u/update; Termux dialog integration; hygiene manager overhaul.
✅ v1.6.0 — 2026-06-19
Section titled “✅ v1.6.0 — 2026-06-19”- Feature-package architecture introduced: 8 domains extracted into
dailydriver/features/with standard hooks. - Dispatcher unified on raw command-line strings; test suite overhaul (163 tests).
✅ v1.5.0 — 2026-05-29
Section titled “✅ v1.5.0 — 2026-05-29”- Reminder overhaul: permanent event IDs, reminder levels, configurable schedules, visual reminder editor, tomorrow preview.
- Interactive birthday manager; test isolation via
DAILYDRIVER_DB.
✅ v1.4.0 — 2026-05-21
Section titled “✅ v1.4.0 — 2026-05-21”- Unified time-expression language across journal, sleep, nap, and prayer.
- Header redesign;
recentcommand; 120+ new tests (148 total).
✅ v1.3.0 — 2026-05-13
Section titled “✅ v1.3.0 — 2026-05-13”- State files moved into the database (
metatable); commander split into command modules; built-in aliases; global Hijri offset with interactivehijri; terminal UI polish.
✅ v1.2.0 — 2026-05-08
Section titled “✅ v1.2.0 — 2026-05-08”- Weather integration (IRIMO, Tehran);
day/todaynavigation; per-calendar icons; multi-page navigation inview/search.
✅ v1.1.0 — 2026-05-05
Section titled “✅ v1.1.0 — 2026-05-05”- Full-text search (FTS5) with fuzzy boosts; nap logging; keyword editor; stemming and a morphological tokenizer; TF-IDF + exact-path category boost.
✅ v1.0.0 — 2026-05-02
Section titled “✅ v1.0.0 — 2026-05-02”- First modular release: prayers, sleep, hygiene, birthdays, intentions, journal with keyword learning, events/chaining, stats, calendars, export, and the three-calendar event system.
Planned
Section titled “Planned”Ideas gathered from the former TODO.md and the code review notes. These are candidates, not commitments, roughly grouped by priority.
High priority
Section titled “High priority”- Export a date range —
export YYYY-MM-DD YYYY-MM-DDin addition to the current last-X-days form. Theexport_items(conn, start, end=None)hook already supports an upper bound; only theexportcommand’s argument parsing needs to change.
Medium priority
Section titled “Medium priority”- Read-only entry view from
view/search(a separatee/editkey to enter the editor). - Quick-add templates — one-word shortcuts expanding to a preset category and duration (e.g.
bath). - Enhanced statistics — words per entry, entries-per-day chart, chronotype histogram, sleep regularity, prayer-time distribution, category trends, year progress.
- Recall command — surface a random past entry (excluding e.g.
hygiene/*). - Mood tracking with occasional prompts.
- Quick notes — a scratchpad draft, saveable later.
- Interactive in-app viewing of past data (export-like but browsable).
nowcommand — one-shot status (next prayer, entry count, active great event), ideal forda now.- Reminders overhaul — less noisy, importance-based schedules for birthdays and events.
- Random fun stats — an occasional record/highlight.
Low priority
Section titled “Low priority”- Daily quote / hadith; prayer times and weather for other cities; extra weather fields; keyword editor showing the original unstemmed word.
- Undo, CSV export, and a backup command (from the review notes).
Infrastructure
Section titled “Infrastructure”Performance and cleanup ideas live in reference/optimizations.md.