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
+8
View File
@@ -337,6 +337,14 @@ class CardOperationResponse(StatusResponse):
card_id: int = Field(description="ID of the affected card")
stack_id: int = Field(description="ID of the stack containing the card")
board_id: int = Field(description="ID of the board containing the card")
labels: list[str] | None = Field(
default=None,
description=(
"Label titles on the card after the operation, when relevant — "
"e.g. after a cross-board move that remaps board-scoped labels to "
"the destination board"
),
)
# Label Response Models