Commit Graph

  • 460b7d0fdc Store cook log DB in writable data dir, not read-only recipes mount main jbrechtel 2026-07-12 21:53:35 -04:00
  • 3c3b6b853a Fix cook history ordering: sort months by date, not name jbrechtel 2026-07-08 09:25:41 -04:00
  • 78612eaa06 Fix cook history ordering: show newest entries first jbrechtel 2026-07-08 08:59:13 -04:00
  • 506de6c4d8 Uses latest sonnet model jbrechtel 2026-05-31 14:48:32 -04:00
  • 518d62fcb6 HLint jbrechtel 2026-05-31 14:46:58 -04:00
  • dbc2026422 Format code with fourmolu jbrechtel 2026-05-27 21:31:00 -04:00
  • 5aab9a8018 Move recipe filter tabs from nav into page content jbrechtel 2026-05-27 21:22:47 -04:00
  • 541dc0e7ce Unify header navigation and page padding across all pages jbrechtel 2026-05-27 21:13:48 -04:00
  • 0eb6e6ea3c UI adjustments: Import link in header, matching font sizes, cook history titles, click-to-upload images jbrechtel 2026-05-27 20:59:24 -04:00
  • 2124630146 Recipe page: ingredients and method side-by-side layout jbrechtel 2026-05-26 09:36:07 -04:00
  • 7b77cf2840 Fix recipe page: step text contrast and interactive ingredient checkboxes jbrechtel 2026-05-26 09:32:34 -04:00
  • 7b64f9576b Fix 'btn is not defined' JS error in Record meal modal jbrechtel 2026-05-26 07:44:50 -04:00
  • 65b096bc31 Landing page: use recipe images in cards, make cards clickable jbrechtel 2026-05-26 07:43:04 -04:00
  • 162d2f8a1e Formats repo jbrechtel 2026-05-26 07:39:28 -04:00
  • 0643dda10d Update recipe view page layout to match roux-recipe-mockup.html jbrechtel 2026-05-26 07:38:15 -04:00
  • 6a7374c912 Formatting jbrechtel 2026-05-26 07:25:18 -04:00
  • d22c8a79d4 Add landing page with cook log integration jbrechtel 2026-05-26 07:15:38 -04:00
  • edb682c8bc fix: skip empty/whitespace-only steps so step numbering starts at 1 jbrechtel 2026-05-26 06:59:07 -04:00
  • 0be6e299d5 fix: normalize recipe filenames in cook-log (strip .cork ext, lowercase); also fetch with .cork fallback for legacy entries jbrechtel 2026-05-26 06:48:11 -04:00
  • 4dd580a042 Formats repo jbrechtel 2026-05-26 06:45:02 -04:00
  • ee42bfd981 fix: darken text colors — define --roux-muted, add explicit color to Cancel button, darken recent entry comment/date colors jbrechtel 2026-05-26 06:44:23 -04:00
  • 92ec058114 feat: show most recent 5 cook entries under Record meal button jbrechtel 2026-05-26 06:40:24 -04:00
  • 14f43a4ae9 fix: send URL-encoded form data instead of multipart, show errors inline, default empty date to today jbrechtel 2026-05-25 22:26:53 -04:00
  • 930fba369c feat: replace inline cook log form with 'Record meal' button + modal jbrechtel 2026-05-25 22:20:00 -04:00
  • ac7a979fe9 Formats repo jbrechtel 2026-05-25 22:11:28 -04:00
  • 0b6b9c3d17 fix: use Text for created_at, fix show-bug in ToJSON, add /cook-history route jbrechtel 2026-05-25 22:10:23 -04:00
  • 90971568a3 feat: add cook history nav link to index page jbrechtel 2026-05-25 22:01:24 -04:00
  • c6a9c2dee4 feat: wire up cook log DB at server startup jbrechtel 2026-05-25 22:00:45 -04:00
  • ceadf50c59 feat: add CookLog module with types and DB operations jbrechtel 2026-05-25 21:55:43 -04:00
  • 0b5fa61acd chore: add sqlite-simple dependency jbrechtel 2026-05-25 21:54:22 -04:00
  • edfa9bac76 docs: add implementation plan for cooking log feature jbrechtel 2026-05-25 21:48:51 -04:00
  • f2bd667b75 docs: add cooking log design spec jbrechtel 2026-05-25 21:45:49 -04:00
  • ed015d3799 Fix all 20 hlint warnings across 5 source files jbrechtel 2026-05-25 21:30:21 -04:00
  • 67c3b4df6c Merge branch 'feat/inline-title-edit' jbrechtel 2026-05-21 21:37:20 -04:00
  • 69f4184f2e feat: add PATCH endpoint for recipe title updates jbrechtel 2026-05-21 21:31:33 -04:00
  • 7b51c617de feat: add inline title editing JavaScript jbrechtel 2026-05-21 21:29:54 -04:00
  • e5ed706aa6 Updates prompt jbrechtel 2026-05-21 21:29:34 -04:00
  • 1f7b55af6f feat: add CSS class and styles for editable recipe title jbrechtel 2026-05-21 21:29:20 -04:00
  • 8e6e572b35 chore: add .worktrees to gitignore jbrechtel 2026-05-21 21:28:03 -04:00
  • 59fd96b57d docs: add design and plan for inline title editing jbrechtel 2026-05-21 21:28:00 -04:00
  • d64129fc9f fix: save recipe images to recipe-images/ subdirectory jbrechtel 2026-05-21 21:06:07 -04:00
  • a509f44300 feat: add recipe image upload with in-place metadata update jbrechtel 2026-05-21 20:43:58 -04:00
  • 76fab5c716 fix: save uploaded files to recipe-images/ subdir and inject source URL jbrechtel 2026-05-21 17:04:34 -04:00
  • 439f5780c9 feat: show recipe image thumbnail on index page jbrechtel 2026-05-21 15:19:14 -04:00
  • 2dd8840569 fix: resolve prompts dir in Docker and script, try multiple locations jbrechtel 2026-05-21 12:58:52 -04:00
  • f6040f5445 chore: add convert-to-cooklang and Python deps to Dockerfile jbrechtel 2026-05-21 11:59:31 -04:00
  • 5117c9d445 fix: remove relative path fallback in findConvertScript, rely on PATH only jbrechtel 2026-05-21 11:42:06 -04:00
  • 16074b0060 fix: resolve convert-to-cooklang script path with makeAbsolute jbrechtel 2026-05-21 11:15:39 -04:00
  • 76fb927109 Fixes typo in Dockerfile config jbrechtel 2026-05-21 11:03:10 -04:00
  • d9a7f6538e feat: add Import link to index page navbar jbrechtel 2026-05-21 10:56:35 -04:00
  • c36e632d25 style: style import form inputs to match search box jbrechtel 2026-05-21 10:52:34 -04:00
  • 5680cc434c Loads config in Docker jbrechtel 2026-05-21 10:48:52 -04:00
  • e5e0f1c0e0 chore: add yaml and base64-bytestring dependencies, re-export Config jbrechtel 2026-05-21 10:34:03 -04:00
  • 232373cd5c feat: expand import form with file upload via base64 JS jbrechtel 2026-05-21 10:32:49 -04:00
  • 578d1ae068 feat: add LLM import pipeline with file upload and text input jbrechtel 2026-05-21 10:29:35 -04:00
  • b179135136 feat: add --config-file CLI flag for YAML config jbrechtel 2026-05-21 10:25:06 -04:00
  • c015dce51e fix: strip code fences, add MIME/size validation, add tests jbrechtel 2026-05-21 10:23:18 -04:00
  • 7a3f63e377 feat: add convert-to-cooklang script for Anthropic API recipe conversion jbrechtel 2026-05-21 10:18:23 -04:00
  • 5765829004 refactor: return Either from loadConfig, add Config tests jbrechtel 2026-05-21 10:16:41 -04:00
  • 1d5459ea1e feat: add Config module for YAML config loading jbrechtel 2026-05-21 10:10:59 -04:00
  • 5abf5490b4 feat: add interactive countdown timers to recipe steps jbrechtel 2026-05-20 22:50:35 -04:00
  • ddb8577c4b feat: add headless Chromium fallback to recipe scraper jbrechtel 2026-05-20 22:44:15 -04:00
  • 8807ba3851 feat: show recipe image alongside description when metadata has one jbrechtel 2026-05-20 22:35:25 -04:00
  • 1b7f7b61aa fix: tighten typography, fix parser brace leak, polish UI jbrechtel 2026-05-20 22:31:23 -04:00
  • 752918c1af fix: remove extra closing brace in index page JS jbrechtel 2026-05-20 22:18:17 -04:00
  • 78764be0a9 refactor(ui): overhaul typography, color palette, and recipe page layout jbrechtel 2026-05-20 22:13:33 -04:00
  • bf6fde376a feat: parse schema.org ingredient strings into structured Cooklang ingredients jbrechtel 2026-05-20 18:11:30 -04:00
  • d29d8b0af0 fix: separate steps with blank lines in Cooklang renderer jbrechtel 2026-05-20 16:04:16 -04:00
  • c33a51d80b test: add step count preservation tests for SchemaOrg → Cooklang conversion jbrechtel 2026-05-20 15:57:14 -04:00
  • 6081534c10 feat: save raw scraper JSON alongside .cook file on import jbrechtel 2026-05-20 15:50:17 -04:00
  • d77f4eb59f fix: persist SSE debounce across page reloads via sessionStorage jbrechtel 2026-05-20 15:42:01 -04:00
  • 7b7c522080 fix: force lazy ByteString evaluation before waitForProcess to avoid deadlock jbrechtel 2026-05-20 15:35:22 -04:00
  • 7fb83230d3 fix: correct createProcess tuple order in readProcessBytes jbrechtel 2026-05-20 15:18:11 -04:00
  • 6f610c5d86 fix: replace partial pattern in readProcessBytes with explicit case jbrechtel 2026-05-20 15:05:48 -04:00
  • 8d1ff6eb86 fix: read subprocess output as raw bytes to avoid locale encoding errors jbrechtel 2026-05-20 14:53:11 -04:00
  • ebeb52212d fix: properly percent-decode URL-encoded form values in import jbrechtel 2026-05-20 14:46:43 -04:00
  • 72535fb3ec fix: disable stdout/stderr buffering for Docker log visibility jbrechtel 2026-05-20 14:38:52 -04:00
  • 98644be7ea feat: add structured logging to import pipeline jbrechtel 2026-05-20 14:33:08 -04:00
  • 29952d456c fix: resolve scrape-recipe script path via PATH then fallback to scripts/ jbrechtel 2026-05-20 14:25:37 -04:00
  • 81723622be chore: re-export CooklangPrint from Roux module jbrechtel 2026-05-20 13:23:12 -04:00
  • 6e895f7286 feat: add /import route for recipe URL import jbrechtel 2026-05-20 13:17:48 -04:00
  • 4738972046 feat: add import form and result page templates jbrechtel 2026-05-20 13:07:31 -04:00
  • e1c2a4bdc5 feat: add CooklangPrint module for rendering Recipe to .cook text jbrechtel 2026-05-20 13:02:04 -04:00
  • 751a9f853c docs: add recipe import design spec jbrechtel 2026-05-20 12:55:21 -04:00
  • 602324a699 chore: use persistent Docker volume for stack-root instead of host directory jbrechtel 2026-05-20 12:09:03 -04:00
  • 2628fcf6d9 live update docs jbrechtel 2026-05-20 11:57:58 -04:00
  • 795a99ae2b fix: deduplicate SSE events and debounce client reload jbrechtel 2026-05-20 11:54:06 -04:00
  • 71cef21daf feat: add SSE client JS for live recipe reload on detail and index pages jbrechtel 2026-05-20 10:23:42 -04:00
  • f5c693a2b5 feat: add SSE endpoint and ChangeLog for live recipe reload jbrechtel 2026-05-20 10:15:50 -04:00
  • 7a6d3653a7 Merge branch 'live' into main — live recipe watching via fsnotify jbrechtel 2026-05-20 06:30:07 -04:00
  • ce9062a4b3 fix: catch IOExceptions in reReadRecipe and wrap watchDir callback for resilience jbrechtel 2026-05-19 23:40:13 -04:00
  • 956a4bc7d7 fix: use watchDir callback instead of watchTreeChan for reliable event delivery jbrechtel 2026-05-19 23:35:32 -04:00
  • a7434eced7 Merge branch 'utf8' jbrechtel 2026-05-19 23:29:45 -04:00
  • 5bfd3f2308 fix: use absolute dir path for watcher makeRelative consistency jbrechtel 2026-05-19 23:28:51 -04:00
  • 166a2e7800 Handles UTF8 recipe files jbrechtel 2026-05-19 23:28:37 -04:00
  • 8f8dbecea5 refactor: replace aeson ToJSON/FromJSON with json-fleece schemas jbrechtel 2026-05-19 23:24:24 -04:00
  • d8e2cc101d fix: correct path handling in live recipe watching jbrechtel 2026-05-19 23:23:04 -04:00
  • a2a8ea7b99 feat: watch recipe directory for live updates via fsnotify jbrechtel 2026-05-19 23:14:24 -04:00
  • a8402cf831 chore: add fsnotify dependency for live recipe watching jbrechtel 2026-05-19 23:08:02 -04:00
  • baa3c2434f feat: add recipe scraping script and update Docker image jbrechtel 2026-05-19 23:07:53 -04:00