2025-10-24 - 2026-10-24
Overview
213 Pull requests merged by 3 users
Merged
#214 Docs refresh: architecture, agents and README reflect what was built (Maestro 3b22e48b)
Merged
#213 Serve the MealQuest favicon instead of the browser default (Maestro 7c778111)
Merged
#212 Production smoke evidence in the launch summary (Maestro 0544e318)
Merged
#211 Release: Feature 24 (Automated deploys)
Merged
#210 Feature 24: Automated deploys (pull-based, runbook-faithful)
Merged
#209 Release: Feature 23 (Meal photos for manually added dinners)
Merged
#207 Feature 23: Meal photos for manually added dinners
Merged
#208 Feature 23 review fix: narrow the eligibility doc claim
Merged
#206 Photo backfill UI: fix-recipe failures and trigger (Maestro 7a468d2d, Feature 23 task 2)
Merged
#205 Photo backfill for failed dinners without a photo (Maestro 36c40130, Feature 23 task 1)
Merged
#204 Lighthouse production results and launch summary (Maestro 2c8f8887)
Merged
#203 Document the deploy: SHA-embedded build and step-3 verification (Maestro 8611c4b6)
Merged
#200 Supply archive: mark an unfrozen past run as still open (Maestro 29b629aa)
Merged
#199 Supply run: a late in-flight read must not overwrite a just-made list (Maestro 4d299127)
Merged
#201 Supply archive fidelity: frozen posts keep dinner names as frozen (Maestro 22f80eb6)
Merged
#198 Enforce unique recipe item positions per recipe (Maestro 75bb8cc1)
Merged
#197 Suggest batch: replace a card dropped at final store, correct failed-batch doc (Maestro 244f9834)
Merged
#202 Record source-attribution provenance instead of inferring it from the name shape (Maestro 966066e3)
Merged
#195 Plan draft schedule tests: assert the plan_ready title and channel (Maestro ece60217)
Merged
#196 Assert Home tonight dinner exact id and photo URL (Maestro 9d81c325)
Merged
#194 Expose the Supply run title job and cover the replacement race
Merged
#193 Make login OAuth state single-use
Merged
#192 Plan-screen deferred hardening
Merged
#191 Embed the Regular dinners screen in the desktop Settings tab
Merged
#190 Harden make sqlc-check against a failing git status
Merged
#189 Accessibility pass
Merged
#188 Portrait tablet and tablet settings layouts
Merged
#187 Empty, loading and error state sweep
Merged
#186 Deflake the Supply run offline-queue tests under host load
Merged
#185 Release: Features 15, 19, 20 and 21
Merged
#181 Feature 21: Home Dashboard
Merged
#182 Feature 20: Scheduler and Weekly Automation
Merged
#183 Feature 21 integration review remediation
Merged
#184 Catch up every period within 24 hours, oldest first (F20-01)
Merged
#180 Rotation check schedule (Feature 20)
Merged
#179 Keep it in rotation card (Feature 21)
Merged
#178 Chat autosend, week rollover and retention schedules (Feature 20)
Merged
#176 Recent updates sheet (Feature 21)
Merged
#177 Day-of and crock-pot start-by reminders (Feature 20)
Merged
#158 Release: Feature 18 (Cook From What I Have and Quick Dinners)
Merged
#175 Plan draft schedule (Feature 20)
Merged
#172 Weekly suggestions schedule (Feature 20)
Merged
#174 Home screen (1g) with empty states (Feature 21)
Merged
#173 Home API (Feature 21)
Merged
#171 Scheduler core with period keys and catch-up (Feature 20)
Merged
#170 Withhold unsafe recipe sources from idea job results (BASE-01)
Merged
#169 Feature 19: Notifications - Web Push and Google Chat
Merged
#168 Onboarding step 3 push opt-in and test-push endpoint (Feature 19)
Merged
#167 Wire plan_ready, list_ready, new_suggestions and Send to Google Chat (Feature 19)
Merged
#166 Notification preferences API and screen (1n) (Feature 19)
Merged
#165 Google Chat webhook sender and settings API (Feature 19)
Merged
#162 Feature 15: Recipe Detail and Kitchen Reading Mode
Merged
#164 Web Push sender (Feature 19)
Merged
#163 Feature 15 F15-01: always credit a grounded recipe's source
Merged
#161 notify package and durable outbox worker (Feature 19)
Merged
#159 Recipe detail works offline once visited (Feature 15)
Merged
#160 Feature 18 release-review fixes: true Quest-log state and Find ideas with a draft
Merged
#156 Service worker push handlers and client subscribe (Feature 19)
Merged
#154 Source attribution links when a URL is verifiably safe (Feature 15)
Merged
#151 Keep screen on via Wake Lock (Feature 15)
Merged
#155 Feature 18: Cook From What I Have and Quick Dinners
Merged
#157 Deflake the Supply run offline-queue tests (real-clock reset)
Merged
#152 Quick dinners screen (1j) (Feature 18)
Merged
#153 VAPID config and push subscription API (Feature 19)
Merged
#150 Cook from what I have screen (1i) (Feature 18)
Merged
#149 Tablet kitchen reading mode (2a) (Feature 15)
Merged
#147 Add to this week and favorite (Feature 15)
Merged
#148 Idea actions: add to Quest log and cook tonight (Feature 18)
Merged
#146 quick_ideas skill and job (Feature 18)
Merged
#145 Mobile recipe detail (1k) (Feature 15)
Merged
#144 ideas_from_ingredients skill and job (Feature 18)
Merged
#143 Dinner detail API (Feature 15)
Merged
#142 Release: Feature 17 (Shopping List and Supply Archive)
Merged
#140 Feature 17: Shopping List and Supply Archive
Merged
#141 Remediate feature-review HIGH: report the Supply run outcome after Push to Calendar
Merged
#139 Build the Supply archive screen at /plan/shopping/archive (Feature 17)
Merged
#131 Promote dev to main: Feature 16 (Google Calendar Sync) + release corrections
Merged
#138 Offline toggle queue for the Supply run (Feature 17)
Merged
#137 Move the deployment runbook out of the repository into CTXD
Merged
#136 Build the Supply run screen at /plan/shopping (Feature 17)
Merged
#135 Freeze ended weeks into the Supply archive and serve the archive API (Feature 17)
Merged
#134 archive_title skill: title Supply runs on generation (Feature 17)
Merged
#133 Supply run API, item toggles and the Push to Calendar hook (Feature 17)
Merged
#132 Shopping list generation from the plan (Feature 17)
Merged
#130 Feature 16: Google Calendar Sync
Merged
#129 Add the Google Calendar settings screen and wire Push to Calendar (Feature 16)
Merged
#128 Handle Google token failures and report Google Calendar status (Feature 16)
Merged
#127 Push plan to Google Calendar (Feature 16)
Merged
#126 Calendar list and selection (Feature 16)
Merged
#125 Google OAuth connect and disconnect (Feature 16)
Merged
#124 Release corrections round 4: verified pre-deploy backup step and honest rotation-check documentation
Merged
#123 Promote dev to main: Feature 14 (Weekly Plan Builder)
Merged
#121 Feature 14: Weekly Plan Builder
Merged
#122 Feature 14 integration fix: revalidate the draft pool, refuse duplicate week dinners, refresh the Quest log
Merged
#120 Drag-and-drop and keyboard swapping (Feature 14)
Merged
#119 Tablet and desktop plan manager (2c, 2d)
Merged
#118 Mobile swap sheet (Feature 14)
Merged
#117 Mobile draft board (1f)
Merged
#115 Promote dev to main: Feature 13 (Discover - Side Quest Suggestions)
Merged
#116 Rotation check: tried dinners and keep/drop decisions
Merged
#114 Plan service and weekly plan API
Merged
#98 Promote dev to main: Feature 12 (regular dinners and onboarding)
Merged
#113 draft_week skill v1
Merged
#110 Feature 13: Discover - Side Quest Suggestions
Merged
#112 Feature 13 integration fix 2: report a failed batch on deck load
Merged
#111 Feature 13 integration fix: deck error surfacing, active-batch tracking, modal key scope, three-card deck
Merged
#109 Quest log sheet on Discover
Merged
#108 Optimistic Discover decisions and deck refill
Merged
#107 Swipe gesture on the Discover deck
Merged
#106 Try it and Pass animations (Discover deck)
Merged
#105 Discover deck screen (mock 1a)
Merged
#102 Suggestion batches, deck and Try it / Pass API
Merged
#104 Release corrections round 3: redact candidate-lookup failures in logs
Merged
#103 Release corrections round 2: offline onboarding lockout and stale candidates after rename
Merged
#100 suggest_side_quests skill v1
Merged
#101 Release corrections: candidate URL exposure, onboarding notification honesty, pasted link cleanup
Merged
#99 Fix docker build: move dedupe cases fixture into web
Merged
#94 Feature 12: Regular dinners and onboarding
Merged
#97 Integration fix 3: keep recipe_url out of dinner responses (Feature 12 review F1)
Merged
#96 Integration fix 2: conditional recipe repairs and no pasted links in logs (Feature 12 review F1, F2)
Merged
#95 Integration fix: Feature 12 feature-review findings F1-F8
Merged
#93 Regular dinners management screen
Merged
#92 Onboarding step 3 shell
Merged
#91 Onboarding steps 1 and 2 (mock 1h) with first-run redirect
Merged
#90 Background grounding and recipe fix-up API
Merged
#89 Dinners API for Regulars
Merged
#87 Promote dev to main: Feature 11 (settings home and Admin AI assistant)
Merged
#88 Deflake TestFetchCanceledWaitHoldsNoSlot
Merged
#86 Feature 11: Settings home and Admin AI assistant
Merged
#85 Desktop and tablet settings layout (mock 2e)
Merged
#84 Household settings screen
Merged
#83 Recipe search settings section
Merged
#82 Admin AI assistant screen (mock 1o)
Merged
#81 Settings home screen (mock 1p)
Merged
#80 AI settings API with key management
Merged
#79 Promote dev to main: Feature 10 (recipe grounding and photos)
Merged
#78 Feature 10: Recipe grounding and photos
Merged
#77 SearXNG sidecar in compose
Merged
#76 Promote dev to main: Feature 07 (deployment, identity and backups)
Merged
#75 Feature 07: Deployment, identity and backups
Merged
#74 Complete the deployment runbook
Merged
#73 Litestream replication and proven restore
Merged
#72 Host firewall allowlist unit (DOCKER-USER, port 8090)
Merged
#70 Grounding pipeline and recipe-search settings API
Merged
#71 Promote dev to main: Feature 06 (PWA shell and offline)
Merged
#58 Feature 06: PWA shell and offline
Merged
#69 normalize_recipe skill
Merged
#68 Photo cache and /media endpoint
Merged
#67 Search providers: SearXNG and Brave with ranking
Merged
#66 schema.org Recipe JSON-LD extractor
Merged
#65 SSRF-safe recipe fetcher
Merged
#63 Promote dev to main: Features 08-09
Merged
#64 Return context error when a retry backoff wait is cancelled
Merged
#62 Feature 09: AI harness and skills framework
Merged
#61 Concurrency guards: single-flight, semaphore and timeouts
Merged
#60 ai_runs logging, redaction and retention
Merged
#59 Name normalization and dedupe
Merged
#56 iOS install hint component
Merged
#57 Household context builder with token budget
Merged
#55 Layered prompt rendering from embedded templates
Merged
#52 Update prompt and offline indicator
Merged
#54 Compose stack and env template
Merged
#53 Skill harness interface and repair retry
Merged
#51 Service worker caching strategy
Merged
#50 Web app manifest and icons
Merged
#49 Feature 08: LLM provider layer
Merged
#48 Retry, backoff and default Generate timeout
Merged
#47 Promote dev to main: Features 01–05
Merged
#46 Add xAI Grok as a provider
Merged
#43 Feature 05: Frontend foundation and design system
Merged
#44 Provider presets and factory
Merged
#45 Keep the CSRF token on same-origin API calls and lint colours in the build
Merged
#41 Ollama native adapter
Merged
#42 API client, auth bootstrap and job polling
Merged
#40 Anthropic Messages adapter
Merged
#35 Feature 08 task 2: OpenAI-compatible adapter
Merged
#39 Nav pill slide animation
Merged
#38 Responsive app shell, routes and navigation
Merged
#37 Photo and Icon components
Merged
#36 Sheet, ErrorBanner, Skeleton and EmptyState
Merged
#34 Feature 05 task 2: Core UI primitives
Merged
#32 Feature 05 task 1: Design tokens and self-hosted fonts
Merged
#33 Feature 08 task 1: Provider interface, typed errors and Fake provider
Merged
#30 Feature 04: Platform Services - Secrets, Settings, Time and Jobs
Merged
#31 Feature 04 integration fix: authenticated job enqueue API and progressive HTTP flow
Merged
#29 Feature 04 task 5: Async job runner and GET /api/v1/jobs/{id}
Merged
#28 Feature 04 task 4: Default seeding for AI settings and notification preferences
Merged
#27 Feature 04 task 3 (rebased): Household settings seeding and API
Merged
#24 Feature 03: Authentik OIDC Sessions
Merged
#26 Feature 03 integration fix: sanitize ID-token verification errors
Merged
#25 Feature 03 integration fix: sanitize discovery errors and narrow CSRF exemption
Merged
#23 Feature 03 task 5: Trusted proxy handling for forwarded headers
Merged
#22 Feature 03 task 4: CSRF protection and GET /api/v1/me
Merged
#21 Feature 03 task 3: Household group gate and auth middleware
Merged
#19 Feature 03 task 2: Server-side sessions, cookie and logout
Merged
#18 Feature 04 task 2: Household week and local-time utilities
Merged
#16 Feature 03 task 1: OIDC login and callback against Authentik
Merged
#17 Feature 04 task 1: secretbox: AES-256-GCM secrets at rest
Merged
#14 Feature 02: SQLite Data Layer and Schema
Merged
#15 Feature 02 integration fix: repository coverage and boot-path tests
Merged
#13 Feature 02 task 4: sqlc configuration and core queries
Merged
#12 Feature 02 task 3: Initial v1 schema migration
Merged
#11 Feature 02 task 2: Store helpers: transactions, ULIDs and time conventions
Merged
#10 Feature 02 task 1: SQLite connection and embedded migration runner
Merged
#8 Feature 01: Repository Scaffold and CI
Merged
#9 Feature 01 integration fix: CI build parity with make build
Merged
#7 Feature 01 task 6: AGENTS.md, CLAUDE.md, README and architecture docs
Merged
#6 Feature 01 task 5: Gitea Actions CI workflow
Merged
#5 Feature 01 task 4: Makefile and multi-stage Dockerfile
Merged
#4 Feature 01 task 3: Embed the PWA build with SPA fallback
Merged
#3 Feature 01 task 2: Vite React TypeScript web skeleton
Merged
#2 Feature 01 task 1: Go module, fail-fast config and /health
Merged
#1 Design files