Seed settings with an auto-minted temporary key when auth is on (feature/svc-seed-auth) #371

Merged
weichen merged 14 commits from feature/svc-seed-auth into main 2026-10-11 15:37:29 +00:00
Owner

Why: seed_settings PUTs /api/settings/user without credentials, so under the PG tier always-on auth the seed always 401s and model config never lands; dev had to be seeded by hand on 2026-10-11.
Evidence: task card .task/feature-svc-seed-auth.md carries tool-written precheck / task-sync / make test receipts (post-sync make test exit=0, receipt cf79fb62); CI on this PR head is the authoritative gate; 3 new stub-based tests in tests/test_svc.py cover auth-on Bearer seeding with create/revoke, --seed-owner override, and the unchanged auth-off path.
Impact: svc.sh deployments passing SVC_MODEL_*/SVC_TAVILY_KEYS seed reliably in both auth modes; a temporary apikey (name=svc-seed) is minted for the first admin (or --seed-owner/SVC_SEED_OWNER) and revoked immediately after; the plaintext key never reaches logs.
Refs: scripts/svc.sh seed_settings + --seed-owner flag.

Why: seed_settings PUTs /api/settings/user without credentials, so under the PG tier always-on auth the seed always 401s and model config never lands; dev had to be seeded by hand on 2026-10-11. Evidence: task card .task/feature-svc-seed-auth.md carries tool-written precheck / task-sync / make test receipts (post-sync make test exit=0, receipt cf79fb62); CI on this PR head is the authoritative gate; 3 new stub-based tests in tests/test_svc.py cover auth-on Bearer seeding with create/revoke, --seed-owner override, and the unchanged auth-off path. Impact: svc.sh deployments passing SVC_MODEL_*/SVC_TAVILY_KEYS seed reliably in both auth modes; a temporary apikey (name=svc-seed) is minted for the first admin (or --seed-owner/SVC_SEED_OWNER) and revoked immediately after; the plaintext key never reaches logs. Refs: scripts/svc.sh seed_settings + --seed-owner flag.
weichen added 5 commits 2026-10-11 15:00:57 +00:00
Why: establish the authorized task workspace and its initial baseline.

Evidence: preserved precheck receipt in .task/feature-svc-seed-auth.md; R0=f382544ec7829abec379b9d1bba04c4ddaac52b7.

Impact: task metadata only; the feature workspace starts at f382544ec7.

Refs: .task/feature-svc-seed-auth.md
Why: seed_settings PUTs /api/settings/user without credentials, so under the PG tier's always-on auth the seed always 401s and model config silently never lands (reproduced on the dev instance 2026-10-11; settings had to be written by hand).
Evidence: make test-governance && make test exit=0 (receipt 8ffc3a89); tests/test_svc.py adds three stub-based cases - auth-on seeds with a Bearer header and create/revoke around the PUT, --seed-owner skips account lookup, auth-off stays credential-free; 14/14 svc tests green.
Impact: deployments that pass SVC_MODEL_*/SVC_TAVILY_KEYS now seed reliably regardless of auth mode; a temporary apikey (name=svc-seed) is minted for the first admin (or --seed-owner/SVC_SEED_OWNER) and revoked right after; auth-off path unchanged.
Refs: task card feature-svc-seed-auth.
Why: include the current integration baseline before verification.

Evidence: fetched origin/main=fefb3e060ec05cdadc6ee8bc55abff730fe79e21.

Impact: integrate upstream changes without rewriting task history.

Refs: task-sync
Why: bind the task validation checkpoint to the latest integration baseline.

Evidence: SELF recursive component checks; sync_base=fefb3e060ec05cdadc6ee8bc55abff730fe79e21; candidate=ec93fef4b0ca99736f1e31f429b6cd7b9b934093.

Impact: task metadata only.

Refs: .task/feature-svc-seed-auth.md
Record post-sync verification on the final head
ci / test-pg (pull_request) Successful in 1m29s
ci / test (pull_request) Successful in 4m5s
0445f78321
Why: task-sync merged newer main (fefb3e06) after the last receipt; the gate requires evidence on the exact head proposed for merge.
Evidence: fresh make test receipt exit=0 appended by make evidence.
Impact: card only.
Refs: feature-svc-seed-auth
weichen added 3 commits 2026-10-11 15:19:23 +00:00
Why: include the current integration baseline before verification.

Evidence: fetched origin/main=97002721485662c1e2abfa793f63d46f12cb14ce.

Impact: integrate upstream changes without rewriting task history.

Refs: task-sync
Why: bind the task validation checkpoint to the latest integration baseline.

Evidence: SELF recursive component checks; sync_base=97002721485662c1e2abfa793f63d46f12cb14ce; candidate=851f2b0353f37ebfdcb466c90eb7ad407d7a0ce0.

Impact: task metadata only.

Refs: .task/feature-svc-seed-auth.md
Record post-sync verification before merge
ci / test-pg (pull_request) Successful in 1m29s
ci / test (pull_request) Successful in 3m34s
35173b5265
Why: main advanced after the first review cycle; branch protection requires the head to contain latest main with fresh gate evidence.
Evidence: fresh make test receipt exit=0 on the synced head.
Impact: card only.
Refs: feature/svc-seed-auth
weichen added 3 commits 2026-10-11 15:28:35 +00:00
Why: include the current integration baseline before verification.

Evidence: fetched origin/main=0b53094b0d5a6699cccdbc7ca45e649f6bef477b.

Impact: integrate upstream changes without rewriting task history.

Refs: task-sync
Why: bind the task validation checkpoint to the latest integration baseline.

Evidence: SELF recursive component checks; sync_base=0b53094b0d5a6699cccdbc7ca45e649f6bef477b; candidate=3a1b16f7d68ec25ce7009dfe13b3c9da33608301.

Impact: task metadata only.

Refs: .task/feature-svc-seed-auth.md
Record post-sync verification before merge (second resync)
ci / test-pg (pull_request) Successful in 1m14s
ci / test (pull_request) Successful in 2m49s
26c9116e56
Why: main advanced again during the CI cycle; branch protection requires latest main in head.
Evidence: fresh make test receipt exit=0 on the resynced head (3a1b16f7 sync base 0b53094).
Impact: card only.
Refs: feature/svc-seed-auth
weichen added 3 commits 2026-10-11 15:33:42 +00:00
Why: include the current integration baseline before verification.

Evidence: fetched origin/main=5cbb38e788ab3050b8d9f23c21d98d2fd1587a31.

Impact: integrate upstream changes without rewriting task history.

Refs: task-sync
Why: bind the task validation checkpoint to the latest integration baseline.

Evidence: SELF recursive component checks; sync_base=5cbb38e788ab3050b8d9f23c21d98d2fd1587a31; candidate=089c41cd45feabcdc9b68ff2bce542cac71e3835.

Impact: task metadata only.

Refs: .task/feature-svc-seed-auth.md
Record post-sync verification before merge (third resync)
ci / test-pg (pull_request) Successful in 1m30s
ci / test (pull_request) Successful in 3m35s
d11059b672
Why: main gained the U5 ownership feature during the previous CI window; branch protection requires latest main in head.
Evidence: fresh make test receipt exit=0 on the resynced head.
Impact: card only.
Refs: feature/svc-seed-auth
weichen merged commit 422beb93ac into main 2026-10-11 15:37:29 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: weichen/Agent-System-Dev#371