chore(console): 刷新 objectui pin 到 f995a452d2ca —— 98 个 commit / 64 条 releasing changeset / 2 项 v17 破坏性变更进入 v17 - #6097
Merged
Conversation
…leasing changeset / 2 项 v17 破坏性变更) pin 落后 objectui main 98 个 commit(ahead_by=98、behind_by=0,pin 是 main 的干净祖先)。 刷新之前这些改动只存在于 objectui 的 main 上:既不在本仓的构建产物里,也进不了 v17 的 发布记录 —— 正是 #3340 要防的失效模式。 - `.objectui-sha`: f5bc4c78be76 → f995a452d2ca(objectui `main` tip,2026-08-06T13:52:26Z) - `.changeset/console-f995a452d2ca.md`(`@objectstack/console`: minor):由 `objectui-changeset-digest.mjs` 按 objectui **自己声明的** changeset 生成 —— 区间新增 65 个 changeset,64 条 releasing(14 minor / 50 patch),1 条 release-nothing (`live-e2e-lane.md`,空 frontmatter),33 个提交未带 changeset。清单未截断(上限 100)。 - `packages/console/dist` 由 `build-console.sh` 在该 pin 上重建(gitignored,不在 diff 里), 产物内 `.objectui-sha` 戳与 pin 一致,bundle canary `import/jobs` 通过。 两条 v17 破坏性变更都已随 changeset 带入: - `042e09d77` `field-widget-single-metadata-carrier.md` —— 条目自带 `**BREAKING (v17)**` 标注 - `6e794a19e` `flow-node-geometry-is-spec-position.md` 不含任何 rider:未动 `packages/spec/**`、`content/docs/releases/**`,与 objectui#3374 (`@objectstack/spec` rc pin)无关。 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BDmDsu2575gDxeMCxXhDE3
|
The latest updates on your projects. Learn more about Vercel for GitHub. 1 Skipped Deployment
|
Contributor
Author
CI 收敛结果:唯一的红是 main 带进来的,不是本 PR本 PR 的 diff 是 CI 跑的是 merge ref(main 当前 tip 与本分支的合并),所以 main 上的红会照进来。已就地证伪"是我造成的": 143 → 144 的那一条,来自我分支点之后合进 main 的 该止血单已存在:#6100( 其余门禁全绿
Generated by Claude Code |
hotlong
marked this pull request as ready for review
August 7, 2026 01:29
This was referenced Aug 7, 2026
This was referenced Aug 7, 2026
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 #6089
跑了
pnpm objectui:refresh(=scripts/bump-objectui.sh+scripts/build-console.sh)并落 pin。diff 只有两个文件 ——.objectui-sha与脚本生成的 changeset,与 #4665 那轮(PR #4732)同形。两条命令都持容器级锁、带堆上限:
(
--no-commit只是为了自己写提交信息;文件内容全部是脚本产出的,一个字节没手改。)读数
f5bc4c78be76f995a452d2ca—— objectuimaintip(ci(scripts): type-check scripts/ via a standalone tsconfig.scripts.json (#3494) (#3498),2026-08-06T13:52:26Z)merge-base --is-ancestor✓ · ahead 98 · behind 0(pin 是 main 的干净祖先,无分叉)minor/ 50patch/ 0majorlive-e2e-lane.md(空 frontmatter,CI lane,changesets 自己的"不发版"写法)fix· 4ci· 4docs· 4test· 2chore)@objectstack/console: minor(= 区间内 objectui 声明的最高级)64 / 65 的差额已核清:唯一没进清单的是
live-e2e-lane.md,它的 frontmatter 是空的(release-nothing),按 #4731 的判据本就不该进 —— 不是漏收。跑之前踩到的两个坑(都会静默产出错误结果,记下来)
bump-objectui.sh不带参数时取../objectui的 HEAD,而容器里那个共享 checkout 停在功能分支claude/pm-dispatch-devx-rgxpjf(7894432)上,默认路径会把 pin 钉到一个不是main的提交。传入的 SHA 由git ls-remote https://github.com/objectstack-ai/objectui.git refs/heads/main当场解析。f5bc4c78不可达。直接跑会掉进脚本的 degraded 分支 —— 那条路径只写 tip 的 subject,产出一份"看起来完整、实则只有一行"的清单。先git fetch --no-tags --deepen=200把区间打通(269 个提交可达、旧 pin present),才拿到完整的 65 条声明。两条 v17 破坏性变更 —— 逐条确认
两条都已随 changeset 带进来,条目在
.changeset/console-f995a452d2ca.md里逐字如下:1.
042e09d77—— widget 元数据收敛到field单键(field-widget-single-metadata-carrier.md)生成清单里的条目(自带
**BREAKING (v17)**标注,因为该标注就在 changeset 正文首段,digest 取的正是首段):产物侧对照(旧 pin
git grep0 命中佐证,不是"应该在"):withFieldCarrier(changeset 描述的新注册适配器)packages/fields/src里读第二载体(props.schema/field || schema)2.
6e794a19e—— flow 节点几何收敛到 spec 的FlowNode.position(flow-node-geometry-is-spec-position.md)packages/app-shell/src的manualPosition()(读侧兼容旧ui的迁移路径)FlowNodePosition(由 spec 按引用派生的几何类型)objectui-changeset-digest.mjs的breaking计的是声明级别为major的 changeset,而 objectui 在 v17 发布窗内把破坏性变更声明成minor+ 正文标注(与本仓check-changeset-no-major.mjs的窗口约定同源)。所以这次breaking = 0,那句"后果不是"丢失"——两条都在清单里、级别正确、摘要完整;但只有 widget 那条自己在首段喊了
BREAKING (v17),flow 那条的破坏性陈述("Breaking for anyone readingnode.ui")在正文靠后的段落,digest 读不到,条目读起来就是一条普通行为修复。这是本 PR 之外的观察项,已另开单,不在这里改。另有一条与本仓 pin 链直接相关的条目也进来了:
门禁
ESLint job 里会碰到本 PR 这份 markdown 的几道门禁也单独跑了,全绿:
check:doc-authoring(363 files clean)、check:docs-audit-scope、check:role-word(43 baselined,no new occurrences)、check:adr-anchors、check:org-identifier。包级验证(沿用 #4732 的选型 —— console 解析与 SHA drift 守卫都在 CLI 包):
首轮 CLI 测试 29 个文件失败(
@objectstack/cloud-connection等依赖的 dist 未构建,loadOptionalPackage判成broken)—— 与 #4732 当轮同一个现象,是新 worktree 首次 install 后的构建状态,跑完pnpm --filter '@objectstack/cli^...' build后 87/87 全绿,与本 PR 无关。未跑 Playwright e2e(要真实浏览器 + 起服务,本轮多个 agent 共用一个容器)。
packages/console/dist的 delta:全部是生成物,不在 diff 里packages/console/.gitignore第 1 行就是dist/,所以这次重建的 49228 KB / 1400 个 asset 一个都不进 git —— PR 的changed_files是 2。⛔ 没有手改过 dist 里的任何一个字节,它整个由build-console.sh产出。链路自证:
f995a452d2ca=.objectui-sha(脚本自己rev-parse校验过,不匹配就 exit 1);packages/console/dist/.objectui-sha戳 =f995a452d2ca97fcc4b92ec6d004ee5571f3d6b7,check:console-sha因此绿;import/jobs命中 —— 产物里的@objectstack/client是本仓这棵树的(OBJECTSTACK_CLIENT_DIST注入生效),不是 objectui lockfile 里的旧版本;objectui-locale(0554e889c,locale 持久化,旧 pin 源码树 0 文件命中 → 新 pin 3 文件 → 产物 1 个 asset 命中)、aria-required(680080ada→ 产物 7 个 asset 命中)。v17 升级指南:两条迁移都还没有落点(只核查,未改)
content/docs/releases/对代码 PR 是禁区(CLAUDE.md 第三条),所以这里只报不改:content/docs/releases/v17.mdx的「Breaking changes & migration」章节里,field-widget/FieldWidgetComponentProps/withFieldCarrier/objectui#3233/FlowNode.position/node.ui/objectui#3172逐个 0 命中;扩到整个content/docs/也是 0。两条 v17 破坏性迁移目前只存在于.changeset/(发布说明的法定输入层),RC 期间正在升级的作者在文档站上读不到。bundled objectui advanced 4a4829d0ef39 → 785b8a5d432c—— 本 PR 落地后这个区间又旧了一轮(现为→ f995a452d2ca)。同一个落点问题的另一半,与 chore(console): 刷新 objectui pin 到 785b8a5d432c —— 2026-08-02 的 7 个 PR 进入 v17 #4732 当时记的是同一条。按 #4732 的三选项框架,这仍然是 B(changeset + 一个独立的 docs-only PR) 更合适:changeset 是发布说明的单一输入这条不能破(A 已做),但一条作者破坏性迁移在 RC 期间只活在
.changeset/里,对正在升级的作者等于不存在。决定权在维护者,本 PR 不代做。不在本 PR 里
@objectstack/specrc pin,pm:on-hold)零接触 —— 本单明确把它排除在外。顺带记一个当场读数:npm 上@objectstack/spec的rc仍停在17.0.0-rc.3,objectui 侧 track 的是rc.2;两件事各走各的 PR,没有在这里捆。packages/spec/**零改动(属 spec 座位)。content/docs/releases/**零改动。fetch --deepen打通了本地 shallow clone 的历史,没有动它的工作树、HEAD 或任何 ref)。git show --stat= 2 files changed, 75 insertions(+), 1 deletion(-)。Generated by Claude Code