ea9a79226a
feat(db): bundle migration SQL via Vite glob + auto-create data dirs
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-04-17 15:41:20 +02:00
0f9aabe76b
refactor: move scaler out of $lib/server so it can run in browser
...
RecipeView needs scaleIngredients on the client for live portion scaling.
Moved scaler.ts from $lib/server/recipes/ to $lib/recipes/.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-04-17 15:41:20 +02:00
4d7783dd8b
feat(ui): add admin area (domains, profiles, backup) with gear link in header
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-04-17 15:35:20 +02:00
2ca1bbaf07
feat(backup): add ZIP export endpoint (DB + images)
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-04-17 15:35:19 +02:00
3207166fe8
chore(deps): add archiver + yauzl for backup ZIPs
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-04-17 15:35:19 +02:00
41dbb81a54
feat(ui): add web search page and preview-before-save flow
...
- /search shows 'Im Internet suchen' CTA when no local hits or always after search
- /search/web lists SearXNG hits with domain pill and snippet
- /preview loads recipe via preview endpoint and shows unified RecipeView with banner
- Save button imports via POST and navigates to the saved recipe
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-04-17 15:33:21 +02:00
52c25fdd2c
feat(search): add SearXNG client with whitelist-filtered web search
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-04-17 15:33:21 +02:00
4d5e0aa963
feat(ui): add layout with profile bar, home, search, recipe pages
...
- Homepage with search and recent recipes
- Search page listing local hits (FTS5)
- Recipe page with ratings, favorites, cooking log, comments
- Wake-Lock on recipe view for mobile kitchen use
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-04-17 15:28:22 +02:00
8df09b1134
feat(ui): add unified RecipeView component with tabs and portion scaling
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-04-17 15:28:22 +02:00
974e3cf7ef
feat(ui): add ProfileSwitcher modal and StarRating component
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-04-17 15:28:21 +02:00
e90545a637
feat(ui): add profile client store with LocalStorage persistence
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-04-17 15:28:21 +02:00
1adc0ee021
feat(api): serve local images with cache headers
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-04-17 15:28:21 +02:00
45275e56a9
feat(api): add recipe detail, search, rating, favorite, cooked, comments endpoints
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-04-17 15:23:00 +02:00
7c62c977c4
feat(recipes): add local search (FTS5 bm25) and action handlers
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-04-17 15:23:00 +02:00
75c96d12e9
docs: session handoff after Phase 1+2 autonomous work
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-04-17 15:13:43 +02:00
86ff4c141a
feat(api): expose preview/import/profile/domain endpoints
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-04-17 15:12:59 +02:00
5693371673
feat(profiles): add profile repository
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-04-17 15:11:23 +02:00
99afc45c29
feat(recipes): add recipe importer (preview + persist)
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-04-17 15:11:23 +02:00
aea07c5eb2
feat(recipes): add recipe repository (insert/get/delete with FTS refresh)
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-04-17 15:11:23 +02:00
757b0f720e
feat(images): add sha256-deduplicated image downloader
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-04-17 15:09:31 +02:00
4c8f4da46c
feat(domains): add allowed-domain repository and whitelist check
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-04-17 15:09:31 +02:00
11b6b8fff1
feat(http): add fetchText/fetchBuffer with timeout and size limits
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-04-17 15:09:31 +02:00
9ddceb563b
docs: add Phase 2 plan (import pipeline)
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-04-17 15:08:22 +02:00
c44b8ea644
feat(ui): add minimal homepage with search input
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-04-17 15:07:22 +02:00
c1ec9b8a83
feat(infra): add SearXNG dev container
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-04-17 15:07:22 +02:00
0f342bdadf
feat(api): add /api/health endpoint
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-04-17 15:07:22 +02:00
e90a37ff5e
feat(db): add SQLite schema, FTS5, migration runner
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-04-17 15:04:59 +02:00
2f3248c9a3
feat(parser): add JSON-LD schema.org/Recipe extractor
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-04-17 15:04:05 +02:00
789af122f4
feat(scaler): add ingredient scaling with sensible rounding
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-04-17 15:02:09 +02:00
ae774e377d
feat(parser): add ingredient parser
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-04-17 15:02:09 +02:00
b163b40860
feat(types): add shared type definitions
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-04-17 15:02:09 +02:00
c56201c5f3
feat(parser): add ISO8601 duration parser
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-04-17 15:02:08 +02:00
5b714919a0
test(infra): add vitest smoke test
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-04-17 15:02:08 +02:00
c4d3163a49
feat(scaffold): init SvelteKit + TypeScript project
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-04-17 15:00:58 +02:00
80b5c6ed2e
docs: add implementation plan overview and Phase 1 detail
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-04-17 14:59:49 +02:00
59dc3623fe
chore: initialize repo with PRD
...
Adds .gitattributes for LF line endings and initial product/design spec.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-04-17 14:56:20 +02:00