dev_agent and Claude Opus 5.5
f77960ad05
Keep a week's pending push across leaving the week and coming back
...
CI / ci (pull_request) Successful in 4m25s
CI / ci (push) Successful in 4m21s
A push to Calendar now lives in the query client's mutation cache, keyed by
week, as a swap does, instead of in the Draft board's own useMutation. A
board remounted by leaving the week and coming back therefore still sees a
push pending, including one held open by the plan_changed reread, and keeps
Push and Retry disabled until that read lands. The reread now refetches the
week's plan even while it is not shown, so a return finds the changed plan
in the cache rather than the stale one.
Tests leave the week and come back with the reread held open (no second
POST; the changed plan, then Retry, push once), and let the reread land
while the week is left (the board returns on the changed plan).
Task: 677261bc-1a7c-4d96-b8f9-7601caf2186d
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-08 01:23:01 -04:00
dev_agent and Claude Opus 5.5
cc8a08aadc
Hold a plan_changed push until the changed plan is shown; announce reconnect
...
CI / ci (push) Successful in 4m21s
CI / ci (pull_request) Successful in 4m25s
A push refused with plan_changed now stays pending until the plan has been
read again, so Push and Retry stay disabled until the changed plan is on
screen and nothing unreviewed can be pushed. A test holds that read back and
checks that no second push is sent meanwhile, and that Retry pushes once it
lands.
The reconnect banner's reason and required action are now an alert, as
ErrorBanner's message is, so a calendar request that turns the screen to
reconnect required is announced.
Task: 677261bc-1a7c-4d96-b8f9-7601caf2186d
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-08 01:03:40 -04:00
dev_agent and Claude Opus 5.5
2b5350bd62
Add the Google Calendar settings screen and wire Push to Calendar (Feature 16)
...
CI / ci (push) Successful in 4m26s
CI / ci (pull_request) Successful in 4m16s
/settings/calendar now shows the Google Calendar connection: "Connect
Google Calendar" (a full-page navigation to the connect endpoint) when not
connected; "Connected · {calendar}" in teal-800 with a picker of the
writable calendars, saved on choice, and Disconnect behind a confirmation
when connected; and a grape banner with Reconnect, no picker, when Google
has refused the grant. The settings list's Google Calendar row reads the
same connection instead of the placeholder endpoint.
The plan screens' "Looks good — push to Calendar" and "Push to Calendar"
buttons now POST /api/v1/plans/{weekStart}/push-calendar, showing progress
and storing the synced plan the server answers with. Failures only the
settings can fix (google_reconnect_required, no_calendar, not_connected,
calendar_unavailable) link to /settings/calendar; plan_changed reads the
plan again; any other failure offers Retry. The mobile Draft board shows
the existing sync status line under its push button.
Maestro task 677261bc-1a7c-4d96-b8f9-7601caf2186d.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-08 00:44:58 -04:00
orchestrator-agent
2e16ff1d5a
Handle Google token failures and report Google Calendar status (Feature 16) ( #128 )
...
CI / ci (push) Successful in 4m27s
Co-authored-by: orchestrator-agent <20+orchestrator-agent@code.cubecraftcreations.com >
2026-10-08 00:34:47 -04:00
orchestrator-agent
6262489376
Push plan to Google Calendar (Feature 16) ( #127 )
...
CI / ci (push) Successful in 3m56s
Co-authored-by: orchestrator-agent <20+orchestrator-agent@code.cubecraftcreations.com >
2026-10-07 23:27:46 -04:00
orchestrator-agent
482bec9727
Calendar list and selection (Feature 16) ( #126 )
...
CI / ci (push) Successful in 3m36s
Co-authored-by: orchestrator-agent <20+orchestrator-agent@code.cubecraftcreations.com >
2026-10-07 21:57:46 -04:00
orchestrator-agent
f06b57c921
Google OAuth connect and disconnect (Feature 16) ( #125 )
...
CI / ci (push) Successful in 3m44s
Co-authored-by: orchestrator-agent <20+orchestrator-agent@code.cubecraftcreations.com >
2026-10-07 21:06:29 -04:00
orchestrator-agent
5ac5982c1f
Release corrections round 4: verified pre-deploy backup step and honest rotation-check documentation ( #124 )
...
CI / ci (push) Successful in 3m16s
Co-authored-by: orchestrator-agent <20+orchestrator-agent@code.cubecraftcreations.com >
2026-10-07 20:02:53 -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
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
0c89eef577
Deflake TestFetchCanceledWaitHoldsNoSlot ( #88 )
...
CI / ci (push) Successful in 1m59s
Co-authored-by: dev_agent <dev_agent@cubecraftlabs.com >
2026-10-06 13:18:26 -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
67e44a506a
Feature 07: Deployment, identity and backups ( #75 )
...
CI / ci (push) Successful in 1m45s
Co-authored-by: dev_agent <dev_agent@cubecraftlabs.com >
2026-10-05 20:59:47 -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
e6fd24db0a
Return context error when a retry backoff wait is cancelled ( #64 )
...
CI / ci (push) Successful in 1m34s
Co-authored-by: dev_agent <dev_agent@cubecraftlabs.com >
2026-10-05 11:41:23 -04:00
dev_agent
72fa311de9
Feature 09: AI harness and skills framework ( #62 )
...
CI / ci (pull_request) Successful in 1m34s
CI / ci (push) Successful in 1m36s
Co-authored-by: dev_agent <dev_agent@cubecraftlabs.com >
2026-10-05 11:18:53 -04:00
approver_agent
8adbd2d7c2
Merge pull request 'Feature 08: LLM provider layer' ( #49 ) from feature/5dd6e253-cc9b-41f3-9091-bb834f7a373a-llm-provider-layer into dev
CI / ci (push) Successful in 1m31s
2026-10-04 16:13:44 -04:00
dev_agent
b347e1c911
Retry, backoff and default Generate timeout ( #48 )
...
CI / ci (push) Successful in 1m28s
CI / ci (pull_request) Successful in 1m30s
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 11:02:55 -04:00
dev_agent
e105cdb9c5
Add xAI Grok as a provider ( #46 )
...
CI / ci (push) Successful in 1m28s
Co-authored-by: dev_agent <dev_agent@cubecraftlabs.com >
Co-committed-by: dev_agent <dev_agent@cubecraftlabs.com >
2026-10-04 09:36:10 -04:00
approver_agent
d80012a821
Merge pull request 'Feature 05: Frontend foundation and design system' ( #43 ) from feature/64e5bb19-c9a2-4c6a-8f0c-aceae43fb732-frontend-foundation into dev
Independent review Codex gpt-6-sol high: APPROVED (0 findings)
CI / ci (pull_request) Successful in 1m32s
CI / ci (push) Successful in 1m36s
2026-10-04 09:18:57 -04:00
dev_agent
9ace3aba9f
Provider presets and factory ( #44 )
...
CI / ci (push) Successful in 1m28s
Co-authored-by: dev_agent <dev_agent@cubecraftlabs.com >
Co-committed-by: dev_agent <dev_agent@cubecraftlabs.com >
2026-10-04 09:18:34 -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
32ab0c0b6d
Ollama native adapter ( #41 )
...
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-04 08:47:05 -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
15886f2c55
Anthropic Messages adapter ( #40 )
...
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-04 08:09:20 -04:00
dev_agent
acd29c8221
Feature 08 task 2: OpenAI-compatible adapter ( #35 )
...
CI / ci (push) Successful in 1m28s
Co-authored-by: dev_agent <dev_agent@cubecraftlabs.com >
Co-committed-by: dev_agent <dev_agent@cubecraftlabs.com >
2026-10-04 07:41:45 -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
72042516e2
Feature 08 task 1: Provider interface, typed errors and Fake provider ( #33 )
...
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:14:12 -04:00
approver_agent
7cc96121e4
Merge pull request 'Feature 04: Platform Services - Secrets, Settings, Time and Jobs' ( #30 ) from feature/49e2f2e2-c9c1-4c1b-8d66-753ceeadbf75-platform-services into dev
CI / ci (push) Successful in 1m28s
2026-10-03 15:50:01 -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
3ba78d47bc
Feature 04 task 4: Default seeding for AI settings and notification preferences ( #28 )
...
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 14:58:30 -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 and Claude Opus 5.5
ea4047a852
Merge origin/dev (Feature 03) into Feature 04 integration
...
CI / ci (push) Successful in 1m26s
Feature 03 made the OIDC variables required, so the Feature 04 boot tests'
loadConfig helper now sets them alongside the secret key file.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-03 11:38:18 -04:00
approver_agent
41ff2ab114
Merge pull request 'Feature 03: Authentik OIDC Sessions' ( #24 ) from feature/9c4eba48-9a49-4b73-a85f-a4bc19eb4062-authentik-oidc-sessions into dev
CI / ci (push) Successful in 1m30s
2026-10-03 11:36:30 -04:00
dev_agent
df692ef214
Feature 03 integration fix: sanitize ID-token verification errors ( #26 )
...
CI / ci (push) Successful in 1m26s
Independent review Codex gpt-6-sol high: APPROVED (0 findings)
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-03 11:32:36 -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