feat(deck): surface remapped labels in move-card response

Round-3 review polish on PR #885:

- deck_move_card_to_board now captures the moved DeckCard and returns its
  post-move label titles in CardOperationResponse.labels, so LLM clients can
  confirm the cross-board label remap (the tool's headline behaviour) without
  a follow-up deck_get_card. The field is optional and defaults to None for
  the other card operations that share this response model.
- Tighten test_move_card_to_board_restores_done_state to assert the returned
  card reflects the restored done state.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Chris Coutinho
2026-06-10 23:53:01 +02:00
co-authored by Claude Opus 4.8
parent 7a39767482
commit 69b32f345c
3 changed files with 15 additions and 2 deletions
+3 -1
View File
@@ -122,7 +122,7 @@ async def test_move_card_to_board_restores_done_state(mocker):
)
client = DeckClient(mocker.AsyncMock(spec=httpx.AsyncClient), "testuser")
await client.move_card_to_board(
result = await client.move_card_to_board(
source_board_id=1,
source_stack_id=10,
card_id=8,
@@ -134,6 +134,8 @@ async def test_move_card_to_board_restores_done_state(mocker):
done_call = mock_make_request.call_args_list[3]
assert done_call.args[0] == "PUT"
assert done_call.args[1] == "/apps/deck/cards/8/done"
# The returned card reflects the re-fetched (restored) done state
assert result.done is not None
async def test_move_card_to_board_rejects_stack_not_on_target_board(mocker):