mirror of
https://github.com/avinal/nikki.git
synced 2026-07-03 21:40:09 +05:30
2f60ac3e136300b742eff10e5bddcac165ab24d1
Task detail sheet: - "open in memo" and "close" aligned on same line (left/right) - Due date+time, reminder, priority, tags as labeled rows with bordered value boxes (accent when set, muted when not) - No presets for date/time — tap opens DatePicker/TimePicker - Reminder picker: duration options (15min to 1week) - Tag editor: text field for #tag input - Dialog stays open after selections, "close" to dismiss Reminder as duration (!Nunit): - !30min, !1hr, !2day, !1week parsed into ReminderDuration - Notification worker: alarm at dueTime - duration offset - Shown in task list metadata row Live preview in compose card: - Shows parsed metadata chips as you type - Auto-checklist: Enter after task line inserts "- [ ] " Settings additions: - Default visibility (tap cycles: private → protected → public) - Default reminder (tap cycles: none → 15min → 30min → 1hr → 1day) - Week starts on (tap cycles through days, for calendar) - All new settings persisted in DataStore Parser rewritten: - Removed @labels entirely (@ not a Memos concept) - Natural dates without prefix: today, tomorrow, yesterday - Word boundary checks: mp3 ≠ p3, todaying ≠ today - ISO date colons don't match as time - !reminder not parsed as due time 102 tests (64 parser, 16 mapper, 7 serialization, 7 backup, 5 visibility, 3 apiResult), all passing. Co-Authored-By: Claude Opus 4.6 (1M context) Signed-off-by: Avinal Kumar <avinal.xlvii@gmail.com>
Description
Languages
Kotlin
100%