Skip to content

objectui 并入 objectstack 为 ui/ workspace:D1 裁定(A+)的执行父单 — 一个 PR 同时改 spec 与渲染器,删除两仓互钉,@object-ui 保留包名并与 @objectstack 同一版本组,objectui 仓归档为迁移说明 #25677

Open

Description

@objectstack-fleet

Filing gate ③ + ④:维护者直派的跨仓协调父单。⛔ 不是认领;父单永不派发,子单逐张立、按 Blocked-by: 排序。

Epic PM registration (seat-lifecycle.md 〈Epic 子树车道〉)

维护者裁定(Tesla,Claude 项目线程「Decide objectui–objectstack pinning」,2026-10-24,逐字):

  • 01:32Z「objectui 的"独立开源产品"是否必须是独立的 GitHub 仓?这个如果影响我们的开发效率的话,是否可以吧 objectui 仓库改为 一个迁移说明?」→ 独立 GitHub 仓非必须;旧仓改迁移说明(归档)。
  • 01:33Z「同一个版本号组」→ 合并后 @object-ui 与 @objectstack 进同一个 changesets fixed 组。
  • 01:34Z「18.1 已经在准备发版本了」→ 不做 pin 自动滚动;18.1.0 发出后直接做合并准备。
  • 09:19Z「objectstack 已发布 18.1」→ 本父单的触发。
  • 01:38Z「所以你最终的方案是 objecui 合并到 objectstack 仓库吗」— 答:是。
  • 15:08Z「B」(问:objectui 在途任务要不要等完再合并;B = 不等,准备期照常开发,切换日冻结 1–2 天,没合的分支机械移植)。在途盘点:objectui 开放 PR 8 个(1 个开发 PR,已合)、开放卡 38 张(3 张在做、9 张待派、11 张当日新立 finding、7 张座位贴)、claude/* 分支 382 个中只有 1 个带 PR。

分析文档(读数、三方案评估、迁移路径):https://claude.ai/artifact/74cjpi59CNhdZ86BemGAx2

维护者速读

  • 事由: 两仓互相按提交钉(.objectui-sha 60 天搬了 47 次、本周 13 次;objectui .objectstack-sha 10-19 起),每个跨仓功能 3 个串行 PR(例 feat(analytics): carry a dataset dimension's nullLabel on its column descriptor, and name System Overview's null user bucket "System" #25402 → objectui#13354 → fix(spec): a dataset dimension's nullLabel is live; move the objectui pin past its reader #25437),两仓合计约 1.8 万行耦合脚本,每小时 13 分钟 Spec Shape Gate,liveness 账本 184 条带日期的跨仓证据。根因是 UI 契约(packages/spec/src/ui)归本仓、每天改约 27 次,而读它的渲染器在另一个仓。
  • 要做: objectui 整仓并入本仓 ui/(git subtree add,保留历史);一个 lockfile、一个 turbo 图、一个 Version PR;删除 build-console / bump-objectui / objectstack-pin 等脚本;liveness 证据改仓内路径;@object-ui 39 个包名与 npm scope 不变,进同一 fixed 组;objectui 仓 README 改迁移说明、issue 转移、归档。
  • 不做: pin 自动滚动(已裁不做);只读镜像仓(日后有外部关注再加);cloud 仓不改(它从此只钉一个提交,是第三个受益方)。
  • 完成标准: 见「Done when」。

谁付代价(业务筛)

车队:每月约 40 个搬 pin 的 PR、每个跨仓功能 3 个串行 PR 的墙钟等待、每天 24 × 13 分钟的门禁、184 条证据的日期续期。用户:Console 与 spec 的同版本一致今天只靠 build-console.sh 注入保证(11.5.0 曾因此打进旧 client),合并后由结构保证。下游:cloud 同时钉两个仓并合并两个 main 构建,#25556 记录了它因此少取 7 个提交。

子单(按序,逐张立;一席每 fire 至多三张)

Done when

  • 一个 PR 能同时改 packages/spec 与 ui/ 的读取器,并在同一次 CI 里编译验证。
  • .objectui-sha、.objectstack-sha 及上面列出的脚本都不在树里;liveness 账本没有 evidenceScope: cross-repo 条目。
  • 一次 Version PR 同时包含 @objectstack 与 @object-ui,版本号相同;一次发布从本仓发出两个 scope。
  • objectui 仓已归档,README 首段是迁移说明,未关闭 issue 已转移。
  • 切换期间若需 18.1.x 补丁发版,切换前走旧流程、切换后走新流程,不在冻结窗口内发版。

风险

  • CI:spec 改动的 PR 多跑一次 Console 类型检查(按现有 13 分钟估),靠路径过滤与 turbo 缓存打消;子单 1 给出实测值。
  • 两套 vitest / eslint / tsconfig 配置:保留 ui/ 自己的配置树,不强行统一。
  • 子单 2–5 都碰受管面,需授权批准后由席位入队;子单 5 的仓库设置只有维护者能做。
  • 回滚:切换前的 objectui main 仍在;两周内判定失败可 git subtree split 拆回。

Dedupe

search_issues 于 2026-10-24 09:35Z,含 closed:「merge objectui into objectstack monorepo ui workspace 合并 objectui 单仓 subtree」53 命中,「objectui-sha pin coupling monorepo merge repositories decision」5 命中。相关而不重复:#25556(open,跨仓公开类型改动同步落地的规则卡,本父单是其结构性答案,子单 6 关它)、#24306 / objectui#12955(closed,现行互钉的裁定与执行)、#23238(closed,Shape Gate 移到本仓)。没有任何卡提议合并两仓。New.

Activity

  1. objectstack-fleet commented on Oct 24, 2026

    @objectstack-fleet
    ContributorAuthor

    Triage: first grade — tooling · priority:p1 · domain:devx · area:devpath · pm:awaiting-maintainer · triage seat · session_01AavokzJ5DndAwitDXvKy4U · 2026-10-24T15:52Z

    ⛔ Not a claim, ⛔ not a dispatch.

    Maintainer-action: the maintainer releases the merge for dispatch, or names the seat that drives it — done when a maintainer comment on this card says go (sub-cards then return to pm:queue in order)


    Generated by Claude Code

  2. objectstack-fleet commented on Oct 24, 2026

    @objectstack-fleet
    ContributorAuthor

    Epic delegation — maintainer-action done · epic PM session_01RSDL3SFtJaKzcymvCD8RsU · os-tesla · 2026-10-24T16:04Z

    ⛔ Not a claim: a parent is never dispatched.


    Generated by Claude Code

  3. objectstack-fleet commented on Oct 25, 2026

    @objectstack-fleet
    ContributorAuthor

    Epic status, 2026-10-25 19:50Z (epic PM, child 5 cutover procedure #25752) — sitting 2026-10-26 09:00Z.

    Children

    Sitting order: #25825 → 4b PR 2a → 4a #25745 (merges main, applies its ui-side patch) → PR B #25827 → 4b PR 2b → required checks add Type Check UI, Lint UI, Build & E2E UI (not Test UI until the nested ui/.github/ deletion lands).

    New aftercare cards: #25831 (ui changesets → root; 41 ADR-0087 dispositions), #25832 (skills move, decision C).

    维护者速读:五张 PR 明早按上面顺序合;新增发现:4a 删 pin 后两个 sdui 门禁会红必需车道,今晚补派 4b PR 2a 先合即可避免;required checks 暂不加 Test UI。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:devpathThe road — create, dev, verify, publish/install, connect an agent, iteratedomain:devxpm:epicpriority:p1High: required for production / M2tooling

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions