fix: honest MCP verbs — reopen, rota attribution, event clears #142

Merged
nalum merged 1 commit from fix/mcp-defects into main 2026-08-18 16:43:10 +00:00
Owner

Closes #113, #120, #121. PR 4 of the #137 stack, based on #141.

Three parity defects from the 2026-08-18 report, all in internal/mcp/tools.go:

  • #113 complete_item promised reopening in its description but never sent the flag. A complete parameter (default true) now rides the existing SetComplete client wrapper, so an assistant can put a job back like every other surface.
  • #120 set_rota_slot and override_day attributed mutations to the device key itself. Both now take acting_user like the other reward-adjacent writes, so MEAL_ASSIGNED names the person who asked.
  • #121 update_event read empty strings as unchanged, leaving no way to clear a description or location. Explicit clear_description / clear_location booleans now say so, documented in the tool description.

Integration coverage added for all three (reopen round-trip, clear round-trip, rota audit attribution to the acting user). Live-verified against the deployed cluster over a real /mcp session: schemas carry the new fields, reopen and clears round-trip, and the rota audit entry names the acting user as actor with the key as subject. Verify data cleaned up and mcp_enabled returned to off.

🤖 Generated with Claude Code

Closes #113, #120, #121. PR 4 of the #137 stack, based on #141. Three parity defects from the 2026-08-18 report, all in `internal/mcp/tools.go`: - **#113** `complete_item` promised reopening in its description but never sent the flag. A `complete` parameter (default true) now rides the existing `SetComplete` client wrapper, so an assistant can put a job back like every other surface. - **#120** `set_rota_slot` and `override_day` attributed mutations to the device key itself. Both now take `acting_user` like the other reward-adjacent writes, so MEAL_ASSIGNED names the person who asked. - **#121** `update_event` read empty strings as unchanged, leaving no way to clear a description or location. Explicit `clear_description` / `clear_location` booleans now say so, documented in the tool description. Integration coverage added for all three (reopen round-trip, clear round-trip, rota audit attribution to the acting user). Live-verified against the deployed cluster over a real `/mcp` session: schemas carry the new fields, reopen and clears round-trip, and the rota audit entry names the acting user as actor with the key as subject. Verify data cleaned up and `mcp_enabled` returned to off. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
fix(mcp): honest verbs on complete_item, rota writes and update_event
Some checks failed
check / commits (pull_request) Successful in 4s
check / web (pull_request) Successful in 1m28s
check / go (pull_request) Successful in 2m24s
check / report (pull_request) Successful in 4s
check / commits (push) Has been cancelled
check / go (push) Has been cancelled
check / report (push) Has been cancelled
check / web (push) Has been cancelled
tag / tag (push) Has been cancelled
15dcaa4c5a
Three parity defects from the 2026-08-18 report, all in the MCP tool
layer (#113, #120, #121):

- complete_item's description promised reopening but never sent the
  flag; a complete parameter (default true) now rides SetComplete, so
  an assistant can put a job back like every other surface.
- set_rota_slot and override_day attributed mutations to the device
  key itself; both now take acting_user like the other reward-adjacent
  writes, so MEAL_ASSIGNED names the person who asked.
- update_event read empty strings as unchanged, leaving no way to
  clear a description or location; clear_description and
  clear_location booleans now say so explicitly.

Test report

Suite Tests Result Skipped
Unit 1370 ✅ pass 1
Integration 86 ✅ pass —

Coverage: 28.2%

Updated by the check workflow · commit 15dcaa4c5a

<!-- ci-test-report --> ## Test report | Suite | Tests | Result | Skipped | | --- | --: | --- | --: | | Unit | 1370 | ✅ pass | 1 | | Integration | 86 | ✅ pass | — | **Coverage:** 28.2% <sub>Updated by the check workflow · commit 15dcaa4c5a3349c83cf543c04650f501f9bd8122</sub>
nalum changed target branch from feat/list-rename to main 2026-08-18 16:43:03 +00:00
nalum merged commit 15dcaa4c5a into main 2026-08-18 16:43:10 +00:00
nalum deleted branch fix/mcp-defects 2026-08-18 16:43:10 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
eagraiclainne/app!142
No description provided.