dev_agent
b472b35aaa
Merge remote-tracking branch 'origin/feature/293a89c5-bd98-4de4-9afd-5ca371e5e679-recipe-detail-and-kitchen-reading-mode' into task/source-attribution-links_c1a97243-3e41-42fc-a1a0-1ac684ccb463
CI / ci (push) Successful in 5m21s
CI / ci (pull_request) Successful in 5m9s
2026-10-09 10:11:16 -04:00
dev_agent
930e55ab43
Merge remote-tracking branch 'origin/dev' into HEAD
CI / ci (push) Successful in 5m4s
2026-10-09 10:11:06 -04:00
orchestrator-agent
839eb61f38
Deflake the Supply run offline-queue tests (real-clock reset) ( #157 )
...
CI / ci (push) Successful in 6m5s
Co-authored-by: orchestrator-agent <20+orchestrator-agent@code.cubecraftcreations.com >
2026-10-09 10:10:50 -04:00
dev_agent and Claude Opus 5.5
0c5772f48e
Withhold recipe source urls whose host the browser cannot parse
...
CI / ci (pull_request) Failing after 4m13s
CI / ci (push) Failing after 4m11s
safeSourceURL accepted hosts that Go's url.Parse takes but the browser's
URL parser refuses, such as "https://[bad]/curry ", so the detail API could
send a source.url that sourceUrl() in web/src/dinners/detail.ts rejects,
failing the whole recipe screen. The server now also requires a host the
browser parses as it stands: a bracketed host must be an IPv6 address
without a zone; any other must be ASCII letters, digits and hyphens in
non-empty dot-separated labels, with no punycode label and, when its last
label is a number, a valid dotted quad; and the host must be spelled out,
not percent-encoded. Any other link is withheld as before.
web/src/dinners/testdata/source_url_cases.json pins the source object
the handler sends for each stored link. The Go server test checks the
handler against it, and the recipe screen test renders each source from
it, so the two parsers cannot drift apart on those links.
Task: c1a97243-3e41-42fc-a1a0-1ac684ccb463
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-09 08:30:22 -04:00
orchestrator-agent
28e9c24fc7
Tablet kitchen reading mode (2a) (Feature 15) ( #149 )
...
CI / ci (push) Successful in 5m19s
Co-authored-by: orchestrator-agent <20+orchestrator-agent@code.cubecraftcreations.com >
2026-10-09 07:42:48 -04:00
orchestrator-agent
c454c76816
Add to this week and favorite (Feature 15) ( #147 )
...
CI / ci (push) Successful in 5m14s
Co-authored-by: orchestrator-agent <20+orchestrator-agent@code.cubecraftcreations.com >
2026-10-08 21:31:21 -04:00
orchestrator-agent
8068d06ff0
Mobile recipe detail (1k) (Feature 15) ( #145 )
...
CI / ci (push) Successful in 5m12s
Co-authored-by: orchestrator-agent <20+orchestrator-agent@code.cubecraftcreations.com >
2026-10-08 20:36:47 -04:00
orchestrator-agent
cb451baed4
Feature 17: Shopping List and Supply Archive ( #140 )
...
CI / ci (push) Successful in 5m45s
CI / ci (pull_request) Successful in 5m23s
Co-authored-by: orchestrator-agent <20+orchestrator-agent@code.cubecraftcreations.com >
2026-10-08 15:16:51 -04:00
orchestrator-agent
7003ff92ec
Feature 16: Google Calendar Sync ( #130 )
...
CI / ci (push) Successful in 4m51s
Co-authored-by: orchestrator-agent <20+orchestrator-agent@code.cubecraftcreations.com >
2026-10-08 03:13:21 -04:00
orchestrator-agent
1862f450db
Feature 14: Weekly Plan Builder ( #121 )
...
CI / ci (push) Successful in 3m51s
Co-authored-by: orchestrator-agent <20+orchestrator-agent@code.cubecraftcreations.com >
2026-10-07 16:53:23 -04:00
orchestrator-agent
5291457214
Feature 13: Discover - Side Quest Suggestions ( #110 )
...
CI / ci (push) Successful in 2m49s
Co-authored-by: orchestrator-agent <20+orchestrator-agent@code.cubecraftcreations.com >
2026-10-07 05:53:22 -04:00
orchestrator-agent
4a209623f5
Release corrections round 2: offline onboarding lockout and stale candidates after rename ( #103 )
...
CI / ci (push) Successful in 2m40s
Co-authored-by: orchestrator-agent <20+orchestrator-agent@code.cubecraftcreations.com >
2026-10-07 00:14:32 -04:00
orchestrator-agent
cb920714b0
Release corrections: candidate URL exposure, onboarding notification honesty, pasted link cleanup ( #101 )
...
CI / ci (push) Successful in 2m33s
Co-authored-by: orchestrator-agent <20+orchestrator-agent@code.cubecraftcreations.com >
2026-10-06 23:12:26 -04:00
orchestrator-agent
a3648397ee
Fix docker build: move dedupe cases fixture into web ( #99 )
...
CI / ci (pull_request) Successful in 2m26s
CI / ci (push) Successful in 2m38s
Co-authored-by: orchestrator-agent <20+orchestrator-agent@code.cubecraftcreations.com >
2026-10-06 21:51:48 -04:00
dev_agent
2b0e5ff01a
Feature 12: Regular dinners and onboarding ( #94 )
...
CI / ci (pull_request) Successful in 2m30s
CI / ci (push) Successful in 2m25s
Co-authored-by: dev_agent <dev_agent@cubecraftlabs.com >
2026-10-06 21:28:23 -04:00
dev_agent
fcbdebd6e8
Feature 11: Settings home and Admin AI assistant ( #86 )
...
CI / ci (push) Successful in 2m0s
Co-authored-by: dev_agent <dev_agent@cubecraftlabs.com >
2026-10-06 12:45:05 -04:00
dev_agent
81c5085f9a
Feature 06: PWA shell and offline ( #58 )
...
CI / ci (push) Successful in 1m40s
Co-authored-by: dev_agent <dev_agent@cubecraftlabs.com >
2026-10-05 15:22:37 -04:00
dev_agent
5758f198e4
Keep the CSRF token on same-origin API calls and lint colours in the build ( #45 )
...
CI / ci (push) Successful in 1m33s
CI / ci (pull_request) Successful in 1m31s
Independent review Codex gpt-6-sol high: APPROVED (0 findings)
Co-authored-by: dev_agent <dev_agent@cubecraftlabs.com >
Co-committed-by: dev_agent <dev_agent@cubecraftlabs.com >
2026-10-04 09:08:42 -04:00
dev_agent
048d5dd71a
API client, auth bootstrap and job polling ( #42 )
...
CI / ci (push) Successful in 1m32s
CI / ci (pull_request) Successful in 1m33s
Co-authored-by: dev_agent <dev_agent@cubecraftlabs.com >
Co-committed-by: dev_agent <dev_agent@cubecraftlabs.com >
2026-10-04 08:46:40 -04:00
dev_agent
c899f07b1f
Nav pill slide animation ( #39 )
...
CI / ci (push) Successful in 1m29s
Co-authored-by: dev_agent <dev_agent@cubecraftlabs.com >
Co-committed-by: dev_agent <dev_agent@cubecraftlabs.com >
2026-10-03 18:52:57 -04:00
dev_agent
998658b42c
Responsive app shell, routes and navigation ( #38 )
...
CI / ci (push) Successful in 1m30s
Co-authored-by: dev_agent <dev_agent@cubecraftlabs.com >
Co-committed-by: dev_agent <dev_agent@cubecraftlabs.com >
2026-10-03 18:40:34 -04:00
dev_agent
a453a84231
Photo and Icon components ( #37 )
...
CI / ci (push) Successful in 1m30s
Co-authored-by: dev_agent <dev_agent@cubecraftlabs.com >
Co-committed-by: dev_agent <dev_agent@cubecraftlabs.com >
2026-10-03 18:29:16 -04:00
dev_agent
732aa92a8c
Sheet, ErrorBanner, Skeleton and EmptyState ( #36 )
...
CI / ci (push) Successful in 1m30s
Co-authored-by: dev_agent <dev_agent@cubecraftlabs.com >
Co-committed-by: dev_agent <dev_agent@cubecraftlabs.com >
2026-10-03 18:22:59 -04:00
dev_agent
02f1dd6491
Feature 05 task 2: Core UI primitives ( #34 )
...
CI / ci (push) Successful in 1m31s
Co-authored-by: dev_agent <dev_agent@cubecraftlabs.com >
Co-committed-by: dev_agent <dev_agent@cubecraftlabs.com >
2026-10-03 16:34:59 -04:00
dev_agent
496f2e5375
Feature 05 task 1: Design tokens and self-hosted fonts ( #32 )
...
CI / ci (push) Successful in 1m29s
Co-authored-by: dev_agent <dev_agent@cubecraftlabs.com >
Co-committed-by: dev_agent <dev_agent@cubecraftlabs.com >
2026-10-03 16:16:25 -04:00
dev_agent
f0b2696059
Feature 01 task 2: Vite React TypeScript web skeleton ( #3 )
...
Co-authored-by: dev_agent <dev_agent@cubecraftlabs.com >
Co-committed-by: dev_agent <dev_agent@cubecraftlabs.com >
2026-10-02 22:26:34 -04:00