<feed xmlns='http://www.w3.org/2005/Atom'>
<title>home-sveltekit/drizzle/0001_dear_bastion.sql, 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-07-27T16:31:26Z</updated>
<entry>
<title>feat: separate categories table + /categories management page</title>
<updated>2026-07-27T16:31:26Z</updated>
<author>
<name>Martin Kagamino Lehoux</name>
<email>martin@lehoux.net</email>
</author>
<published>2026-07-27T16:31:26Z</published>
<link rel='alternate' type='text/html' href='https://git.kagamino.dev/home-sveltekit/commit/?id=e14717b2e7853705469275d64023bb902b195ebb'/>
<id>urn:sha1:e14717b2e7853705469275d64023bb902b195ebb</id>
<content type='text'>
- Categories table (id, name unique) with FK from groceries.category_id
- /categories page for add/delete categories
- Main page uses native &lt;select&gt; dropdown for category
- Categories grouped by name in list/catalog views
- Regenerated drizzle migrations from scratch
</content>
</entry>
<entry>
<title>feat: catalog section + deduplicate items by name</title>
<updated>2026-07-27T15:18:40Z</updated>
<author>
<name>Martin Kagamino Lehoux</name>
<email>martin@lehoux.net</email>
</author>
<published>2026-07-27T15:18:40Z</published>
<link rel='alternate' type='text/html' href='https://git.kagamino.dev/home-sveltekit/commit/?id=6722589b515ccee267212cf783fc0ebbaa20cd90'/>
<id>urn:sha1:6722589b515ccee267212cf783fc0ebbaa20cd90</id>
<content type='text'>
- Show all items split into List (unchecked) and Catalog (checked) sections
- Tapping a catalog item unchecks it (returns to list)
- Add action now upserts: unchecks existing item instead of creating duplicate
- UNIQUE constraint on groceries.name as defense-in-depth
- Tests for dedup behavior (insert, re-add from catalog, no-op on list)
</content>
</entry>
</feed>
