Add description parameter to bd update command and MCP server

Fixes #114 and #122 by adding --description/-d flag to bd update CLI
and description parameter to MCP update_issue tool.

Changes:
- CLI: Added --description flag to updateCmd
- RPC: Added Description field to UpdateArgs
- Daemon: Updated updatesFromArgs to handle description
- MCP: Added description to update_issue, UpdateIssueParams, and clients
- Storage: description already supported in allowedUpdateFields

Tested in both daemon and direct modes.
This commit is contained in:
Steve Yegge
2025-10-23 10:59:52 -07:00
parent c835b81d72
commit 4f560379f2
9 changed files with 106 additions and 65 deletions

View File

@@ -427,6 +427,8 @@ class BdCliClient(BdClientBase):
args.extend(["--assignee", params.assignee])
if params.title:
args.extend(["--title", params.title])
if params.description:
args.extend(["--description", params.description])
if params.design:
args.extend(["--design", params.design])
if params.acceptance_criteria:

View File

@@ -279,6 +279,8 @@ class BdDaemonClient(BdClientBase):
args["assignee"] = params.assignee
if params.title is not None:
args["title"] = params.title
if params.description is not None:
args["description"] = params.description
data = await self._send_request("update", args)
return Issue(**(json.loads(data) if isinstance(data, str) else data))

View File

@@ -73,6 +73,7 @@ class UpdateIssueParams(BaseModel):
priority: int | None = Field(default=None, ge=0, le=4)
assignee: str | None = None
title: str | None = None
description: str | None = None
design: str | None = None
acceptance_criteria: str | None = None
notes: str | None = None

View File

@@ -322,7 +322,7 @@ async def create_issue(
@mcp.tool(
name="update",
description="""Update an existing issue's status, priority, assignee, design notes,
description="""Update an existing issue's status, priority, assignee, description, design notes,
or acceptance criteria. Use this to claim work (set status=in_progress).""",
)
@require_context
@@ -332,6 +332,7 @@ async def update_issue(
priority: int | None = None,
assignee: str | None = None,
title: str | None = None,
description: str | None = None,
design: str | None = None,
acceptance_criteria: str | None = None,
notes: str | None = None,
@@ -350,6 +351,7 @@ async def update_issue(
priority=priority,
assignee=assignee,
title=title,
description=description,
design=design,
acceptance_criteria=acceptance_criteria,
notes=notes,

View File

@@ -175,6 +175,7 @@ async def beads_update_issue(
priority: Annotated[int | None, "New priority (0-4)"] = None,
assignee: Annotated[str | None, "New assignee"] = None,
title: Annotated[str | None, "New title"] = None,
description: Annotated[str | None, "Issue description"] = None,
design: Annotated[str | None, "Design notes"] = None,
acceptance_criteria: Annotated[str | None, "Acceptance criteria"] = None,
notes: Annotated[str | None, "Additional notes"] = None,
@@ -191,6 +192,7 @@ async def beads_update_issue(
priority=priority,
assignee=assignee,
title=title,
description=description,
design=design,
acceptance_criteria=acceptance_criteria,
notes=notes,