Extract + Drizzle service_config + label_catalog + agent_type_* aggregates #845
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.
Blocks
Depends on
#849 Cleanup: delete
db.ts, lint-ban raw SQL outside DB layer, update docs
charles/claude-hooks
#843 Extract + Drizzle
flows aggregate (flows + runs + audit + legacy_forge_calls)
charles/claude-hooks
Reference
charles/claude-hooks#845
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
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?
As a maintainer, I want the resolver hot-path tables (
service_config,label_catalog,agent_type_config,agent_type_container,agent_type_routing, plugin/MCP/skill scope tables) split out and Drizzled, so thatdomain/agent-config/resolver.tscalls type-safe queries instead of raw SQL.Acceptance criteria
Extraction
service-config-store.ts+label-catalog.ts+agent-type-config.ts(split by aggregate).getSettings,patchSettingsDb, plus allgetServiceConfig,resolveAgentTypeConfig,resolveAgentTypeContainer,resolveAgentTypeRouting,getLabelCatalogForRepo,resolvePlugins,resolveMarketplaces,resolveMcpServers,resolveSkill,getAgentType,getSpeechConfigetc. that currently sit inresolver.tsbut talk SQL directly.Drizzle
docs/inheritance-contract.md).Tests
domain/agent-config/resolver.tsfor these tables (resolver becomes pure logic over typed queries).Out of scope
References
apps/server/src/domain/agent-config/resolver.ts— current SQL hot path.docs/inheritance-contract.md.flowsaggregate (flows + runs + audit + legacy_forge_calls)db.ts, lint-ban raw SQL outside DB layer, update docs🤖 Auto-assigned to code-lead (heuristic: default → code-lead (no specific label match; safer than code)). Reply
/unassignto reroute.