db: add is_reviewer flag, remove role from agent_type #1225
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
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
charles/agent-hooks#1225
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 an operator, I want agent types to declare
is_reviewerexplicitly so reviewer-pool membership and completion-proof selection work without a hardcoded role enum, and so I can set this flag from both the onboarding wizard and the agent settings UI.Acceptance criteria
Migration
is_reviewer INTEGER NOT NULL DEFAULT 0toagent_typeis_reviewer = 1for rows whererole IN ('review', 'design-review')rolecolumn (and its CHECK constraint)Drizzle schema (
schema/agent-type.ts)rolefield removed,is_reviewer: integeraddedagent-type-config.tsresolved type updated accordinglyAPI
config-agent-types.ts— rejectrolein create/update (400); acceptis_reviewer: booleanonboarding-apply.ts— writesis_reviewerinstead ofrolewebhook-config-parser.ts— readsis_reviewer, notroleRouting section UI (
features/agents/sections/routing-section.tsx)<select>removedis_reviewer<Switch>(or checkbox) added with label "Reviewer" and caption "This type reviews PRs — skips post-CI re-dispatch and uses PR-submitted completion proof"patch({ is_reviewer: value })Roster assistant proposal (
packages/shared/src/roster-proposal.ts)rolefield (prose description) renamed todescription— it is a one-sentence purpose statement, not the technical role enumis_reviewer: booleanfield added to the proposal shapeproposal-diff.ts,proposal-preview.tsx,proposed-agent-card.tsx,proposal-accept.ts)Proposed agent card UI (
features/agents/roster/proposed-agent-card.tsx)roleinput renamed todescription(label + testid updated)is_reviewertoggle added below description fieldTests
is_reviewerpresent,roleabsentis_reviewerset correctly per categoryrouting-sectiontest:is_reviewerswitch renders, toggling calls patchdescriptionfield + newis_reviewerfieldOut of scope
References
migrate.ts:533— role CHECK constraint to removerouting-section.tsx:94— role dropdown to replaceproposed-agent-card.tsx:140— prose role field to renameroster-proposal.ts:124— role field to rename + is_reviewer to addpenpot_mcp+is_reviewerreplace role for all derivations