dev_agent and Claude Opus 5.5
54b59965ed
Bound a Supply run toggle's session load and CSRF refresh by its deadline (Feature 17)
...
CI / ci (pull_request) Successful in 4m59s
CI / ci (push) Successful in 4m58s
- loadMe takes an optional abort signal; AuthBootstrap calls it with none.
- Each toggle try loads GET /api/v1/me itself under its deadline when the
session is not loaded, instead of joining a /me query already in flight
that may never answer.
- The /me refresh a csrf 403 makes is bounded by the request's signal: a
request whose signal aborts stops waiting at once and the refresh is no
longer shared, so the next csrf 403 starts a fresh /me. Requests without
a signal still share it, and it is aborted only once no request waits.
- Tests: a hung /me and a hung csrf refresh during a toggle exchange, both
recovered on the next try in order; the client's refresh sharing and abort.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-08 11:27:18 -04:00
dev_agent and Claude Opus 5.5
6d45f3ed0d
Bound Supply run toggle tries, retry without an online event, keep "will sync" across navigation (Feature 17)
...
CI / ci (push) Successful in 5m29s
CI / ci (pull_request) Successful in 5m26s
- Each try of a toggle (GET /api/v1/me and the PATCH) has a 10 s deadline:
past it the PATCH is aborted, the network marked failed, and the toggle
stays pending at the head of the queue to be tried again.
- A toggle waiting while the server cannot be reached is tried again when
the network status says it can be, or after a wait doubling from 1 s up
to 30 s, so recovery never depends on a browser online event.
- The "will sync" keys live in a page-lifetime store in offline.ts, not in
a component ref, so leaving and reopening the Supply run screen keeps
the marker until the toggle settles.
- ApiRequest takes an optional abort signal; the client sets no deadline.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-08 11:07:21 -04:00
dev_agent and Claude Opus 5.5
4ba6471070
Serialize Supply run toggle replay and keep "will sync" until it settles (Feature 17)
...
CI / ci (push) Successful in 5m15s
CI / ci (pull_request) Successful in 5m17s
Every Supply run toggle, made here or replayed from the saved queue, now
runs in one mutation scope whatever its week, so a replay spanning weeks
is sent strictly in the stored order and never overlaps a live toggle.
The "will sync" marker latches on a toggle that was pending while the
server could not be reached and stays until that toggle settles, rather
than vanishing as soon as the network returns while its replay is still
in flight.
The Supply run screen reads the saved schedule once per mount instead of
on every render, so a corrupt saved store offline reports its problem
once instead of looping.
Replay is documented as at-least-once: a toggle sets needed to a fixed
value, so a duplicate sent after a reload leaves the item and the counts
unchanged. Tests cover a two-week queue replayed in order one PATCH at a
time, a duplicate replay, corrupt storage offline and a delayed replay
answer.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-08 10:20:23 -04:00
dev_agent and Claude Opus 5.5
b7608d0a9a
Queue Supply run toggles made offline and replay them in order (Feature 17)
...
CI / ci (push) Successful in 4m57s
CI / ci (pull_request) Successful in 5m5s
A toggle made while the server cannot be reached (the browser is offline,
or its PATCH fails with a network error) now stays pending in the existing
serial toggle mutation, laid over the list with a "will sync" marker, and
is sent once the network status says the server is reachable again. Every
toggle is saved in order in localStorage until it settles, and
SupplyRunSync replays the saved ones after a reload. Any answer from the
server settles a toggle: a 409 archived discards it, puts the count back
and shows the refusal; other refusals surface as before and are never
queued.
The Supply run and the household schedule are saved on the device too, so
the Supply run screen opens offline from the saved list.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-08 09:58:49 -04:00
orchestrator-agent
5d7906ae0d
Build the Supply run screen at /plan/shopping (Feature 17) ( #136 )
...
CI / ci (push) Successful in 5m1s
Co-authored-by: orchestrator-agent <20+orchestrator-agent@code.cubecraftcreations.com >
2026-10-08 09:49:26 -04:00
orchestrator-agent
428e87674e
Freeze ended weeks into the Supply archive and serve the archive API (Feature 17) ( #135 )
...
CI / ci (push) Successful in 5m19s
Co-authored-by: orchestrator-agent <20+orchestrator-agent@code.cubecraftcreations.com >
2026-10-08 08:07:39 -04:00
orchestrator-agent
1cbd215286
archive_title skill: title Supply runs on generation (Feature 17) ( #134 )
...
CI / ci (push) Successful in 5m5s
Co-authored-by: orchestrator-agent <20+orchestrator-agent@code.cubecraftcreations.com >
2026-10-08 06:57:03 -04:00
orchestrator-agent
c4ea7a855e
Supply run API, item toggles and the Push to Calendar hook (Feature 17) ( #133 )
...
CI / ci (push) Successful in 5m32s
Co-authored-by: orchestrator-agent <20+orchestrator-agent@code.cubecraftcreations.com >
2026-10-08 05:21:11 -04:00
orchestrator-agent
7f7a91db0d
Shopping list generation from the plan (Feature 17) ( #132 )
...
CI / ci (push) Successful in 4m55s
Co-authored-by: orchestrator-agent <20+orchestrator-agent@code.cubecraftcreations.com >
2026-10-08 04:17:03 -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
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