docs(spec): correct field.readonly describe re: import readonly-strip exemption (#3493) - #3550
Merged
Merged
Conversation
… exemption (#3493) The `field.readonly` describe said "system-context writes (import, seed replay, migration) are exempt" — but a normal data import is NON-system (its writeCtx is session-derived, isSystem:false) and still strips readonly fields. The strip is bypassed only by `isSystem` writes (seed replay, migration) and, since #3497, by an opt-in "historical" import (`preserveAudit`) that admits a whitelist (the audit/timestamp family + author-declared business readonly fields). Fix the describe accordingly and regenerate references/data/field.mdx. Describe-string + regenerated reference doc only; no schema shape / behavior / api-surface change. Empty changeset (releases nothing). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01B5rdfBKjkbcoEif4KUV6xE
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Contributor
📓 Docs Drift CheckThis PR changes 1 package(s): 104 hand-written doc(s) reference the affected code and may need an implementation-accuracy re-verification:
|
os-zhuang
marked this pull request as ready for review
July 27, 2026 04:41
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What & why
Small doc correctness follow-up to #3493/#3497.
The
FieldSchema.readonlydescribe ended with:That clause is wrong on two counts, and #3493 is exactly what surfaced it:
isSystem: false, perresolve-execution-context.ts) — that's why data import: a "historical" import can't preserve original timestamps / audit fields — updated_at is stamped now, readonly fields stripped on upsert (#3479 follow-up) #3493 existed (the strip did apply to imports). Listing "import" alongsideseed replay/migrationas anisSystemexemption is misleading.preserveAuditwhitelist — the new opt-in path by which a historical import bypasses the strip for a bounded whitelist.Change
packages/spec/src/data/field.zod.ts— thereadonlydescribe now reads:Regenerated
content/docs/references/data/field.mdxto match (gen:schema && gen:docs;check:docsin sync).Notes
check:api-surfaceshows a diff locally, but it's stale-dist noise unrelated to this change (it listsMessageFormat/WebhookReceiver/Breakpoints/JobRetryPolicyfrom other recent merges); the branch's specdistwasn't rebuilt after resetting ontomain. CI builds fresh, so it will compute the current-mainsurface and pass.spec tsc --noEmitis clean.🤖 Generated with Claude Code
Generated by Claude Code