chore(console): 刷新 objectui pin 到 785b8a5d432c —— 2026-08-02 的 7 个 PR 进入 v17 - #4732
Merged
Merged
Conversation
…the pin changeset The auto-generated pin changeset lists commit subjects only, so the one author-BREAKING change in the range (objectui#3203 — `ActionParam` loses the nine resolved-only picker keys) would have reached the release notes as a one-line Chinese subject with no migration and no rationale. Spell out the FROM/TO prescription and why the removal is not a regression (the keys were never storable: `ActionParamSchema` is `.strict()` and its alias table names `referenceto -> reference`), plus the author-visible halves of objectui#3196 / #3204 / #3210. Also drops the two `fix(ci)` lines from the enumerated range: they release nothing and are not in the shipped bundle, so listing them as "frontend changes" overstates what the artifact carries. 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
|
This was referenced Aug 3, 2026
Contributor
Author
|
PM 裁定( 理由从简(两轴分析 PR 正文已写全,结论一致):changeset 单一输入的仓规不破;而一条作者破坏性迁移在 RC 期间必须在文档站可读 —— 它的全部价值就是把失败从 publish 时挪到敲键盘时。C 案否决理由采纳(全库 已落账 #4733(docs-only, Generated by Claude Code |
os-zhuang
marked this pull request as ready for review
August 3, 2026 01:12
This was referenced Aug 3, 2026
akarma-synetal
pushed a commit
to akarma-synetal/framework
that referenced
this pull request
Aug 3, 2026
…5d432c (objectstack-ai#4744) objectui#3203 从公共 `ActionParam` 移除九个 resolved-only picker 键,对作者 破坏性。迁移处方已进 objectstack-ai#4732 的 pin changeset(发布说明的法定输入层),但 RC 期间正在升级的作者读的是文档站 —— 一条只活在 `.changeset/` 里的破坏性迁移 对他们等于不存在。CLAUDE.md 为此留的正门是 dedicated docs-only PR,本 PR 就是那个 PR(PR objectstack-ai#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` —— objectstack-ai#4732 已合并,`.objectui-sha` 现为 785b8a5d432c,旧区间已失真。 全 diff 只有 `content/docs/releases/v17.mdx` 一个文件。不发版,不 bump 任何 包版本,改动最小化(不重排既有内容、不顺手修别的段落)—— 这个文件是全仓 最热的冲突磁铁。 Fixes objectstack-ai#4733 Claude-Session: https://claude.ai/code/session_015Br2xsJsczFsTR9bvbh2Ny Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
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 #4665
做了什么
.objectui-sha:7d9734d5e321→785b8a5d432c(objectuiorigin/main当前 tip)packages/console/dist按新 pin 重建(gitignored,不在 diff 里;产物证据见下).changeset/console-785b8a5d432c.md(@objectstack/console: minor):脚本自动生成的清单之外,补上四个"改动已发布包"的 objectui changeset 的语义,尤其 objectui#3203 的作者破坏性迁移(处方 + 理由)跑的就是
pnpm objectui:refresh的两条命令,都持容器级锁、带堆上限:给 bump 传了显式 SHA,没走默认路径:
bump-objectui.sh不带参数时取../objectui的 HEAD,而容器里那个共享 checkout 停在功能分支claude/project-manager-skill-task-xg9j87(444457c)上 —— 默认路径会把 pin 钉到一个不是 objectuimain的提交,还会漏掉其后 6 个已合并提交。传的 SHA 就是origin/main的 tip。为什么钉到 tip,而不是那 7 个 PR 的末尾(
6be575c)停在
6be575c能让对照表和本单一一对应,但它当场重造本单要消灭的那个滞后:objectuimain立刻又领先 6 个提交,下一张"进不了 v17"的单接着开。多带进来的 6 个提交对本仓作者是中性的(见下),所以按刷新的本义钉到 tip。对照表 —— 4 个改动已发布包的 PR,逐行给证据
产物路径均为
packages/console/dist/assets/。"刷新前没有"用 objectui 旧 pin7d9734d5e321的源码树git grep0 命中佐证,不是"应该在"。@object-ui/coreminorframework-DZLzTqF9.js里有[dashboard-filters]告警前缀(3 处)、skipping filter、unknown date range preset。旧 pin 源码树unknown date range preset= 0 文件命中,新 pin = 2 文件@object-ui/types+@object-ui/app-shellminor(作者破坏性)packages/types/src/ui-action.ts里九个键全部消失(旧 pin 的 273/276/279/282/285/288/291/294/297 行九个都在),ActionParam现在写成extends Omit< z.input< typeof SpecActionParamSchema >, 'type' >—— 从 spec schema 派生,作者类型与服务端 parser 不可能再各说各话。运行时层:resolveActionParams()的点名告警是NODE_ENV === 'production'门控,生产包里按设计被剥掉(产物 grep 不到;构建树.cache/objectui-785b8a5d432c/packages/app-shell/src/utils/resolveActionParams.ts里在)—— 这条如实记为"类型/源码层证据",不谎称产物里有@object-ui/plugin-detailminorplugins-views-CKBrHjEj.js里有sys_activity的自取数调用:sys_activity`,{$filter:{object_name:v,record_id:y},$orderby:{timestamp:`desc`},$top:Math.max;以及showSubscriptionToggle的NOT IMPLEMENTED — no record-subscription backend exists yet描述。旧 pin 该串 0 命中@object-ui/plugin-detailpatchplugins-views-CKBrHjEj.js里 loading 分支已生效:.length===0?(...)("div",{role:"status","aria-live":"polite","data-testid":"activity-loading",...。旧 pinactivity-loading0 命中,新 pin 2 文件链路自证:
packages/console/dist/.objectui-sha=785b8a5d432cf009389a1a9180fdac2a8297543f=.objectui-sha,pnpm check:console-sha通过;构建树 HEAD 就是该 SHA,且七个 PR 的提交都是它的祖先(逐个git merge-base --is-ancestor验证,7/7 ✓)。objectui 侧的版本号还没动(
@object-ui/*在 pin 处都是17.1.0,那 4 个 changeset 还挂在 objectui 的.changeset/里没发版)。这不影响本仓:objectstack 不从 npm 消费@object-ui/*,而是在 pin 处从源码构建 SPA,所以"是否进来了"的证据只能是产物,上表给的就是产物。三个 release-nothing / 纯 CI PR:没有带出版本变化
root-screenshot-dash-flag-ignore.md,空 frontmatter(release-nothing)chore:)ci-cd-pipeline-doc-matches-the-workflow.md,空 frontmatterdocs(ci):)fix(ci):)—— 我已连同同类的fix(ci)objectui#3186 一起从清单里删掉版本层面三者都没有产生变化:
@objectstack/console这次的 minor 由区间里的feat决定(脚本 auto-type 规则),与这三个 PR 无关。fix(ci)被收进清单这件事本身是个发现 —— 连同"带!的破坏性refactor一条都进不去"和"head -40静默截断",已单开 #4731,不在本 PR 修。一并带进来的 6 个提交(2026-08-03 合并)
39033a3c5ccbd54a51e776d868e1b06f78a785b8a5+444457c。四条带!,但破坏面都在 objectui 自己的 TS 导出名(burn ledger 批次 6/7、删除未注册的PageNodeRenderer、收窄FieldWidgetComponentProps)—— objectstack 只消费构建产物,不 import@object-ui/*,所以对本仓作者是中性的。444457c是跟随本仓managedBy: 'system' → 'system-data'退役的收敛,方向一致。objectui#3203 的迁移落点 —— 需要维护者定夺
处方与理由已写进 changeset(发布说明的法定输入层):
{ type: 'lookup', referenceTo: 'account' }→{ type: 'lookup', reference: 'account' }{ field: 'account_id' }),整组从对象字段继承ActionParamSchema是.strict(),authorable 键表里只有reference,别名表点名referenceto → reference(packages/spec/src/ui/action.zod.ts:61-82),所以作者写referenceTo在服务端一直是硬性 parse 拒绝,只是tsc一直放行。移除的是一个从未生效的编译期假象,不是一个能力。但本 PR 没有动 v17 升级指南:本仓唯一带 "Breaking changes & migration" + "Upgrade checklist" 的页面是
content/docs/releases/v17.mdx,而content/docs/releases/对代码 PR 是禁区(AGENTS.md 目录表 / CLAUDE.md 第三条)。顺带一提,该页第 1917 行的 console 段标题写着bundled objectui advanced `4a4829d0ef39 → 7d9734d5e321`—— 本 PR 落地后这个区间就旧了,是同一个落点问题的另一半。三个选项:
4a4829d0ef39 → 785b8a5d432c。CLAUDE.md 明确允许这个例外("dedicated docs-only PR,never a rider on code changes")。content/docs/ui/actions.mdx。 不推荐:该页从未教过那九个键(本仓文档全库referenceTo0 命中),补一段"别写这九个键"等于凭空造出一个作者从没有过的印象,而且那不是升级指南。推荐 B。 长期看,changeset 是发布说明的单一输入这条不能破(A 必须有,已做),但一条作者破坏性迁移在 RC 期间只存在于
.changeset/里,对正在升级的作者等于不存在;docs-only PR 是仓规为这种情况留的正门,且不与任何代码 PR 抢那张表。对"让 AI 写的元数据不容易写错"这条轴,B 也更好:作者(和替作者写元数据的 agent)读的是文档站,而这条迁移的全部价值就是把失败从 publish 时挪到敲键盘时 —— 文档站上没有它,authoring-time 就少一层拦截。等 v17 正式发布,这段本来也要进那页,B 只是把它提前到还有人在升级的时候。验证
构建侧:
build-console.sh自带的 bundle canary(import/jobs)通过 —— 产物里的@objectstack/client是本仓这棵树的,不是 objectui lockfile 里的旧版本。首轮 cli 测试有 3 个文件失败(
@objectstack/service-*/@objectstack/verify的 dist 未构建导致TS2307/ 动态 import 失败),构建完 CLI 的依赖闭包(turbo run build --filter=@objectstack/cli...)后 65/65 全绿 —— 与本 PR 无关,是 worktree 首次 install 后的构建状态。未跑 Playwright e2e(需要真实浏览器 + 起服务,本轮四个 agent 共用一个容器)。
不在本 PR 里
packages/spec/**零改动content/docs/releases/**零改动🤖 Generated with Claude Code
https://claude.ai/code/session_015Br2xsJsczFsTR9bvbh2Ny
Generated by Claude Code