<feed xmlns='http://www.w3.org/2005/Atom'>
<title>home-sveltekit/package-lock.json, branch main</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<id>https://git.kagamino.dev/home-sveltekit/atom?h=main</id>
<link rel='self' href='https://git.kagamino.dev/home-sveltekit/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://git.kagamino.dev/home-sveltekit/'/>
<updated>2026-09-08T11:44:59Z</updated>
<entry>
<title>Project health chart on LayerChart</title>
<updated>2026-09-08T11:44:59Z</updated>
<author>
<name>Martin Kagamino Lehoux</name>
<email>martin@lehoux.net</email>
</author>
<published>2026-09-08T11:44:59Z</published>
<link rel='alternate' type='text/html' href='https://git.kagamino.dev/home-sveltekit/commit/?id=212c3adc8a584e6517a2816fc6683688d5ac5d7a'/>
<id>urn:sha1:212c3adc8a584e6517a2816fc6683688d5ac5d7a</id>
<content type='text'>
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).
</content>
</entry>
<entry>
<title>feat: fuzzy autocomplete for add-item input</title>
<updated>2026-08-21T14:13:12Z</updated>
<author>
<name>Martin Kagamino Lehoux</name>
<email>martin@lehoux.net</email>
</author>
<published>2026-08-21T14:13:12Z</published>
<link rel='alternate' type='text/html' href='https://git.kagamino.dev/home-sveltekit/commit/?id=07a83b2e3db40f4a380092d6566500799b340dcd'/>
<id>urn:sha1:07a83b2e3db40f4a380092d6566500799b340dcd</id>
<content type='text'>
Replace the native &lt;datalist&gt; 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.
</content>
</entry>
<entry>
<title>feat: oklch color palette and PWA install support</title>
<updated>2026-07-28T14:40:18Z</updated>
<author>
<name>Martin Kagamino Lehoux</name>
<email>martin@lehoux.net</email>
</author>
<published>2026-07-28T14:40:18Z</published>
<link rel='alternate' type='text/html' href='https://git.kagamino.dev/home-sveltekit/commit/?id=bcffe57388430607a520f03a1326484d9897c37a'/>
<id>urn:sha1:bcffe57388430607a520f03a1326484d9897c37a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>refactor: services layer, valibot validation, shared CSS utilities, aria labels, and drizzle migrate</title>
<updated>2026-07-28T13:07:57Z</updated>
<author>
<name>Martin Kagamino Lehoux</name>
<email>martin@lehoux.net</email>
</author>
<published>2026-07-28T13:07:57Z</published>
<link rel='alternate' type='text/html' href='https://git.kagamino.dev/home-sveltekit/commit/?id=04fabf115ccea31ac504b06cc51d78423b697f60'/>
<id>urn:sha1:04fabf115ccea31ac504b06cc51d78423b697f60</id>
<content type='text'>
- 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
</content>
</entry>
<entry>
<title>feat: minimal grocery list — add items, check them off</title>
<updated>2026-07-27T14:54:28Z</updated>
<author>
<name>Martin Kagamino Lehoux</name>
<email>martin@lehoux.net</email>
</author>
<published>2026-07-27T14:54:28Z</published>
<link rel='alternate' type='text/html' href='https://git.kagamino.dev/home-sveltekit/commit/?id=71ca66bcba70f7a463df6ee9bdcb0e14b8e60595'/>
<id>urn:sha1:71ca66bcba70f7a463df6ee9bdcb0e14b8e60595</id>
<content type='text'>
- Groceries DB schema (id, name, checked, created_at) with Drizzle + libsql
- /+page.server.ts: load (unchecked items, newest first), add &amp; 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
</content>
</entry>
<entry>
<title>bootstrap: SvelteKit + adapter-node + plain CSS + Vitest</title>
<updated>2026-07-27T14:37:44Z</updated>
<author>
<name>Martin Kagamino Lehoux</name>
<email>martin@lehoux.net</email>
</author>
<published>2026-07-27T14:37:44Z</published>
<link rel='alternate' type='text/html' href='https://git.kagamino.dev/home-sveltekit/commit/?id=ed39c60ebc10efe2b644172e7c82f943c4fba3cc'/>
<id>urn:sha1:ed39c60ebc10efe2b644172e7c82f943c4fba3cc</id>
<content type='text'>
@libsql/client + Drizzle ORM for SQLite, Prettier + ESLint flat config.
Multi-stage Dockerfile (node:26-slim) for Caddy-backed deployment.
</content>
</entry>
</feed>
