<feed xmlns='http://www.w3.org/2005/Atom'>
<title>food/kitchen, branch master</title>
<subtitle>Meal planning system (Django)</subtitle>
<id>https://git.tomflux.xyz/food/atom?h=master</id>
<link rel='self' href='https://git.tomflux.xyz/food/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.tomflux.xyz/food/'/>
<updated>2026-04-02T22:18:01+00:00</updated>
<entry>
<title>Pantry move/expiry edit + smart shopping list with summary</title>
<updated>2026-04-02T22:18:01+00:00</updated>
<author>
<name>Caine</name>
<email>caine@jihakuz.xyz</email>
</author>
<published>2026-04-02T22:18:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tomflux.xyz/food/commit/?id=557758b188d58a2e00114be21a2e27864db3edea'/>
<id>urn:sha1:557758b188d58a2e00114be21a2e27864db3edea</id>
<content type='text'>
- Move items between fridge↔freezer (freezer→fridge sets +7d or shelf life expiry, fridge→freezer clears expiry)
- Inline expiry date editor on fridge items (📅 button)
- Smart shopping list now shows recipe gaps (missing required slot ingredients)
- Summary card shows breakdown: X staple restocks, Y expiring, Z recipe gaps
</content>
</entry>
<entry>
<title>CSRF exempt HTMX views (localhost-only app)</title>
<updated>2026-04-02T22:12:16+00:00</updated>
<author>
<name>Caine</name>
<email>caine@jihakuz.xyz</email>
</author>
<published>2026-04-02T22:12:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tomflux.xyz/food/commit/?id=2f279ac89d66c777e12e4e9f2a0ff0d0aed8883a'/>
<id>urn:sha1:2f279ac89d66c777e12e4e9f2a0ff0d0aed8883a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fix CSRF for HTMX POST requests</title>
<updated>2026-04-02T22:10:52+00:00</updated>
<author>
<name>Caine</name>
<email>caine@jihakuz.xyz</email>
</author>
<published>2026-04-02T22:10:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tomflux.xyz/food/commit/?id=dfa573a4ea90b300b6261d6d055ea90f0fe904fa'/>
<id>urn:sha1:dfa573a4ea90b300b6261d6d055ea90f0fe904fa</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Phase 4: HTMX frontend with dark palette</title>
<updated>2026-04-02T22:08:43+00:00</updated>
<author>
<name>Caine</name>
<email>caine@jihakuz.xyz</email>
</author>
<published>2026-04-02T22:08:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tomflux.xyz/food/commit/?id=c4ca4348edc5c4fd6cc36e9833fbb9c697f3bf9d'/>
<id>urn:sha1:c4ca4348edc5c4fd6cc36e9833fbb9c697f3bf9d</id>
<content type='text'>
- 4 pages: Pantry, Recipes, Shopping List, Cook Log
- HTMX-powered: add/delete pantry items, toggle shopping, generate smart list
- Custom 13-colour palette from Lospec (dark bg, yellow accent)
- Mobile-responsive
- Whitenoise for static files in production
- All routes under /app/
- API (/api/) stays internal, frontend (/app/) for browser use
</content>
</entry>
<entry>
<title>Add rating + preferences fields, log first cook feedback</title>
<updated>2026-04-02T21:50:49+00:00</updated>
<author>
<name>Caine</name>
<email>caine@jihakuz.xyz</email>
</author>
<published>2026-04-02T21:50:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tomflux.xyz/food/commit/?id=963ca2dd5549843e992af718053d08c10d5ec843'/>
<id>urn:sha1:963ca2dd5549843e992af718053d08c10d5ec843</id>
<content type='text'>
- Ingredient.preferences: qualitative notes on how Tom likes things cooked
- CookLog.rating: 1-5 score
- CookLog.notes: help text updated for feedback
- Migration 0002
- First cook logged: Baked Pasta with lardons, rated 2/5
- Bacon lardons preference: don't oven bake, fry separately, not solo protein
</content>
</entry>
<entry>
<title>Add create-meta-recipe endpoint with nested slots/options/bases</title>
<updated>2026-04-02T16:51:12+00:00</updated>
<author>
<name>Caine</name>
<email>caine@jihakuz.xyz</email>
</author>
<published>2026-04-02T16:51:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tomflux.xyz/food/commit/?id=946c7de20cab78a47edbeae8fa65fe86a51511dd'/>
<id>urn:sha1:946c7de20cab78a47edbeae8fa65fe86a51511dd</id>
<content type='text'>
- POST /api/create-meta-recipe/ creates full meta-recipe in one call
- PUT /api/create-meta-recipe/ updates existing (requires id)
- Auto-resolves ingredients by name/alias, creates new if not found
- Returns full nested response with _created_ingredients list
- New writable serializers: MetaRecipeWriteSerializer, SlotWriteSerializer, etc.
</content>
</entry>
<entry>
<title>Phase 2+3: bulk pantry add, smart shopping list, recipe URL import</title>
<updated>2026-04-02T15:50:56+00:00</updated>
<author>
<name>Caine</name>
<email>caine@jihakuz.xyz</email>
</author>
<published>2026-04-02T15:50:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tomflux.xyz/food/commit/?id=27f91fb877f4502804c932a28546ab6c745cc103'/>
<id>urn:sha1:27f91fb877f4502804c932a28546ab6c745cc103</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add API: URLs, token auth, what-can-i-cook endpoint, log-cook with pantry deduction, browsable API</title>
<updated>2026-04-02T15:33:31+00:00</updated>
<author>
<name>Caine</name>
<email>caine@jihakuz.xyz</email>
</author>
<published>2026-04-02T15:33:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tomflux.xyz/food/commit/?id=fe00286f7558d379d392f8a46d10a4689f95d472'/>
<id>urn:sha1:fe00286f7558d379d392f8a46d10a4689f95d472</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add DRF serializers, viewsets, what-can-i-cook endpoint, log-cook with pantry deduction</title>
<updated>2026-04-02T15:32:00+00:00</updated>
<author>
<name>Caine</name>
<email>caine@jihakuz.xyz</email>
</author>
<published>2026-04-02T15:32:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tomflux.xyz/food/commit/?id=487bf469795d70fb2bfdbee882d00f0c5e726a9a'/>
<id>urn:sha1:487bf469795d70fb2bfdbee882d00f0c5e726a9a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fix seed: use ingredient+location for get_or_create, add missing freezer items</title>
<updated>2026-04-01T21:51:35+00:00</updated>
<author>
<name>Caine</name>
<email>caine@jihakuz.xyz</email>
</author>
<published>2026-04-01T21:51:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tomflux.xyz/food/commit/?id=5fd445087281dff65dfc158795834aef2cddaf1b'/>
<id>urn:sha1:5fd445087281dff65dfc158795834aef2cddaf1b</id>
<content type='text'>
</content>
</entry>
</feed>
