fix(mcp): support custom issue types and statuses (#1023)
Change IssueType and IssueStatus from Literal to str to support custom types configured via: bd config set types.custom "agent,molecule,event" bd config set status.custom "awaiting_review,awaiting_testing" The CLI handles validation of these values against the configured options. The MCP layer is just a transport and shouldn't re-validate what the CLI already validates. This fixes Pydantic validation errors when listing issues that have custom types like 'event', 'molecule', or 'agent'. Built-in types: bug, feature, task, epic, chore Built-in statuses: open, in_progress, blocked, deferred, closed
This commit is contained in:
committed by
GitHub
parent
d04bffb9b6
commit
68da7c9f78
@@ -392,9 +392,9 @@ async def beads_ready_work(
|
||||
|
||||
|
||||
async def beads_list_issues(
|
||||
status: Annotated[IssueStatus | None, "Filter by status (open, in_progress, blocked, deferred, closed)"] = None,
|
||||
status: Annotated[IssueStatus | None, "Filter by status (open, in_progress, blocked, deferred, closed, or custom)"] = None,
|
||||
priority: Annotated[int | None, "Filter by priority (0-4, 0=highest)"] = None,
|
||||
issue_type: Annotated[IssueType | None, "Filter by type (bug, feature, task, epic, chore)"] = None,
|
||||
issue_type: Annotated[IssueType | None, "Filter by type (bug, feature, task, epic, chore, or custom)"] = None,
|
||||
assignee: Annotated[str | None, "Filter by assignee"] = None,
|
||||
labels: Annotated[list[str] | None, "Filter by labels (AND: must have ALL)"] = None,
|
||||
labels_any: Annotated[list[str] | None, "Filter by labels (OR: must have at least one)"] = None,
|
||||
@@ -438,7 +438,7 @@ async def beads_create_issue(
|
||||
acceptance: Annotated[str | None, "Acceptance criteria"] = None,
|
||||
external_ref: Annotated[str | None, "External reference (e.g., gh-9, jira-ABC)"] = None,
|
||||
priority: Annotated[int, "Priority (0-4, 0=highest)"] = 2,
|
||||
issue_type: Annotated[IssueType, "Type: bug, feature, task, epic, or chore"] = DEFAULT_ISSUE_TYPE,
|
||||
issue_type: Annotated[IssueType, "Type: bug, feature, task, epic, chore, or custom"] = DEFAULT_ISSUE_TYPE,
|
||||
assignee: Annotated[str | None, "Assignee username"] = None,
|
||||
labels: Annotated[list[str] | None, "List of labels"] = None,
|
||||
id: Annotated[str | None, "Explicit issue ID (e.g., bd-42)"] = None,
|
||||
@@ -475,7 +475,7 @@ async def beads_create_issue(
|
||||
|
||||
async def beads_update_issue(
|
||||
issue_id: Annotated[str, "Issue ID (e.g., bd-1)"],
|
||||
status: Annotated[IssueStatus | None, "New status (open, in_progress, blocked, deferred, closed)"] = None,
|
||||
status: Annotated[IssueStatus | None, "New status (open, in_progress, blocked, deferred, closed, or custom)"] = None,
|
||||
priority: Annotated[int | None, "New priority (0-4)"] = None,
|
||||
assignee: Annotated[str | None, "New assignee"] = None,
|
||||
title: Annotated[str | None, "New title"] = None,
|
||||
|
||||
Reference in New Issue
Block a user