dev_agent and Claude Opus 5.5
b013b542e3
Hand back rate-limit slots of requests that are never sent
...
CI / ci (push) Successful in 1m36s
CI / ci (pull_request) Successful in 1m36s
waitTurn now checks the context before taking a host's slot, so a request
canceled before Fetch takes none. The request let through takes the slot
and gets a release; limitedTransport calls it when the round trip fails
before the request headers are written (traced with httptrace), restoring
the host's previous send time and waking requests waiting for their turn.
Adds TestFetchUnsentRequestHoldsNoSlot (canceled before Fetch and failed
dial on a host with no previous request; the next request does not wait)
and TestReleaseWakesWaiter.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-05 12:12:37 -04:00
dev_agent and Claude Opus 5.5
177b2dd2e7
Harden recipe fetcher: public-only check, cache copies, rate-limit slots
...
CI / ci (push) Successful in 1m35s
CI / ci (pull_request) Successful in 1m33s
- IsPublic now refuses every non-globally-reachable IPv4 special-purpose
range (adds 192.0.0.0/24, TEST-NET-1/2/3, 192.88.99.0/24, benchmarking
198.18.0.0/15) and admits IPv6 only from global unicast 2000::/3, minus
its documentation, 6to4, Teredo and IETF protocol-assignment ranges.
Test fixtures move off TEST-NET-3 to public addresses; Fetch-level tests
cover the new blocked ranges and the public IPv6 path.
- The cache stores and returns copies of Page.Body, so callers cannot
alter cached bytes or race with other readers.
- The per-host rate limiter advances only when a request is let through;
a wait that ends with its context holds no slot.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-05 12:01:12 -04:00
dev_agent and Claude Opus 5.5
e7dbcf3d2c
Add SSRF-safe recipe fetcher
...
CI / ci (push) Successful in 1m36s
CI / ci (pull_request) Successful in 1m35s
internal/recipes.Fetcher fetches https:// URLs only. Its DialContext
resolves the host once, refuses unless every answer is public (loopback,
RFC 1918, link-local, CGNAT 100.64/10, multicast, unspecified, reserved,
IPv6 ULA/link-local/multicast and IPv4-mapped or -embedding forms are
blocked) and dials the address it checked, so a rebinding DNS answer
cannot swap in a private IP. Keep-alives and environment proxies are off,
so every request and redirect hop dials and checks afresh.
At most 3 redirects, each re-checked for scheme and address; bodies over
2 MB are an error rather than truncated; 10 s for the whole fetch; a
descriptive User-Agent; requests to one host at least 1 s apart; 2xx
pages cached by URL for an hour.
Tests use a stub resolver and httptest TLS servers.
Maestro task: f4414e41-bd99-498d-a613-a90053963249
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-05 11:51:49 -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
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
f0bdd0ef40
Feature 03 task 2: Server-side sessions, cookie and logout ( #19 )
...
CI / ci (push) Successful in 1m24s
Co-authored-by: dev_agent <dev_agent@cubecraftlabs.com >
Co-committed-by: dev_agent <dev_agent@cubecraftlabs.com >
2026-10-03 10:20:14 -04:00
dev_agent
5e78465d34
Feature 04 task 2: Household week and local-time utilities ( #18 )
...
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:06 -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
6d5c14f778
Feature 04 task 1: secretbox: AES-256-GCM secrets at rest ( #17 )
...
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 09:46:29 -04:00
approver_agent
19ea8d52d8
Merge pull request 'Feature 02: SQLite Data Layer and Schema' ( #14 ) from feature/b9c21d67-bf72-411a-901d-77e57352d398-sqlite-data-layer-and-schema into dev
CI / ci (push) Successful in 1m23s
2026-10-03 09:30:47 -04:00
dev_agent
c1a868c48b
Feature 02 integration fix: repository coverage and boot-path tests ( #15 )
...
CI / ci (push) Successful in 1m22s
CI / ci (pull_request) Successful in 1m24s
Independent review Codex gpt-6-sol high: APPROVED (0 high/medium; 1 low)
Co-authored-by: dev_agent <dev_agent@cubecraftlabs.com >
Co-committed-by: dev_agent <dev_agent@cubecraftlabs.com >
2026-10-03 09:27:22 -04:00
dev_agent
17a69f4de7
Feature 02 task 4: sqlc configuration and core queries ( #13 )
...
CI / ci (push) Successful in 1m25s
CI / ci (pull_request) Successful in 1m24s
Independent review Codex gpt-6-sol high: CHANGES_REQUIRED (4 medium)
Co-authored-by: dev_agent <dev_agent@cubecraftlabs.com >
Co-committed-by: dev_agent <dev_agent@cubecraftlabs.com >
2026-10-03 09:15:40 -04:00
dev_agent
fa7c6b7218
Feature 02 task 3: Initial v1 schema migration ( #12 )
...
CI / ci (push) Successful in 50s
Co-authored-by: dev_agent <dev_agent@cubecraftlabs.com >
Co-committed-by: dev_agent <dev_agent@cubecraftlabs.com >
2026-10-03 09:06:21 -04:00
dev_agent
b06d1680a3
Feature 02 task 2: Store helpers: transactions, ULIDs and time conventions ( #11 )
...
CI / ci (push) Successful in 48s
Co-authored-by: dev_agent <dev_agent@cubecraftlabs.com >
Co-committed-by: dev_agent <dev_agent@cubecraftlabs.com >
2026-10-03 08:54:55 -04:00
dev_agent
e9ee4e768a
Feature 02 task 1: SQLite connection and embedded migration runner ( #10 )
...
CI / ci (push) Successful in 49s
Co-authored-by: dev_agent <dev_agent@cubecraftlabs.com >
Co-committed-by: dev_agent <dev_agent@cubecraftlabs.com >
2026-10-03 00:54:02 -04:00
approver_agent
65b27a7689
Merge pull request 'Feature 01: Repository Scaffold and CI' ( #8 ) from feature/19ad7feb-aba0-4b76-ab70-c47d71ed5e76-repository-scaffold-and-ci into dev
CI / ci (push) Successful in 27s
2026-10-03 00:40:39 -04:00
dev_agent
645b3c00b2
Feature 01 integration fix: CI build parity with make build ( #9 )
...
CI / ci (push) Successful in 26s
CI / ci (pull_request) Successful in 25s
Independent review Approved — 0 high findings (feature #8)
Co-authored-by: dev_agent <dev_agent@cubecraftlabs.com >
Co-committed-by: dev_agent <dev_agent@cubecraftlabs.com >
2026-10-03 00:36:48 -04:00
dev_agent
9f4537d0cb
Feature 01 task 6: AGENTS.md, CLAUDE.md, README and architecture docs ( #7 )
...
CI / ci (pull_request) Successful in 24s
CI / ci (push) Successful in 23s
Co-authored-by: dev_agent <dev_agent@cubecraftlabs.com >
Co-committed-by: dev_agent <dev_agent@cubecraftlabs.com >
2026-10-03 00:26:15 -04:00
dev_agent
ec13423b6f
Feature 01 task 5: Gitea Actions CI workflow ( #6 )
...
CI / ci (push) Successful in 24s
Co-authored-by: dev_agent <dev_agent@cubecraftlabs.com >
Co-committed-by: dev_agent <dev_agent@cubecraftlabs.com >
2026-10-03 00:12:39 -04:00
dev_agent
c28dff18cd
Feature 01 task 4: Makefile and multi-stage Dockerfile ( #5 )
...
Co-authored-by: dev_agent <dev_agent@cubecraftlabs.com >
Co-committed-by: dev_agent <dev_agent@cubecraftlabs.com >
2026-10-02 23:06:58 -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