Calendar events support multiple reminder offsets with presets and per-user defaults.
Lists index adds inline task entry and list property editing.
Generic entity comments on list detail. New bangs.stats dashboard widget.
Closes Gitea #28, #29, #30, #31. Migrations 0022 and 0023.
Populates the decisions index with the two existing ADRs (list SSE/notify,
release workflow). Adds task 09 to the phase 1 list and adds the phase 8
garden module task entries to the task index.
Replaces the 8-line placeholder with a complete README covering all four
modules, platform capabilities, quick start, dev setup, configuration
reference, and deployment links. Badges use dynamic shields.io URLs so
version/CI status update automatically on each release.
Wires README review into the release pipeline via a release-it
before:git:release hook and a new item in the pre-deploy checklist.
- Add url field to QuickAddAction; make action optional
- Add getQuickAdds() + SerializedQuickAddItem to registry so quick-add
data can cross the server→client RSC boundary without serializing fns
- Update calendar/lists/notes manifests with navigation URLs
- QuickAddProvider wraps root layout: holds sheet/palette open state and
global cmd/ctrl+k shortcut
- QuickAddSheet: bottom drawer on mobile, right-side popover on desktop,
actions grouped by module
- CommandPalette: cmdk-powered modal with fuzzy filter and full keyboard
nav (arrows + enter + esc)
- QuickAddFab: client button replacing the plain + stub in the dashboard
- Add .claude/** to ESLint ignores to prevent stale worktree artifacts
from failing lint
All 4 E2E specs pass; typecheck, lint, and build clean.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Architecture refinements before module work begins:
- Calendars become first-class entities (mirror of lists). Each
calendar has its own visibility (private | household) and is
independently shareable. Updated CLAUDE.md data model and task 10.
- Drop the singleton/parameterized split for dashboard widgets. Every
widget declares a configSchema + defaultConfig + resolveConfigOptions
and every placement is an independent instance — same widgetId can
appear multiple times on one dashboard pointed at different things.
Updated task 04 contract; tasks 11/12 widget sections aligned.
- Add tasks 25 (multiple dashboards per user) and 26 (customizable
layout + widget configuration). Replaces the previously-considered
three-task plan with a cleaner two-task split that the uniform
contract enables. Phase 3 index updated; STATUS records the rationale.
- Task 20 reframed as a single-dashboard MVP that exercises the new
contract end-to-end before the customization layer lands.
Multi-theme × {light, dark} per-user theming, switchable on the fly.
Slots into phase 1 before modules start so the token system is the
foundation rather than a retrofit. Update STATUS to point at task 03
correctly and reflect 08 in the phase 1 roadmap.