Skip to content

docs: v17 docs sweep run 5 — rc.2 catch-up - #4881

Merged
os-zhuang merged 1 commit into
mainfrom
claude/v17-rc2-release-docs-tozg2l
Aug 3, 2026
Merged

docs: v17 docs sweep run 5 — rc.2 catch-up#4881
os-zhuang merged 1 commit into
mainfrom
claude/v17-rc2-release-docs-tozg2l

Conversation

@os-zhuang

Copy link
Copy Markdown
Contributor

Follow-up to #4877. With the rc.2 release page written, I swept the hand-written docs against the same window (2bafe62e..a2ebea2e) for pages still teaching something the window changed — the run-5 counterpart to the run-4 rc.1 catch-up.

The sweep came back mostly clean: activationEvents, app.homePageId, translation.validationMessages, the script-node actionType branches, managedBy: 'system-data', atomic / ROLLED_BACK / NOT_ATTEMPTED, findOne's throw-on-empty, the bulk_update / bulk_delete webhook pair and datasourceMapping-is-routing were all already updated by the PRs that changed them. Retired datasource blocks (retryPolicy / healthCheck / capabilities / readReplicas), findStream, openApi31 and the dual-source renames have no hand-written doc references at all. Three pages had drifted.

1. data-modeling/validation.mdx contradicted itself

The has(x) callout (added by #4763) says an unevaluable predicate is "rejected fail-closed". Twelve lines below it, the condition paragraph still said:

A predicate that cannot be evaluated (parse error, unbound variable) is treated as a broken rule — it is logged and skipped rather than blocking the write.

That is precisely the fail-open behaviour #4649 reversed, and it is the sentence an upgrading author reads to decide whether their rules are enforcing anything. Rewritten to the shipped contract: rejection with VALIDATION_FAILED naming the rule and the offending key, severity still governing blocking, and the total stored-⊕-payload record that makes the has() callout true in the first place.

2. automation/hooks.mdx had no coverage of the declarative condition gate

One passing clause under wildcard hooks, and nothing else — while three changes landed on it in this window, one of them breaking. Adds a "The condition gate" section:

3. concepts/metadata-lifecycle.mdx did not list job

This is the page that explains the two-tier overlay / runtime-create gate, so it is where an author looks when "create job" disappears from Studio. #4509 set both allowOrgOverride: false and allowRuntimeCreate: false on job. Adds the row with its reasoning (handler names a compiled-bundle function a runtime writer has no way to reach, so a runtime-created job saved and was never scheduled) and the still-supported doors. Also notes that the standalone validation kind is gone under ADR-0088, since the paragraph below the table already discusses which types do not exist.

Filed, not fixed

content/docs/ui/apps.mdx has zero coverage of AppSchema.areas[] — no mention of the word anywhere in the hand-written docs — despite three changes landing on it this window (#4667 order, #4651 the two fail-open area gates, #4722 server-side enforcement of item-level gates inside areas) and a load-bearing security asymmetry that now only exists in changesets and the spec's .describe strings: item-level requiredPermissions is server-enforced in both trees, while visible is client-only at every level. Writing that section is more than a sweep should invent, so it is #4880, cross-referenced with #4749 (which fixes the spec-side prescription wording for the same surface).

Verification

  • node scripts/check-doc-authoring.mjs — 215 files clean
  • node scripts/check-release-notes.mjs — OK
  • ADR link targets checked against docs/adr/ filenames

Docs-only; releases nothing.


Generated by Claude Code

Three hand-written pages had drifted behind changes that landed in the
2bafe62..a2ebea2 window.

- data-modeling/validation.mdx contradicted itself: the has(x) callout says
  an unevaluable predicate is rejected fail-closed, while the condition
  paragraph twelve lines later still taught the pre-17 "logged and skipped
  rather than blocking the write". #4649 reversed that. Rewritten to the
  shipped contract, including the total stored-or-payload record that makes
  the has() callout true in the first place.

- automation/hooks.mdx had no coverage of the declarative condition gate
  while three changes landed on it, one breaking. Adds a section for #4775
  (unevaluable condition aborts the operation), #4770 (evaluates against
  stored + payload, not the payload alone) and #4784 (previous is bound).

- concepts/metadata-lifecycle.mdx did not list job, which #4509 closed to
  runtime creation and org override. Adds the row with its reasoning, and
  notes the retired standalone validation kind under ADR-0088.

Filed #4880 for the areas[] documentation gap rather than guessing at the
section shape.

Docs-only; releases nothing.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AaegKY1Y7GqTb8CKMm5GLC
@vercel

vercel Bot commented Aug 3, 2026

Copy link
Copy Markdown

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

1 Skipped Deployment
Project Deployment Actions Updated (UTC)
objectstack Ignored Ignored Aug 3, 2026 12:56pm

Request Review

@github-actions github-actions Bot added documentation Improvements or additions to documentation tooling size/s and removed documentation Improvements or additions to documentation tooling labels Aug 3, 2026
@os-zhuang
os-zhuang marked this pull request as ready for review August 3, 2026 13:00
@os-zhuang
os-zhuang added this pull request to the merge queue Aug 3, 2026
Merged via the queue into main with commit 164f344 Aug 3, 2026
19 checks passed
@os-zhuang
os-zhuang deleted the claude/v17-rc2-release-docs-tozg2l branch August 3, 2026 13:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants