| Commit message (Collapse) | Author | Age | |
|---|---|---|---|
| * | Add projects with routines, urgency tracking and health scores | Martin Kagamino Lehoux | 2026-09-07 |
| | | | | | | | | | | | Projects group recurring routines (chores included) with an append-only snapshot table (id, version) so edits never rewrite history; completions reference the exact snapshot. Pure metrics compute due dates, urgency buckets (ok/due/late/veryLate) and 0-100 health scores per routine, project, and globally. Home page lists projects; project dashboard sorts routines most-urgent first with one-tap completion and interval parser inputs (1d/2w/3m/1y). | ||
| * | feat: drag-to-reorder categories with persistent order | Martin Kagamino Lehoux | 2026-07-29 |
| | | |||
| * | feat: multi-select and bulk-update category from catalog | Martin Kagamino Lehoux | 2026-07-29 |
| | | |||
| * | feat: editable name and category in grocery detail page | Martin Kagamino Lehoux | 2026-07-28 |
| | | |||
| * | refactor: services layer, valibot validation, shared CSS utilities, aria ↵ | Martin Kagamino Lehoux | 2026-07-28 |
| labels, and drizzle migrate - Extract groceries/categories/references services with db injection - Add valibot for form validation and safe numeric id parsing - Fix category delete FK behavior with onDelete: set null + migration - Replace custom migrate.js with drizzle-orm/libsql/migrator - Add shared CSS utility classes in app.css (forms, lists, buttons) - Add aria-pressed and aria-label on interactive elements - Remove redundant app.css imports and unused /stores import - Add integration tests for all services using drizzle migrate helper - Remove smoke test; add db:migrate and db:studio scripts | |||
