| Commit message (Collapse) | Author | Age | |
|---|---|---|---|
| * | feat: multi-select and bulk-update category from catalog | Martin Kagamino Lehoux | 2026-07-29 |
| | | |||
| * | feat: auto-save item name/category on blur, remove explicit save button | Martin Kagamino Lehoux | 2026-07-28 |
| | | |||
| * | feat: autocomplete search with datalist to prevent duplicate items | Martin Kagamino Lehoux | 2026-07-28 |
| | | |||
| * | docs: align README with current implementation and expand TODO | Martin Kagamino Lehoux | 2026-07-28 |
| | | |||
| * | fix: adding a ref no longer triggers the Enregistré timeout | Martin Kagamino Lehoux | 2026-07-28 |
| | | |||
| * | build: reduce image size with alpine runtime and chown at copy-time | Martin Kagamino Lehoux | 2026-07-28 |
| | | |||
| * | fix: sticky form and navbar layout with consistent nav-height | Martin Kagamino Lehoux | 2026-07-28 |
| | | |||
| * | fix: redirect to origin page after deleting an item | Martin Kagamino Lehoux | 2026-07-28 |
| | | |||
| * | fix: deploy with migrations | Martin Kagamino Lehoux | 2026-07-28 |
| | | |||
| * | feat: oklch color palette and PWA install support | Martin Kagamino Lehoux | 2026-07-28 |
| | | |||
| * | doc | Martin Kagamino Lehoux | 2026-07-28 |
| | | |||
| * | 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 | ||
| * | feat: warm redesign, full French localization, compact sticky form, fixed ↵ | Martin Kagamino Lehoux | 2026-07-28 |
| | | | | | row heights, and show quality score in list | ||
| * | feat: production Docker image with health check and data persistence | Martin Kagamino Lehoux | 2026-07-27 |
| | | | | | | | - Non-root user (node), data volume at /app/data - Startup migration script applies drizzle SQL before server starts - HEALTHCHECK on port 3000 every 30s | ||
| * | feat: compact sticky add form with Add + Edit buttons | Martin Kagamino Lehoux | 2026-07-27 |
| | | | | | | | | - Sticky navbar + sticky add bar on list page - Add button: quick add to list - Edit button: add + redirect to detail page for references - Removed layout top padding for seamless sticky behavior | ||
| * | feat: navbar + split list/catalog into separate pages | Martin Kagamino Lehoux | 2026-07-27 |
| | | | | | | | | | - Navbar component with List, Catalog, Categories tabs - / = shopping list (unchecked items with add form) - /catalog = full catalog with toggle - /categories = category management - Removed page titles (navbar indicates context) | ||
| * | feat: show best reference (by quality score) on each item in list view | Martin Kagamino Lehoux | 2026-07-27 |
| | | |||
| * | feat: minimal grocery list — add items, check them off | Martin Kagamino Lehoux | 2026-07-27 |
| | | | | | | | | | - Groceries DB schema (id, name, checked, created_at) with Drizzle + libsql - /+page.server.ts: load (unchecked items, newest first), add & toggle actions - /+page.svelte: text input + Add button, item list with toggle buttons - Mobile-first styling with scoped CSS classes - AGENTS.md: project-specific rules including UI validation | ||
| * | bootstrap: SvelteKit + adapter-node + plain CSS + Vitest | Martin Kagamino Lehoux | 2026-07-27 |
| @libsql/client + Drizzle ORM for SQLite, Prettier + ESLint flat config. Multi-stage Dockerfile (node:26-slim) for Caddy-backed deployment. | |||
