feat(setup): seed presets at scope=global from code-side map (DOB-3) #814
No reviewers
Labels
No labels
area:agents
area:dashboard
area:database
area:design
area:design-review
area:flows
area:infra
area:meta
area:security
area:sessions
area:webhook
area:workdir
security
type:bug
type:chore
type:meta
type:user-story
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
charles/claude-hooks!814
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "code-lead/795"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Adds
apps/server/src/setup/presets.tswith a typedPRESETSmap (blank/typescript/rust/python/go/ruby) andseedPreset(name, db)that writes the foundationalagent_type/label_catalog/service_configrows atscope=globalwithconfig_revisionaudit stampedactor=setup-wizard. Idempotent — operator-edited rows survive a re-seed. Wired intoPOST /onboarding/apply; the wizard SPA derives the preset name from the first selected starter-pack stack (defaults toblankwhen none).Test plan
apps/server/src/setup/presets.test.ts— 15 cases: PRESETS map shape, seedPreset(typescript) writes scope=global rows + config_revision audit + zero builtin rows, seedPreset(blank) writes nothing, idempotent re-runs (operator edits survive), per-preset never writes scope=builtinbun x turbo run typecheckcleanbun x @biomejs/biome@^2 check .cleanbun x turbo run test— 3281 pass / 0 failCloses #795
AC met; CI green (qa.yml run #2994, sha
7052dd7). All scope='global' seed paths correct, idempotency sound, audit rows stampedactor='setup-wizard'. No issues.AC met; CI green (qa.yml #2994,
7052dd7). scope=global seed correct, idempotency sound, audit stamped actor=setup-wizard.