Skip to content

fix(spec): correct the mispriced SINGLE_RECORD_WRITE_ONLY pricing comment - #8033

Merged
os-zhuang merged 1 commit into
mainfrom
claude/issue-7817-batch-exemption-pricing
Aug 12, 2026
Merged

fix(spec): correct the mispriced SINGLE_RECORD_WRITE_ONLY pricing comment#8033
os-zhuang merged 1 commit into
mainfrom
claude/issue-7817-batch-exemption-pricing

Conversation

@os-zhuang

Copy link
Copy Markdown
Contributor

Fixes#7817

What changed

Rewrote the pricing paragraph in the SINGLE_RECORD_WRITE_ONLY doc comment in packages/spec/src/data/api-methods-batch-conformance.test.ts (lines ~48-50 on origin/main). Comment-prose-only change — zero runtime/schema/assertion diff.

Why

The comment priced a batch exemption using #3757's disproven premise: that data-objectstack rethrows a hard 405 straight to the user with no fallback. #3757's own author retracted that premise twice before the issue was closed not planned, and re-verification against the pinned console build (.objectui-sha 6314e87f2) confirmed the retraction:

  • data-objectstack's bulkUpdate/bulkDelete does rethrow — that half was right.
  • Its only caller, useBulkExecutorexecuteBulkBatch (packages/core/src/actions/bulkFastPath.ts), catches any throw (405 included) and falls back to per-row writes.
  • The console grid's multi-select delete (packages/app-shell/src/hooks/useObjectActions.ts) uses Promise.allSettled per-row and never calls bulkDelete at all.
  • The grid's built-in bulk-delete entry gates on the child verb delete, not on bulk — gating it on bulk would be a regression (设计:批量写路由的 405 兜底与导入不对称 —— data-objectstack 直接 rethrow,用户看到硬报错 #3757's second correction).

So the real cost of a SINGLE_RECORD_WRITE_ONLY entry is a wasted round trip plus N per-row writes, not a hard user-visible error. The new paragraph states that, cites #3757's two corrections so the next reader doesn't re-derive it a fourth time, and leaves the "write down why" instruction unchanged (it was already correct).

Acceptance

Byte-identical outside the comment — verified: every changed line in the diff is a * ... comment-continuation line; no non-comment line touched.

Changeset

Measured, not assumed: packages/spec/tsconfig.json excludes **/*.test.ts from the build, and packages/spec/package.json's files field only ships dist/json-schema/liveness (not source). Grepped the built dist/ and apps/docs for the old phrase and for any reference to this test file — no hits. The comment never reaches a consumer, so no changeset per the repo's spec-surface convention. Will apply skip-changeset after the PR is up.

Local gates (all pass)

  • pnpm check:adr-anchors
  • pnpm check:changeset-gate-self-tests
  • pnpm --filter @objectstack/lint run check:doc-formula-expressions (after building @objectstack/formula — build-closure-first)
  • pnpm check:docs-audit-scope
  • pnpm check:driver-conformance
  • pnpm check:i18n (after building @objectstack/cli — build-closure-first)
  • pnpm check:merge-driver
  • pnpm check:release-body
  • pnpm check:spec-parsed-alias
  • pnpm check:nul-bytes
  • pnpm --filter @objectstack/spec exec vitest run src/data/api-methods-batch-conformance.test.ts — 4/4 tests pass unchanged

Generated by Claude Code

…ment
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
@vercel

vercelBot commented Aug 12, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
ProjectDeploymentActionsUpdated (UTC)
objectstackIgnoredIgnoredAug 12, 2026 12:36pm

Request Review

@github-actions

Copy link
Copy Markdown
Contributor

📓 Docs Drift Check

No hand-written docs reference the 0 changed package(s). ✅

@os-zhuangos-zhuang added skip-changeset PR has no user-facing published change; bypasses the changeset gate and removed size/s labels Aug 12, 2026 — with Claude
@os-zhuang
os-zhuang marked this pull request as ready for review August 12, 2026 13:02
@os-zhuang
os-zhuang added this pull request to the merge queueAug 12, 2026
Merged via the queue into main with commit 3373a29Aug 12, 2026
33 checks passed
@os-zhuang
os-zhuang deleted the claude/issue-7817-batch-exemption-pricing branch August 12, 2026 13:19
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

protocol:dataskip-changesetPR has no user-facing published change; bypasses the changeset gatetests

Projects

None yet

2 participants

@os-zhuang@claude