Uh oh!
There was an error while loading. Please reload this page.
chore(console): 刷新 objectui pin 到 f995a452d2ca —— 98 个 commit / 64 条 releasing changeset / 2 项 v17 破坏性变更进入 v17 - #6097
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
|
hotlong
commented
Aug 7, 2026
CI 收敛结果:唯一的红是 main 带进来的,不是本 PR本 PR 的 diff 是 CI 跑的是 merge ref(main 当前 tip 与本分支的合并),所以 main 上的红会照进来。已就地证伪"是我造成的": 143 → 144 的那一条,来自我分支点之后合进 main 的 该止血单已存在:#6100( 其余门禁全绿
Generated by Claude Code |
Uh oh!
There was an error while loading. Please reload this page.
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