Files
nocal/docs/ROADMAP.md

2.2 KiB

Roadmap

Foundation — current milestone

  • C++20 domain model and deterministic six-week month layout
  • Responsive, theme-native ANSI month view with keyboard navigation
  • Appointment focus, dense-day traversal, and full-frame detail reader
  • Validated add/edit/delete forms with confirmation and failure rollback
  • Guarded atomic .ics persistence, advisory locking, and round-trip tests
  • Bounded session undo/redo, exact external-change detection, and backup recovery
  • Windowed recurrence expansion, EXDATE, IANA TZID, and multi-day segment cues
  • Occurrence-aware appointment search with exact result-to-grid navigation
  • Meson build, Nix development shell, desktop entry, and Hyprland launcher
  • Seeded sample data when explicitly requested, never silent data mutation

0.1 — complete local calendar

  • Advanced recurrence editing, RDATE/overrides, and embedded VTIMEZONE support
  • Agenda view, calendar toggles, import/export, configurable week start
  • Screen-reader-friendly linear view and full Unicode display-width handling

0.2 — durable cache and provider boundary

  • SQLite WAL cache and migration framework
  • Background job queue, immutable UI snapshots, observable sync status
  • Secret Service credentials and OAuth callback helper
  • Generic SyncProvider contract plus a fake provider test suite

0.3 — CalDAV

  • Discovery and incremental sync for Nextcloud and standards-compliant servers
  • ETag-aware writes, offline mutation queue, conflict UI
  • TLS and failure-path integration tests

0.4 — hosted providers

  • Google Calendar adapter with incremental synchronization
  • Microsoft 365 adapter over Microsoft Graph delta queries
  • Account/calendar management UI and per-calendar ANSI identity

1.0 — distribution quality

  • Stable configuration/data format and documented recovery procedures
  • Nomarchy package, Hyprland defaults, man page, shell completions
  • Performance budgets exercised against large and adversarial calendars
  • Fuzzed iCalendar parser, accessibility review, translations

Quality gates

Every milestone requires clean warning-enabled builds, unit and integration tests, sanitizer runs, terminal-state recovery after signals/errors, no network access without explicit account setup, and no loss of unknown calendar data.