| Commit message (Collapse) | Author | Age |
| |
|
|
|
|
| |
- Stamp archived_at on the archived snapshot; copy it on edit
- loadArchived(projectId) + collapsible fuzzy-searched "Archivées" section on the project page
- Archived routine pages open read-only with the health chart ending at the archive date; edit/complete actions reject archived routines
|
| |
|
|
|
| |
Matches the other add-bar inputs; the input previously fell back to
the cream form-input background after the add-bar class rename.
|
| |
|
|
|
|
|
|
|
| |
Move .score, .status, .add-bar and .btn-accent molecules into app.css
and replace BEM color modifiers with bare atoms (bg-success, bg-accent,
bg-danger, bg-accent-soft, text-accent, text-white). Rename the
category-specific cat-add-bar to add-bar and the groceries page's
sticky autocomplete bar to grocery-add-bar to avoid the collision.
Cuts dcd duplicate lines from 1288 to 780.
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
| |
Add a Product section for the feature and drop the completed chores
module TODO.
|
| |
|
|
|
|
|
|
|
|
| |
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).
|
| |
|
|
|
|
| |
Move the grocery list, catalog, and categories routes under /groceries/
so the app home can host the projects/routines overview next. Update
nav to exact-path matching, login redirect default, and layout title.
|
| | |
|
| |
|
|
|
|
|
|
| |
Replace the native <datalist> with a custom fuzzysort-driven component
(FuzzyAutocomplete) with keyboard nav and highlighted matches, preserving
exact-match auto-add. Extract a unit-tested fuzzy-search helper, and gitignore
.juggler/. Fix the dev DB boot failure caused by a sibling project's ambient
DATABASE_URL leaking in by overriding it (file:./data.db) in mise.toml.
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
| |
Typing 'sel régénérant' would auto-submit 'sel' because oninput
fired on every keystroke, and trim() collapsed the partial input
to a catalog match. Moved auto-submit to oninput with
insertReplacementText guard (datalist selection) plus onchange
(blur/Enter), so regular typing is never interrupted.
|
| |
|
|
|
|
| |
Adds a search input to the Catalog page that filters items by name
using a simple case-insensitive substring match. Empty categories
are hidden when filtering.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
row heights, and show quality score in list
|
| |
|
|
|
|
| |
- Non-root user (node), data volume at /app/data
- Startup migration script applies drizzle SQL before server starts
- HEALTHCHECK on port 3000 every 30s
|
| | |
|
| |
|
|
|
|
|
| |
- 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
|
| |
|
|
|
|
|
|
| |
- 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)
|
| | |
|
| |
|
|
|
|
|
|
| |
- references table (brand, price, unit, quality_score) with FK to groceries
- /grocery/[id] page for managing references per item
- Unit dropdown (€/kg, €/L, €/u) defaulting to €/kg
- → link on all items navigates to detail page
- Delete item moved from catalog to detail page
|
| | |
|
| |
|
|
|
|
|
|
| |
- Categories table (id, name unique) with FK from groceries.category_id
- /categories page for add/delete categories
- Main page uses native <select> dropdown for category
- Categories grouped by name in list/catalog views
- Regenerated drizzle migrations from scratch
|