Skip to content

Commit 3373a29

Browse files
os-zhuangclaude
andauthored
fix(spec): correct the mispriced SINGLE_RECORD_WRITE_ONLY pricing comment (#8033)
The doc comment priced a batch exemption using #3757's disproven premise (the console rethrows a hard 405 to the user). #3757's author retracted that twice before the issue was closed not planned: useBulkExecutor -> executeBulkBatch catches any adapter throw and falls back to per-row writes, and the grid's built-in bulk-delete gates on the child verb delete (not on bulk). The real cost of an exemption is a wasted round trip plus N per-row writes, not a hard user-visible error. Comment-prose-only change; no runtime/schema/assertion diff. Fixes #7817 Co-authored-by: Claude <noreply@anthropic.com>
1 parent 333a374 commit 3373a29

1 file changed

Lines changed: 9 additions & 3 deletions

File tree

packages/spec/src/data/api-methods-batch-conformance.test.ts

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,15 @@ const WRITE_PRIMITIVES = ['create', 'update', 'delete'] as const;
4545
* keyed by object name with the reason. Every other tightened whitelist in the
4646
* monorepo either grants `bulk` or grants no write verb at all.
4747
*
48-
* Adding an entry is a real decision — batch denial is invisible until a user
49-
* multi-selects rows and `data-objectstack` rethrows the 405 without falling
50-
* back to per-row writes. Write down why the object is worth that.
48+
* Adding an entry is a real decision — but price it correctly per #3757's
49+
* two corrections (that issue's premise was retracted by its own author and
50+
* closed not planned). `data-objectstack` does rethrow the 405, but its only
51+
* caller, `useBulkExecutor` → `executeBulkBatch`, falls back to per-row
52+
* writes on ANY throw; and the grid's built-in bulk-delete entry gates on the
53+
* child verb `delete`, not on `bulk` (gating it on `bulk` would be a
54+
* regression). So an exemption costs a wasted round trip plus N per-row
55+
* writes, not a hard user-visible error. Write down why the object is worth
56+
* that.
5157
*/
5258
const SINGLE_RECORD_WRITE_ONLY: Record<string, string> = {
5359
// #7802. `update` arrived in #7727/#7769 for exactly one gesture on exactly

0 commit comments

Comments
 (0)