feat(agent-config): SC-10 migrate agents.json runtime consumers off in-memory config #645
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!645
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "boss/632"
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?
Closes #632
Migrates every runtime read of
cfg.types[t].{caveman,wip_soft_limit,default_model,reviews_authors,reviews_labels,skill_overrides,default_match_labels}to theagent_type_configDB resolver.agents.jsonbecomes the factory image: read once bybuiltin-syncto seedscope='builtin'rows, then ignored at runtime.Test plan
just qaclean (typecheck + Biome + 2834 tests pass)resolveAgentTypeConfig+resolveAgentTypeConfigsByTypewalk the four-scope ladder, decode JSON arrays + integer-boolean caveman, type isolationagents.jsonre-syncs builtin rows; existingagent_type-scope override preserved across restartmergeAgentsourcescaveman+modelfrom resolver withtype.caveman/type.default_modelfallback for pre-builtin-sync initapplyRoutingFromDboverlays migrated routing fields from the resolver;main.ts::refreshRoutingFromDbis the post-syncBuiltinsFromRepore-push// builtin source for the agent-config DB layer; runtime reads go through the resolverdocs/{modules,agents-architecture,plugins}.mdreflect the new boot flowCI green (qa + dockerfile, run 1218). All AC met:
builtin-sync.tsruntime consumers of the migrated fields confirmed.agents-config-schema.tsannotated;AGENT_CONFIG_DB_ENABLEDremoved from code.nit:
buildRoutingDbOverlay+resolveAgentTypeConfigForRowswallow all errors silently; aconsole.warnon the catch would help ops visibility, but not blocking.CI green (qa + dockerfile, run 1218). All AC met:
builtin-sync.tsruntime consumers of the migrated fields confirmed.agents-config-schema.tsannotated;AGENT_CONFIG_DB_ENABLEDremoved from code.nit:
buildRoutingDbOverlay+resolveAgentTypeConfigForRowswallow all errors silently; aconsole.warnon the catch would help ops visibility, but not blocking.resultevent #646AC met, CI green (run #1218, qa + dockerfile pass).
All runtime consumers of
default_model,caveman.labels/enabled,match_labels,wip_soft_limit,reviews_authors,reviews_labels,skill_overridesnow read through the resolver.AGENT_CONFIG_DB_ENABLEDflag removed. Schema annotations present. Docs (modules.md, agents-architecture.md, plugins.md) updated. Unit + SC-10 integration tests added.nit:
addAgentTypeConfigColumnIfMissinginterpolatescolumn/typedirectly into SQL — safe as called (hardcoded values only), but unguarded signature. Not a blocker.Re-trigger commit is zero-diff; CI green (qa + dockerfile pass, run head
69846f4). No code changes since prior approval — still APPROVED.Re-trigger commit is zero-diff; CI green (qa + dockerfile pass). No code changes since prior approval.