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
dev_agent and Claude Opus 5.5
9a2de85f75
Return the recipe source url when it is verifiably free of secrets
...
CI / ci (push) Successful in 5m53s
CI / ci (pull_request) Successful in 5m2s
The dinner detail API now sends source.url when the stored recipe link
is https to a host with no userinfo, no query (not even a bare "?") and
no fragment (not even a bare "#"), and a port the client can parse;
otherwise source.url is null. The rule matches sourceUrl() in
web/src/dinners/detail.ts, so the recipe screen links "Recipe from
{site}" in a new tab for a safe link and shows plain text otherwise.
The site-name protection in pageSiteName is unchanged.
Task: c1a97243-3e41-42fc-a1a0-1ac684ccb463
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-09 08:07:38 -04:00
orchestrator-agent
d8ce8d8072
Dinner detail API (Feature 15) ( #143 )
...
CI / ci (push) Successful in 5m1s
Co-authored-by: orchestrator-agent <20+orchestrator-agent@code.cubecraftcreations.com >
2026-10-08 19:46:31 -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
ac7453f576
Release corrections round 3: redact candidate-lookup failures in logs ( #104 )
...
CI / ci (push) Successful in 2m45s
Co-authored-by: orchestrator-agent <20+orchestrator-agent@code.cubecraftcreations.com >
2026-10-07 00:40:53 -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
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
f25b28b39b
Feature 10: Recipe grounding and photos ( #78 )
...
CI / ci (push) Successful in 2m0s
Co-authored-by: dev_agent <dev_agent@cubecraftlabs.com >
2026-10-06 07:27:58 -04:00
dev_agent
bba9033ac5
Feature 04 integration fix: authenticated job enqueue API and progressive HTTP flow ( #31 )
...
CI / ci (push) Successful in 1m29s
Independent review Codex gpt-6-sol high: APPROVED (0 findings)
CI / ci (pull_request) Successful in 1m28s
Co-authored-by: dev_agent <dev_agent@cubecraftlabs.com >
Co-committed-by: dev_agent <dev_agent@cubecraftlabs.com >
2026-10-03 15:46:19 -04:00
dev_agent
e050736178
Feature 04 task 5: Async job runner and GET /api/v1/jobs/{id} ( #29 )
...
CI / ci (push) Successful in 1m29s
Independent review Codex gpt-6-sol high: CHANGES_REQUIRED (1 medium)
CI / ci (pull_request) Successful in 1m28s
Co-authored-by: dev_agent <dev_agent@cubecraftlabs.com >
Co-committed-by: dev_agent <dev_agent@cubecraftlabs.com >
2026-10-03 15:24:01 -04:00
dev_agent
8be5c56f6f
Feature 04 task 3 (rebased): Household settings seeding and API ( #27 )
...
CI / ci (push) Successful in 1m22s
Co-authored-by: dev_agent <dev_agent@cubecraftlabs.com >
Co-committed-by: dev_agent <dev_agent@cubecraftlabs.com >
2026-10-03 11:50:15 -04:00
dev_agent
88f7d0a5fa
Feature 03 integration fix: sanitize discovery errors and narrow CSRF exemption ( #25 )
...
CI / ci (push) Successful in 1m25s
CI / ci (pull_request) Failing after 1m2s
Co-authored-by: dev_agent <dev_agent@cubecraftlabs.com >
Co-committed-by: dev_agent <dev_agent@cubecraftlabs.com >
2026-10-03 11:22:53 -04:00
dev_agent
5833a73541
Feature 03 task 5: Trusted proxy handling for forwarded headers ( #23 )
...
CI / ci (push) Successful in 1m25s
CI / ci (pull_request) Successful in 1m24s
Independent review Codex gpt-6-sol high: CHANGES_REQUIRED (2 medium)
Co-authored-by: dev_agent <dev_agent@cubecraftlabs.com >
Co-committed-by: dev_agent <dev_agent@cubecraftlabs.com >
2026-10-03 11:05:33 -04:00
dev_agent
36b975ff5b
Feature 03 task 4: CSRF protection and GET /api/v1/me ( #22 )
...
CI / ci (push) Successful in 1m26s
Co-authored-by: dev_agent <dev_agent@cubecraftlabs.com >
Co-committed-by: dev_agent <dev_agent@cubecraftlabs.com >
2026-10-03 10:51:26 -04:00
dev_agent
b2201c5da1
Feature 03 task 3: Household group gate and auth middleware ( #21 )
...
CI / ci (push) Successful in 1m27s
Co-authored-by: dev_agent <dev_agent@cubecraftlabs.com >
Co-committed-by: dev_agent <dev_agent@cubecraftlabs.com >
2026-10-03 10:30:07 -04:00
dev_agent
99c8f1625f
Feature 03 task 1: OIDC login and callback against Authentik ( #16 )
...
CI / ci (push) Successful in 1m25s
Co-authored-by: dev_agent <dev_agent@cubecraftlabs.com >
Co-committed-by: dev_agent <dev_agent@cubecraftlabs.com >
2026-10-03 09:58:05 -04:00
dev_agent
85569b451f
Feature 01 task 3: Embed the PWA build with SPA fallback ( #4 )
...
Co-authored-by: dev_agent <dev_agent@cubecraftlabs.com >
Co-committed-by: dev_agent <dev_agent@cubecraftlabs.com >
2026-10-02 22:47:01 -04:00
dev_agent
e3d8c4d73d
Feature 01 task 1: Go module, fail-fast config and /health ( #2 )
...
Co-authored-by: dev_agent <dev_agent@cubecraftlabs.com >
Co-committed-by: dev_agent <dev_agent@cubecraftlabs.com >
2026-10-02 22:20:34 -04:00