dev_agentandClaude Opus 5.5 067e85bd54
CI / ci (push) Failing after 7m33s
CI / ci (pull_request) Failing after 4m31s
Add service worker push handlers and client push subscribe
The worker's push listener shows the payload's title, body and tag with
the app icon and badge, carrying the same-origin url as its data; a
payload that is not a MealQuest notice (no payload, not JSON, no title,
wrong field types, an off-origin url) shows a generic MealQuest
notification and logs why, never throwing. notificationclick focuses
an open MealQuest window and navigates it to the url, or opens a new
window there. Both listeners delegate to pure functions in
web/src/push/notification.ts.

web/src/push/subscribe.ts adds subscribePush, which checks support,
asks for permission only during a tap (and before any await), subscribes
with the server's VAPID key, replacing a subscription made with an
older key, and POSTs exactly {endpoint, keys, user_agent?}; and
unsubscribePush, which DELETEs on the server and then unsubscribes the
browser, answering not-subscribed when there is nothing to remove.
usePush binds both to the app's API client.

Maestro task fb6dd817-2224-4800-9b7d-8499e856e171 (Feature 19).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 08:48:00 -04:00
2026-10-02 15:09:42 -04:00
2026-10-05 15:22:37 -04:00
2026-10-05 15:22:37 -04:00

MealQuest

MealQuest is a mobile-first Progressive Web App for weekly dinner planning for one household. The household lists the dinners it makes regularly, an AI assistant suggests new dinners to try (swipe "Try it" or "Pass"), and the app builds a weekly plan, pushes it to Google Calendar, and generates a shopping list grouped by dinner, kept as a browsable weekly history. It ships as a single Go service with the React PWA embedded in the binary.

Status: this repository is the Feature 01 scaffold (Go service with /health, embedded PWA skeleton, Makefile, Dockerfile, CI). The planned application is described in docs/ARCHITECTURE.md.

Running it locally

The developer setup (prerequisites, Authentik and Google clients, the MEALQUEST_* environment, make dev and the optional SearXNG sidecar) is runbook information and lives in CTXD: project mealquest, file RUNBOOKS.MD, section "Local development". Configuration is read only from the environment, and the service refuses to start, naming every missing or invalid variable.

Common commands

Command What it does
make dev Go server plus Vite dev server.
make test gofmt check, go vet, go test -race, web typecheck and tests.
make build Build the PWA, embed it, build the static binary bin/mealquest.
make docker Build the container image from the root Dockerfile.
S
Description
No description provided
Readme
14 MiB
Languages
Go 49.1%
TypeScript 28.3%
HTML 16.8%
JavaScript 2.7%
CSS 2.4%
Other 0.5%