feat: expose title param in update_board_item tool #52

Merged
forgejo_admin merged 1 commit from 45-expose-title-param-update-board-item into main 2026-03-27 21:59:36 +00:00

Summary

  • Add optional title parameter to the update_board_item MCP tool
  • The SDK and API already support title updates on board items, but the MCP tool omitted the parameter
  • Agents can now fix stale board item titles programmatically

Changes

  • src/pal_e_mcp/tools/boards.py: Added title: str | None = None parameter to update_board_item, with passthrough to the PATCH body when non-None. Follows the same pattern as points and labels.
  • tests/test_param_alignment.py: Added test_title_forwarded and test_title_omitted_not_in_body. Updated test_omitted_fields_not_in_body to also assert title absence.

Test Plan

  • Tests pass locally (uv run python -m pytest tests/ -v -- 61/61 pass)
  • Title param forwarded to SDK PATCH body when provided
  • Title param omitted from body when not provided (backward compatible)
  • ruff format --check and ruff check both clean

Review Checklist

  • Passed automated review-fix loop
  • No secrets committed
  • No unnecessary file changes
  • Commit messages are descriptive
  • Closes #45
  • project-pal-e-docs -- the project this work belongs to
  • pal-e-docs #192 -- companion issue (sync_board title drift detection)
## Summary - Add optional `title` parameter to the `update_board_item` MCP tool - The SDK and API already support title updates on board items, but the MCP tool omitted the parameter - Agents can now fix stale board item titles programmatically ## Changes - `src/pal_e_mcp/tools/boards.py`: Added `title: str | None = None` parameter to `update_board_item`, with passthrough to the PATCH body when non-None. Follows the same pattern as `points` and `labels`. - `tests/test_param_alignment.py`: Added `test_title_forwarded` and `test_title_omitted_not_in_body`. Updated `test_omitted_fields_not_in_body` to also assert `title` absence. ## Test Plan - [x] Tests pass locally (`uv run python -m pytest tests/ -v` -- 61/61 pass) - [x] Title param forwarded to SDK PATCH body when provided - [x] Title param omitted from body when not provided (backward compatible) - [x] `ruff format --check` and `ruff check` both clean ## Review Checklist - [x] Passed automated review-fix loop - [x] No secrets committed - [x] No unnecessary file changes - [x] Commit messages are descriptive ## Related Notes - Closes #45 - `project-pal-e-docs` -- the project this work belongs to - pal-e-docs #192 -- companion issue (sync_board title drift detection)
feat: expose title parameter in update_board_item MCP tool
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
ci/woodpecker/pr/woodpecker Pipeline was successful
d4f6ae41a6
The SDK and API already support updating board item titles, but the MCP
tool omitted the parameter. Add optional title param following the same
pattern as the existing points/labels params.

Closes #45

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Author
Owner

QA Review -- PR #52

Diff Summary

2 files changed, +22/-1. Adds optional title parameter to update_board_item MCP tool and corresponding tests.

Findings

  • Pattern compliance: title param follows the exact same Annotated[str | None, Field(...)] = None pattern as points, labels, column, position. Placement between position and points is logical.
  • Body construction: if title is not None: body["title"] = title mirrors all other optional fields. Correct.
  • Docstring: Updated to mention title. Accurate.
  • Tests: Two new tests (test_title_forwarded, test_title_omitted_not_in_body) plus updated test_omitted_fields_not_in_body assertion. Covers positive and negative cases.
  • Backward compat: Omitting title produces identical behavior to before -- no body key added.
  • No secrets, no unrelated changes, no regressions.

Nits

None.

VERDICT: PASS

## QA Review -- PR #52 ### Diff Summary 2 files changed, +22/-1. Adds optional `title` parameter to `update_board_item` MCP tool and corresponding tests. ### Findings - **Pattern compliance**: `title` param follows the exact same `Annotated[str | None, Field(...)] = None` pattern as `points`, `labels`, `column`, `position`. Placement between `position` and `points` is logical. - **Body construction**: `if title is not None: body["title"] = title` mirrors all other optional fields. Correct. - **Docstring**: Updated to mention title. Accurate. - **Tests**: Two new tests (`test_title_forwarded`, `test_title_omitted_not_in_body`) plus updated `test_omitted_fields_not_in_body` assertion. Covers positive and negative cases. - **Backward compat**: Omitting `title` produces identical behavior to before -- no body key added. - **No secrets, no unrelated changes, no regressions.** ### Nits None. VERDICT: PASS
forgejo_admin deleted branch 45-expose-title-param-update-board-item 2026-03-27 21:59:36 +00:00
Sign in to join this conversation.
No description provided.