aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* Extract Button primitive, migrate all call sitesMartin Kagamino Lehoux2026-09-12
| | | | | | | Variants primary/accent/ghost/done with scoped styles. Disabled handling unified; block/size/style props cover login stretch, done-lg, save-check positioning. Delete btn-* globals and dead page overrides.
* Split app.css into layered tokens and base globalsMartin Kagamino Lehoux2026-09-12
| | | | Fix ::root selector so vars and base font apply
* script for cleaningMartin Kagamino Lehoux2026-09-12
|
* improve projects layout on mobileMartin Kagamino Lehoux2026-09-12
|
* Migrate date handling from Date to Temporal APIMartin Kagamino Lehoux2026-09-08
| | | | | | | | Routine scheduling, health series, service stamps, session expiry, and date formatting move to native Temporal (Instant / ZonedDateTime in UTC), with ISO strings kept at DB and chart boundaries. Ambient types in src/temporal-ambient.d.ts cover the native runtime; no polyfill. Observable behavior and stored formats are unchanged.
* Late only after a full missed periodMartin Kagamino Lehoux2026-09-08
| | | | | | Status buckets shift a full period out: due until an occurrence is skipped entirely, late after one, very late after two. Health decay halves (100 - ratio*50) so 50 marks late and 0 marks veryLate.
* Project health chart on LayerChartMartin Kagamino Lehoux2026-09-08
| | | | | | | Project page gets a Sante chart: daily mean of per-routine health via computeProjectHealthSeries, ending at the current health score. Both charts share a HealthChart component built on LayerChart's AreaChart (time x-axis, fixed 0-100 y-axis, completion dots).
* Never-done routines are always at least dueMartin Kagamino Lehoux2026-09-08
| | | | | A routine with no completions shows due instead of ok, even right after creation; ok requires a completion within the current period.
* Replace routine status text chip with fixed-width glyph chipMartin Kagamino Lehoux2026-09-08
| | | | | | Status becomes a 1.5rem rounded-square chip (ok=check, due=clock, late=!, veryLate=double !) keeping the green-to-red colors, moved to the start of each routine row; label and overdue stay in title.
* Anchor routine due dates on UTC calendar daysMartin Kagamino Lehoux2026-09-08
| | | | | Daily routine done yesterday is due today regardless of time of day; same anchoring in health series so chart and badge agree.
* Show frequency on archived routine rows in project detailsMartin Kagamino Lehoux2026-09-08
|
* Share grocery row component and list-page form actionsMartin Kagamino Lehoux2026-09-08
| | | | | | | | - GroceryRow.svelte renders the toggle row (checkbox, name, best ref, arrow link) for both the list and catalog pages - grocery-actions.ts grows full form actions: addCategoryAction, addGroceryAction, addGroceryAndEditAction, deleteByIdAction; the categories/groceries route servers become thin wrappers
* Consolidate duplicated page CSS into app.css, share TestDb typeMartin Kagamino Lehoux2026-09-08
| | | | | | | | | | | | | - Move .page-header/.back-link/.input-invalid/.save-status/.btn-done (plus hover/variant rules) into app.css as shared route scaffolding; delete per-page scoped copies - Unify drifted values: page-header padding 1rem -> 1.25rem (routine page), empty-state spacing 0.75/1.5rem -> 1/2rem (grocery detail), save-status margin -0.25rem applied on both pages, back-link margin 1.5rem -> 1rem (grocery detail); routine page's large Fait button is kept via a .btn-done-lg modifier - Export TestDb from test-helper and use it in the five db/service test files to shrink duplicated fixture scaffolding
* Deduplicate routine actions and badges across project routesMartin Kagamino Lehoux2026-09-08
| | | | | | | | | - Share edit/complete/archive form actions in routine-actions.ts; route servers become thin wrappers (strictest guard semantics in one place) - Move parseFrequencyDays into validation.ts - Extract ScoreBadge/StatusBadge components; use on project pages and the home page instead of duplicated scoreClass/statusClass helpers - Fix archiveProject calling the routine archive with the project id
* Add routine archives: archive date, searchable archived list, frozen pageMartin Kagamino Lehoux2026-09-07
| | | | | | - 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
* Give FuzzyAutocomplete input a white surface backgroundMartin Kagamino Lehoux2026-09-07
| | | | | Matches the other add-bar inputs; the input previously fell back to the cream form-input background after the add-bar class rename.
* Extract duplicated styles into shared molecules and color atomsMartin Kagamino Lehoux2026-09-07
| | | | | | | | | 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.
* Extract shared groceries helpers and BestRef componentMartin Kagamino Lehoux2026-09-07
|
* Add routine detail page with editable description and health historyMartin Kagamino Lehoux2026-09-07
|
* dcd runMartin Kagamino Lehoux2026-09-07
|
* Document projects & routines in READMEMartin Kagamino Lehoux2026-09-07
| | | | | Add a Product section for the feature and drop the completed chores module TODO.
* Add projects with routines, urgency tracking and health scoresMartin Kagamino Lehoux2026-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).
* Split groceries domain out of the app rootMartin Kagamino Lehoux2026-09-07
| | | | | | 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.
* fix: type page state arrays (svelte-check 0 errors)Martin Kagamino Lehoux2026-08-21
|
* feat: fuzzy autocomplete for add-item inputMartin Kagamino Lehoux2026-08-21
| | | | | | | | 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.
* deploy via docker registryMartin Kagamino Lehoux2026-08-17
|
* chore: remove duplicate agents.mdMartin Kagamino Lehoux2026-08-13
|
* feat(auth): add persistent family loginMartin Kagamino Lehoux2026-08-13
|
* fix(groceries): prevent premature auto-submit on quick-add inputMartin Kagamino Lehoux2026-08-01
| | | | | | | | 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.
* feat(catalog): add in-memory case-insensitive search filterMartin Kagamino Lehoux2026-07-31
| | | | | | 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.
* build: add mise deploy taskMartin Kagamino Lehoux2026-07-29
|
* fix: put Non catégorisé first in Catalogue tooMartin Kagamino Lehoux2026-07-29
|
* fix: eliminate Svelte state_referenced_locally build warningsMartin Kagamino Lehoux2026-07-29
|
* docMartin Kagamino Lehoux2026-07-29
|
* feat: single-line category add form with + buttonMartin Kagamino Lehoux2026-07-29
|
* fix: hide empty categories in the list viewMartin Kagamino Lehoux2026-07-29
|
* fix: use category order when grouping items in list and catalogMartin Kagamino Lehoux2026-07-29
|
* feat: drag-to-reorder categories with persistent orderMartin Kagamino Lehoux2026-07-29
|
* feat: multi-select and bulk-update category from catalogMartin Kagamino Lehoux2026-07-29
|
* fix: prevent layout shift when save confirmation appearsMartin Kagamino Lehoux2026-07-29
|
* feat: auto-save item name/category on blur, remove explicit save buttonMartin Kagamino Lehoux2026-07-28
|
* feat: autocomplete search with datalist to prevent duplicate itemsMartin Kagamino Lehoux2026-07-28
|
* docs: align README with current implementation and expand TODOMartin Kagamino Lehoux2026-07-28
|
* fix: adding a ref no longer triggers the Enregistré timeoutMartin Kagamino Lehoux2026-07-28
|
* build: reduce image size with alpine runtime and chown at copy-timeMartin Kagamino Lehoux2026-07-28
|
* fix: sticky form and navbar layout with consistent nav-heightMartin Kagamino Lehoux2026-07-28
|
* fix: redirect to origin page after deleting an itemMartin Kagamino Lehoux2026-07-28
|
* fix: redirect to previous page after deleting an itemMartin Kagamino Lehoux2026-07-28
|
* feat: keep keyboard open on mobile when adding items to listMartin Kagamino Lehoux2026-07-28
|
* fix: deploy with migrationsMartin Kagamino Lehoux2026-07-28
|