Skip to content

chore(console): bump objectui pin 7dfbeb70 → 0cf8f0f7 (66 commits, 24 changesets, 2 annotated breaking) - #6476

Merged
hotlong merged 2 commits into
mainfrom
claude/issue-6317-objectui-pin-bump
Aug 8, 2026
Merged

chore(console): bump objectui pin 7dfbeb70 → 0cf8f0f7 (66 commits, 24 changesets, 2 annotated breaking)#6476
hotlong merged 2 commits into
mainfrom
claude/issue-6317-objectui-pin-bump

Conversation

@hotlong

@hotlong hotlong commented Aug 8, 2026

Copy link
Copy Markdown
Contributor

Fixes #6317

.objectui-sha7dfbeb704e1e 推到执行时刻的 objectui origin/main head 0cf8f0f70d10,并带上 scripts/bump-objectui.sh 生成的那一份 @objectstack/console changeset。文件面只有这两个

SHA 与区间

旧 pin 7dfbeb704e1eace5dc5eae1d6168c4ded805a32b#6173 所设)
新 pin 0cf8f0f70d1040a63316e0c55cb2fd2e87989d73
head 提交 docs(ROADMAP): P1.12 Routes/Tests 两条 PermissionManagementPage 记录按现实改写 (#3704) (#3714),2026-08-08 00:14:02Z
ahead_by 66
behind_by 0 — pin 是 main 的真祖先
测量时刻 2026-08-08T01:10Z(PR 提交前 01:15:51Z 复测漂移 = 0

标题里的数字全部作废。 steward 三次读数(1 → 11 → 47 commit)都已过期;认领时刻实测 66 个 commit / 24 份 changesetb785a77b3b 早已不是区间末端,它是区间里最老的那个 commit。

测量方法(诚实说明:未走 REST compare

派发单要求用 REST compare/{pin}...main。本会话内 api.github.com 直连返回 GitHub access is not enabled for this sessioncompare 端点在可用工具面里没有对应封装,所以换了两条互相独立的路子交叉验证,而不是单靠一次本地 merge-base

  1. 本地 git:objectui checkout 确为 shallow,但 graft 点在 2026-07-30早于 pin 的 2026-08-07,因此 pin→main 的完整祖先链在本地齐全,结论可信。git merge-base --is-ancestor 退出 0;git rev-list --left-right --count pin...origin/main = 0 66
  2. GitHub API commit 列表:从 main 拉取 reverse-chronological commit 列表,pin 7dfbeb704e… 出现在第 67 位(0-based index 66),即其前方恰好 66 个 commit;pin 出现在该列表内本身即证明 behind_by = 0

两法在 ahead_by = 66 上完全一致。

#6099 破坏性标注复核 —— 不是空洞通过,真的命中了

立单时区间内 0 份 changeset,那次复核是零集合上的空洞通过。本次对长出来的区间重做:

实际逐条读取的 changeset 正文数:24 / 24(区间内新增的全部 .changeset/*.md,逐个 git show 到文件后扫描)。扫描词:BREAKINGbreaking change不兼容破坏性migration required

命中 2 份,均为 minor + 正文标注 —— 正是 #6099 描述的那个形状:

changeset 声明级别 标注
.changeset/objectstack-family-rc5-refresh.md minor ## Breaking, in FROM → TO form,5 条
.changeset/reclaim-natural-gesture-names-3363.md minor ## Breaking, in FROM → TO form,2 条重命名

区间内 0 份声明 major(objectui 在发布窗口内由 scripts/check-changeset-no-major.mjs 禁止 major),其余 22 份均为 patch

两份的实际内容:

  • objectstack-family-rc5-refresh(objectui#3560,commit 48132f7e6 —— 区间确实跨过了 objectui 采纳 @objectstack 家族 17.0.0-rc.5。所以这不是一次装饰性的 pin 移动。其破坏面:@objectstack/spec/ui 五个交互配置模块退休(32 defs / 64 exports,@object-ui/types 丢掉 32 个 re-export,词表下沉到各自真实消费者);@object-ui/types 不再 re-export NotificationAction / EmbedConfigThemeEngine 停止发射九组已退休 CSS 变量(theme.customVars 成为唯一的门);HttpMethodSchema 改绑 HttpMethodSubsetSchemadashboard.widgets[]actionUrl / actionType / actionIcon / aria 改为具名报错而非静默丢弃(附 os migrate meta --from 16 迁移路径)。
  • reclaim-natural-gesture-names-3363(objectui#3363,commit e6fdbdcc4 —— TouchGestureTypeGestureTypeTouchGestureConfigGestureConfig旧名直接移除、不留 alias。形状本身逐键不变。

破坏面落在哪里:以上破坏都是 objectui 自家 npm 包(@object-ui/types / core / react / mobile)的 TypeScript 导出面。@objectstack/console 发布的是按 pin SHA 构建的冻结 SPA 产物,不转发这些类型入口,因此对 objectstack 侧消费者没有编译期破坏面。

交叉验证:脚本自己的 digest 独立报出 24 releasing changeset(s), 2 breaking (0 declared major, 2 annotated) —— 与人工逐条读出的结论逐项吻合。

ADR-0087 处置(第二个 commit 补的)

生成的 changeset 正文带 **BREAKING** 标记,触发 check-adr-0087-registration#6148),首推时该门判红 —— 门判得对,需要把「要不要台账条目」这个问题书面回答掉。

判断依据(先读 registry 再下结论,不凭 changeset 措辞推断):区间内唯一触及元数据作者面的处方是 dashboard.widgets[]actionUrl / actionType / actionIcon / aria。实测它在射程之内且已有条目

  • packages/spec/src/conversions/registry.tsdashboard-widget-action-aria-removed —— surface 逐字覆盖这四个键,toMajor: 17,带 apply() 与 fixture(expectedNotices: 4,一键一条)。
  • 该 id 列在 packages/spec/src/migrations/registry.tsstep17.conversionIds 中。
  • 它在 merge base 上即已存在,本 PR 未新增任何台账条目 —— 所以诚实的处置是 already-registered 而非 registered

写入的标记是 changeset 正文末尾的单行 HTML 注释disposition 部分为:

not-required (already-registered dashboard-widget-action-aria-removed) + 上述理由

(此处不逐字贴出该行:GitHub 正文会把 HTML 注释整段吞掉,以文件内容为准 —— 见 .changeset/console-0cf8f0f70d10.md 最后一行。)

门复跑后:✓ 1 declared-breaking changeset(s), each carrying an ADR-0087 disposition

排序与时序观察

已跑的门禁

门禁 结果 说明
pnpm lint ✅ pass eslint . --no-inline-config,退出 0
pnpm exec turbo run typecheck --concurrency=2 ✅ pass Tasks: 125 successful, 125 total
node scripts/check-adr-0087-registration.mjs ✅ pass 补标记后绿;门直接校验了 already-registered 的 id 在 HEAD 与 merge base 两侧都解析得到
pnpm check:objectui-changeset ✅ pass digest + range 两套 self-test 全绿
pnpm check:objectui-pin-fresh ✅ pass self-test 全绿,且判定 pin FRESH
pnpm check:empty-changeset ✅ pass 43 assertions;1 declaring changeset(s) added
pnpm check:console-sha ✅ pass(skip 分支) No console dist … skipping,产物 gitignored、由 build-console.sh 生成
pnpm check:nul-bytes ✅ pass 扫描 6094 个受控文本文件,无裸控制字节

CI 侧本轮全绿:ESLint / TypeScript Type Check / Check Changeset / Console Pin Gate / Console Pin Freshness / Test Core / Dogfood Regression Gatesuccess,无 failure、无遗留 in_progress

门禁均在 git add 之后运行。⚠️ 一个实测到的坑:check-adr-0087-registration.mjs 读的是 committed 状态git show HEAD: 加路径),不是工作区 —— 只 git add 不 commit 会让它继续判红。

关于 turbo 缓存的如实记录:同一 worktree 两次实测给出相反的结论 —— 首跑(全新 worktree,缓存冷)Cached: 3 cached, 125 total,耗时 7m35.886s;补完标记后二跑 Cached: 125 cached, 125 total477ms,FULL TURBO。所以「零 TS 改动 ⇒ FULL TURBO」只在缓存已热的 worktree 成立,全新 worktree 的首跑仍是全量。

未做、且是有意未做的一步

scripts/bump-objectui.sh 结尾提示 pin 移动后应跑 pnpm sdui:manifest(ADR-0082 D4 声明奇偶棘轮,#5960 定为按需门禁、刻意不进 CI)。本 PR 没有跑它:它需要 Playwright chromium 并完整构建一次 objectui,且其产物/基线落在本单允许的两个文件之外。按 #5960 的定位这是 pin 移动后的独立维护步骤(docs/releases-maintenance.md → "After the pin moves"),在此记录以免它被这次 bump 静默吞掉。

docs(ROADMAP): P1.12 Routes/Tests 两条 PermissionManagementPage 记录按现实改写 (#3704) (#3714)

范围 7dfbeb704e1e...0cf8f0f70d10:66 个非合并 commit,24 份声明的 changeset
(2 份带作者自述的破坏性标注,0 份声明 major),42 个 commit 未带 changeset。
生成的 @objectstack/console changeset 取区间内最高声明级别 minor。

objectui@0cf8f0f70d1040a63316e0c55cb2fd2e87989d73

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BDmDsu2575gDxeMCxXhDE3
@vercel

vercel Bot commented Aug 8, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated (UTC)
objectstack Ignored Ignored Aug 8, 2026 1:29am

Request Review

@github-actions github-actions Bot added size/s documentation Improvements or additions to documentation tooling labels Aug 8, 2026
生成的 changeset 正文带两条 `**BREAKING**`(objectui 以 minor + 正文标注声明
破坏,digest 自 #6289 起会照实打标),触发 check-adr-0087-registration。

处置取 `not-required (already-registered dashboard-widget-action-aria-removed)`:
两条破坏落在 objectui 自家 npm 包的 TypeScript 导出面,@objectstack/console 发布的
是按 pin SHA 构建的冻结 SPA 产物、不转发这些类型入口;区间内唯一触及元数据作者面的
处方(dashboard.widgets[] 的 actionUrl/actionType/actionIcon/aria)是 objectstack
自己 protocol-17 的改动,已由 conversions/registry.ts 的
dashboard-widget-action-aria-removed 登记,并列在 migrations/registry.ts step17 的
conversionIds 中。该条目在 merge base 上即已存在,本 PR 未新增任何台账条目。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BDmDsu2575gDxeMCxXhDE3
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation size/s tooling

Projects

None yet

Development

Successfully merging this pull request may close these issues.

chore(console): bump objectui pin 7dfbeb70 → b785a77 (1 commit, 0 declared changesets) — pin-chain watch, re-read range at claim time

2 participants