docs(releases): v17 升级指南补 objectui#3203 作者破坏性迁移,console 段区间更新到 785b8a5d432c - #4744
Merged
Conversation
…5d432c objectui#3203 从公共 `ActionParam` 移除九个 resolved-only picker 键,对作者 破坏性。迁移处方已进 #4732 的 pin changeset(发布说明的法定输入层),但 RC 期间正在升级的作者读的是文档站 —— 一条只活在 `.changeset/` 里的破坏性迁移 对他们等于不存在。CLAUDE.md 为此留的正门是 dedicated docs-only PR,本 PR 就是那个 PR(PR #4732 的 PM 裁定,选项 B 的第二半)。 两处改动,零代码: 1. `## Breaking changes & migration` 新增一条,紧跟 ADR-0104 D2 的 action param 条目(同一主题):九个键全名、两条处方(内联 picker 目标改 `reference`;其余八个改 field-backed 整组继承)、以及"这不是能力回退" 的理由 —— `ActionParamSchema` 是 `.strict()`,authorable 键表只有 `reference`,别名表点名 `referenceto → reference`,服务端一直硬性 parse 拒绝,只是 `tsc` 放行。 处方逐条与 spec 核对过:`displayField` / `descriptionField` / `lookupColumns` / `lookupFilters` / `lookupPageSize` / `dependsOn` 确为 `FieldSchema` 键(packages/spec/src/data/field.zod.ts),field-backed 参数 由字段元数据继承;`idField` / `titleFormat` 两侧都从来不可作者化 —— 记录标识由 picker 自解,候选标题取被引对象的 `nameField`(ADR-0079)。 这一层精度是 changeset 未展开的,写进文档站是因为错的处方比没有更糟。 2. console 段标题区间 `4a4829d0ef39 → 7d9734d5e321` 更新为 `4a4829d0ef39 → 785b8a5d432c` —— #4732 已合并,`.objectui-sha` 现为 785b8a5d432c,旧区间已失真。 全 diff 只有 `content/docs/releases/v17.mdx` 一个文件。不发版,不 bump 任何 包版本,改动最小化(不重排既有内容、不顺手修别的段落)—— 这个文件是全仓 最热的冲突磁铁。 Fixes #4733 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015Br2xsJsczFsTR9bvbh2Ny
|
The latest updates on your projects. Learn more about Vercel for GitHub. 1 Skipped Deployment
|
os-zhuang
marked this pull request as ready for review
August 3, 2026 01:31
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.
Fixes #4733
这是 PR #4732 的 PM 裁定(选项 B,#4732 (comment) )的第二半:changeset 保留在 #4732(A 半,已合并),v17 升级指南走这个独立的 docs-only PR。
为什么走 docs-only PR
objectui#3203 从公共
ActionParam移除九个 resolved-only picker 键,对作者破坏性。迁移处方已经进了 #4732 的 pin changeset —— 发布说明的法定输入层,该做的做了。但 RC 期间正在升级的作者读的是文档站:一条只活在.changeset/里的破坏性迁移,对他们等于不存在。CLAUDE.md 禁的是「代码 PR 顺手改 releases 页」,同时明文留了正门 —— 「dedicated docs-only PR, never a rider on code changes」。本 PR 就是那扇门,不是例外。
改了什么(零代码)
1.
## Breaking changes & migration新增一条,插在 ADR-0104 D2 的 An action's declared params are enforced at dispatch (#3438) 之后 —— 同一主题相邻,读者一眼看到全貌。条目含:referenceTo/displayField/idField/descriptionField/titleFormat/lookupColumns/lookupFilters/lookupPageSize/dependsOn{ name: 'account_id', type: 'lookup', referenceTo: 'account' }→ `{ name: 'account_id', type: 'lookup', reference: 'account' }`{ field: 'account_id' }),整组从被引字段继承ActionParamSchema是.strict(),authorable 键表只有reference,别名表点名referenceto → reference,服务端一直硬性 parse 拒绝,只是tsc放行。移除的是从未生效的编译期假象。2. console 段标题区间更新:
4a4829d0ef39 → 7d9734d5e321改为4a4829d0ef39 → 785b8a5d432c。#4732 已合并,origin/main上.objectui-sha现为785b8a5d432cf009389a1a9180fdac2a8297543f,旧区间已失真。处方与 spec 逐条核对过
写错迁移处方比不写更糟,所以落笔前读了
packages/spec/src/ui/action.zod.ts和packages/spec/src/data/field.zod.ts:ACTION_PARAM_KEYS确实只有reference,九个键一个都不在(action.zod.ts:61-64)ACTION_PARAM_KEY_ALIASES确实手写点名referenceto: 'reference'(同文件:78-82).strict(),且.refine()在 parse 时就拒绝无 target 的内联 lookupdisplayField/descriptionField/lookupColumns/lookupFilters/lookupPageSize/dependsOn确为FieldSchema键(field.zod.ts:534-570)—— 这六个 field-backed 参数真的继承得到核对中发现 changeset 的「其余八个整组继承」有半格不精确,已在文档里补齐:
idField和titleFormat两侧都从来不可作者化 —— 记录标识由 picker 自解,候选标题取被引对象的nameField(ADR-0079,object.titleFormat本身已经退役)。所以文档写的是「六个从字段元数据继承 + 两个本来就不是作者的键」,而不是笼统的八个。约束遵守情况
content/docs/releases/v17.mdx,38 增 1 删,零代码。skip-changeset标签(仓里该标签的描述正是「PR has no user-facing published change; bypasses the changeset gate」)。走标签而不是空 frontmatter changeset,是为了守住「全 diff 只有一个文件」这条验收线;两者在pr-automation.yml的注释里被明确写成对等(「on par with the skip-changeset label」)。一处刻意没改的地方(留给维护者裁定)
console 段正文下一句仍是「143 objectui commits across five pin moves」。本 PR 只按 issue 要求换了标题里的区间,没动这个计数:该计数不是
git rev-list的字面结果(本地 objectui 克隆里4a4829d0ef39甚至不是7d9734d5e321的祖先,区间数对不上),复不出原作者的口径,凭空改成「six pin moves / 某个新数字」风险比留着更大。如果维护者认为该跟着更新,我按指定口径另开一单改 —— 不在本 PR 里猜。验证
node scripts/check-doc-authoring.mjs→✓ doc authoring guard: 216 files cleanRecord< string, string >同款(MDX 行内代码不解析 JSX),不引入新的解析风险🤖 Generated with Claude Code
https://claude.ai/code/session_015Br2xsJsczFsTR9bvbh2Ny
Generated by Claude Code