Found while implementing #52. ListCommand and the MCP GetLeaveEntries tool serialise only the items array, so the list envelope's cancelledCount (and totalItems) never reach the caller, although AGENTS.md states they surface in tp leave list --json.
Expected: either wrap the JSON output in an envelope ({"items": [...], "totalItems": N, "cancelledCount": N}) as a deliberate, announced shape change (0.4.0 candidate, since scripts parse the bare array today), or correct AGENTS.md. Recommend the envelope in 0.4.0 alongside the other contract changes, with MCP mirroring it through LeaveListService.
Found while implementing #52.
ListCommandand the MCPGetLeaveEntriestool serialise only theitemsarray, so the list envelope'scancelledCount(andtotalItems) never reach the caller, although AGENTS.md states they surface intp leave list --json.Expected: either wrap the JSON output in an envelope (
{"items": [...], "totalItems": N, "cancelledCount": N}) as a deliberate, announced shape change (0.4.0 candidate, since scripts parse the bare array today), or correct AGENTS.md. Recommend the envelope in 0.4.0 alongside the other contract changes, with MCP mirroring it throughLeaveListService.