feat(deck): add response filters and archived stacks tool

Add filtering options to deck read tools to keep responses compact on
boards with accumulated cards/comments, and expose archived stacks so
agents can audit completed work that has been archived off the active
board.

- deck_get_board: include_acl, include_users, include_labels
- deck_get_stacks/deck_get_stack: include_cards, include_archived_cards,
  description_max_length
- deck_get_cards: include_archived, description_max_length
- New deck_get_archived_stacks tool wrapping the existing client method

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Chris Coutinho
2026-05-03 00:00:09 +02:00
co-authored by Claude Opus 4.7
parent 41d2286aab
commit d8cd073e66
3 changed files with 220 additions and 8 deletions
+31
View File
@@ -255,6 +255,37 @@ async def test_deck_get_stacks(mocker):
mock_make_request.assert_called_once()
async def test_deck_get_archived_stacks(mocker):
"""Test that get_archived_stacks targets the archived endpoint and parses the response."""
mock_response = create_mock_response(
status_code=200,
json_data=[
{
"id": 9,
"title": "Archived Stack",
"boardId": 123,
"order": 1,
"deletedAt": 0,
},
],
)
mock_client = mocker.AsyncMock(spec=httpx.AsyncClient)
mock_make_request = mocker.patch.object(
DeckClient, "_make_request", return_value=mock_response
)
client = DeckClient(mock_client, "testuser")
stacks = await client.get_archived_stacks(board_id=123)
assert isinstance(stacks, list)
assert len(stacks) == 1
assert stacks[0].id == 9
mock_make_request.assert_called_once()
assert "/boards/123/stacks/archived" in mock_make_request.call_args[0][1]
# Card Tests