Context
Copilot review on #949 (comment) flagged that modify_bin_transfer declares idempotentHint=True while its add_rows sub-payload is not idempotent — a client that retries the same apply (at-least-once semantics keyed off the hint) would create duplicate rows.
This is not specific to bin transfers: modify_purchase_order, modify_sales_order, and modify_manufacturing_order all carry add_rows-style create sub-payloads under the same idempotentHint=True annotation. #949 deliberately kept the bin tool consistent with its siblings rather than diverging one tool.
Decision needed
Either:
- Flip
idempotentHint=False on every modify_* tool that can include create-style actions (PO, SO, MO, bin transfer, BOM?), accepting that header-only/status-only calls lose the hint, or
- Keep
True and document the rationale (e.g. hosts in practice don't auto-retry on this hint; the preview/apply flow already gates writes), or
- Something finer-grained if MCP grows per-call hints.
Whichever way, all five tools should move together — one audit, one PR.
Suggested triage
Priority P2-soon, Workstream Other (tool-surface conventions).
Context
Copilot review on #949 (comment) flagged that
modify_bin_transferdeclaresidempotentHint=Truewhile itsadd_rowssub-payload is not idempotent — a client that retries the same apply (at-least-once semantics keyed off the hint) would create duplicate rows.This is not specific to bin transfers:
modify_purchase_order,modify_sales_order, andmodify_manufacturing_orderall carryadd_rows-style create sub-payloads under the sameidempotentHint=Trueannotation. #949 deliberately kept the bin tool consistent with its siblings rather than diverging one tool.Decision needed
Either:
idempotentHint=Falseon everymodify_*tool that can include create-style actions (PO, SO, MO, bin transfer, BOM?), accepting that header-only/status-only calls lose the hint, orTrueand document the rationale (e.g. hosts in practice don't auto-retry on this hint; the preview/apply flow already gates writes), orWhichever way, all five tools should move together — one audit, one PR.
Suggested triage
Priority P2-soon, Workstream Other (tool-surface conventions).