You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Oct 26, 2026. It is now read-only.
Repository navigation
This repository was archived by the owner on Oct 26, 2026. It is now read-only.
decision: React 18 is a published peer contract (^18 || ^19 in 33 packages) that is never installed or tested — narrow to ^19, or add a React 18 lane? #13465
Filing gate ②: a decision only the maintainer can make. Raised by the 2026-10-24 whole-repo review; the maintainer approved filing the review's independent cards verbatim: 「同意:建议新建:与合并无关、独立成卡的产品/契约项(可现在建)」. Batch-of: 13.
维护者速读
一句话问题:我们对外承诺 React 18 可用,但仓里没有任何东西在 React 18 上跑过——锁文件里 0 个 react@18、613 个 react@19.2.8,没有 18 的 CI 车道,radix 焦点补丁也是对 19 的树打的。要么把承诺收窄到 ^19(诚实,一次 minor + breaking 说明),要么加一条 React 18 测试车道(为一个没人证明存在的消费者付每次 CI 的钱)。
Recommendation: A. Confidence gap: external React 18 consumers are 未实测 (npm dependents are not readable from the session); if one is known, B becomes the honest choice. Only-① check: 只看①选 A;②③④ 是否翻转:否。
裁后执行:A → one os-dev PR narrowing the 33 ranges with one changeset each, AGENTS §2 "React 18+" becomes "React 19"; B → a react18 vitest project under projects in vitest.config.mts and a shard in ci.yml (governed surface).
os-decision-facets
① 项目长远合理性:A 收窄契约到实测面,减少特例;B 扩大验证面;C 维持未验证声明。
② 实际业务拉动:无已知 React 18 消费者(未实测),零拉动默认 remove。
③ 防 AI 犯错:A 在安装期响亮拒绝;C 让 18 主机运行期静默失败。
④ 创业阶段不扩散:A 删一个永久义务;B 新增一条永久 CI 车道。
Prior rulings read: peerDependencies react|React 18|react@18 → 3 hits (unrelated); ADR none; thread: none.
Filed by the read-only whole-repo review session https://claude.ai/code/session_01BDtwYUWhLGyWLzYQjZ95Cf on 2026-10-24, written through the maintainer's own account token (the session holds no fleet-bot credential). Evidence files: that session's scratchpad (objectui-review-report.md, findings-*.md). ⛔ Not a claim; triage grades and routes; suggested labels are suggestions only.
Source: the maintainer, in the Claude Code review session https://claude.ai/code/session_01BDtwYUWhLGyWLzYQjZ95Cf chat on 2026-10-24, verbatim and untranslated: 「13465 同意」
Recorded by that session on the maintainer's instruction (who: the maintainer; what: the quote above; where: the session chat, not GitHub). Per the card's 裁后执行 section, execution is now:
One os-dev PR narrowing peerDependencies.react (and react-dom where declared) from ^18.0.0 || ^19.0.0 to ^19.0.0 in the 33 packages, one changeset per package at minor with a breaking note (AGENTS.md 版本号策略: no major in a changeset); AGENTS.md §2 "React 18+" becomes "React 19" (governed surface, separate PR or an authorised approval).
Transition applied in the same write: needs-user-decision → pm:queue; the Ruled: line is prepended to the body. Dispatch is the objectui domain:ui seat's.
⛔ Not a claim, ⛔ not a dispatch. finding comes off.
Ruled A, 6386224339: narrow the 33 peerDependencies.react entries to ^19.0.0, with a minor changeset per package and a breaking note, per AGENTS 版本号策略. AGENTS.md §2's "React 18+" is fixed in the same PR, a governed line.
Claim: PM loop round 1 · 2026-10-25T00:31Z
Session: session_01Erxd3BYXhV2mQMatxGZ9yg (the card session that works this card; claim written by the domain:ui seat 4 session session_01XWGTsmqrtrt1Zqh1ioWqsT)
Account: os-elon-musk
Branch: claude/project-thread-8vyi5c (platform-assigned at spawn; the card session can push only this branch)
Worktree: objectui-issue-13465
Domain: domain:ui
Seat: domain:ui#4
File surface: every packages/*/package.json / apps/*/package.json that declares a react or react-dom peer range, AGENTS.md (the §2 "React 18+" line only), .changeset/13465-*.md (one per published package), pnpm-lock.yaml if the install rewrites it (stop on breach; explain in the report)
Container & model: M, mode:thread, model: default tier (dispatch-gates --tier --repo objectstack-ai/objectui: no path-derived mandate), effort: high
Clause-②: no
Metadata-protocol: none
Responsibility: n/a — not a defect card
Thread-read: 6387034917
Premise: holds — on objectui maincd70b78, AGENTS.md:36 still reads "React 18+"; 31 manifests carry the exact string "^18.0.0 || ^19.0.0" (the card measured 33 at 7981384; the dev re-derives the set by any spelling, not by this count)
Serial constraints cleared: seat 1's open PRs #13473 and #13474 touch no package.json and not AGENTS.md (read at this claim)
Writes: all PR, comment and label writes go only through objectstack's relay (scripts/pm/fleet-write); never write with GitHub MCP.
Ruling (verbatim, 6386224339): 「13465 同意」 → letter A: "One os-dev PR narrowing peerDependencies.react (and react-dom where declared) from ^18.0.0 || ^19.0.0 to ^19.0.0 in the 33 packages, one changeset per package at minor with a breaking note (AGENTS.md 版本号策略: no major in a changeset); AGENTS.md §2 "React 18+" becomes "React 19" (governed surface, separate PR or an authorised approval)." Triage (6387034917) puts the AGENTS.md line in the same PR.
Tier H:AGENTS.md is governed. The PR stays draft and waits for an approval by GOVERNED_APPROVERS; draft a ## 维护者速读(草稿) section (Chinese, business view, seat opinion left empty). A narrowing of a published peer range also owes one contract-review-tier review before the queue.
Claim amendment · domain:ui#4 · 2026-10-25T00:33Z · amends the claim 6391446264 (append-only; the claim's other lines stand)
Measured by the card session on cd70b78: 31 packages, 56 peer declarations (31 react + 25 react-dom); no other spelling; no @types/react peers. The ruling's "33" reads as 31.
File surface, added on the card session's request (each edit makes a now-false statement true; no behaviour beyond the narrowing):
Tests that pin the old range: scripts/__tests__/react-peer-range-norm-3741.test.ts, scripts/__tests__/doc-version-claims.test.ts (with its claim-ledger keys), scripts/__tests__/quick-reference-current-release-4143.test.ts.
What those tests read: the 12 package READMEs' peer lines (packages/{auth,collaboration,components,i18n,layout,mobile,permissions,plugin-ai,plugin-designer,plugin-report,react,react-runtime}/README.md) and QUICK_REFERENCE.md's React row.
Consistency: content/docs/guide/troubleshooting.md, content/docs/guide/plugins.md, packages/create-plugin/src/templates.ts (the generated plugin's peers, its own minor changeset), comment-only lines in packages/react (useGlobalUndo), packages/components (inline-markdown, two "Built with React 18+" doc lines), packages/cli scaffold-dependencies + its test.
Cross-lane face:skills/objectui/SKILL.md (the Tech Stack line that mirrors AGENTS.md §2) and skills/objectui/guides/plugin-development.md are the domain:skills face (published skills/**). They ride here because they mirror the governed line this ruling changes. Net line budget for skills/**: 0 (rewrite in place, add nothing). The claiming seat follows them to MERGED; their review is owed at that face's tier (contract-review tier), on top of the Tier H approval the PR already waits for.
ACCEPT → PR #13481 comment 6391709813 · domain:ui#4 · 2026-10-25T01:02Z. Tier H: waits for a GOVERNED_APPROVERS approval and a same-head contract review (needs:contract-review on the PR).
PR #13481 merged at 2026-10-25T02:18Z, merge commit 6f629a7310a53d7a60f9e1937d12223a7b141722, after the Tier H approval of record (os-zhuang) and the same-head contract review PASS (6392078557). The card closed completed through Fixes; pm:dispatched comes off in this stroke. objectui merges publish nothing (the changesets release is a human act).
Activity
os-zhuang commentedon Oct 24, 2026
Maintainer ruling — letter A.
Source: the maintainer, in the Claude Code review session
https://claude.ai/code/session_01BDtwYUWhLGyWLzYQjZ95Cfchat on 2026-10-24, verbatim and untranslated: 「13465 同意」Recorded by that session on the maintainer's instruction (who: the maintainer; what: the quote above; where: the session chat, not GitHub). Per the card's 裁后执行 section, execution is now:
peerDependencies.react(andreact-domwhere declared) from^18.0.0 || ^19.0.0to^19.0.0in the 33 packages, one changeset per package atminorwith a breaking note (AGENTS.md 版本号策略: nomajorin a changeset); AGENTS.md §2 "React 18+" becomes "React 19" (governed surface, separate PR or an authorised approval).Transition applied in the same write:
needs-user-decision→pm:queue; theRuled:line is prepended to the body. Dispatch is the objectuidomain:uiseat's.Generated by Claude Code
objectstack-fleet commentedon Oct 24, 2026
Triage: first grade —
dependencies·priority:p2·domain:ui·area:devpath·pm:queue· triage seat ·session_01AavokzJ5DndAwitDXvKy4U· 2026-10-24T17:02Z⛔ Not a claim, ⛔ not a dispatch.
findingcomes off.peerDependencies.reactentries to^19.0.0, with aminorchangeset per package and a breaking note, per AGENTS 版本号策略. AGENTS.md §2's "React 18+" is fixed in the same PR, a governed line.Generated by Claude Code
objectstack-fleet commentedon Oct 25, 2026
Claim: PM loop round 1 · 2026-10-25T00:31Z
Session:
session_01Erxd3BYXhV2mQMatxGZ9yg(the card session that works this card; claim written by thedomain:uiseat 4 sessionsession_01XWGTsmqrtrt1Zqh1ioWqsT)Account:
os-elon-muskBranch:
claude/project-thread-8vyi5c(platform-assigned at spawn; the card session can push only this branch)Worktree:
objectui-issue-13465Domain:
domain:uiSeat:
domain:ui#4File surface: every
packages/*/package.json/apps/*/package.jsonthat declares areactorreact-dompeer range,AGENTS.md(the §2 "React 18+" line only),.changeset/13465-*.md(one per published package),pnpm-lock.yamlif the install rewrites it (stop on breach; explain in the report)Container & model:
M,mode:thread,model: default tier (dispatch-gates --tier --repo objectstack-ai/objectui: no path-derived mandate),effort: highClause-②: no
Metadata-protocol: none
Responsibility:
n/a — not a defect cardThread-read: 6387034917
Premise: holds — on objectui
maincd70b78,AGENTS.md:36still reads "React 18+"; 31 manifests carry the exact string"^18.0.0 || ^19.0.0"(the card measured 33 at7981384; the dev re-derives the set by any spelling, not by this count)Serial constraints cleared: seat 1's open PRs #13473 and #13474 touch no
package.jsonand notAGENTS.md(read at this claim)Writes: all PR, comment and label writes go only through objectstack's relay (
scripts/pm/fleet-write); never write with GitHub MCP.peerDependencies.react(andreact-domwhere declared) from^18.0.0 || ^19.0.0to^19.0.0in the 33 packages, one changeset per package atminorwith a breaking note (AGENTS.md 版本号策略: nomajorin a changeset); AGENTS.md §2 "React 18+" becomes "React 19" (governed surface, separate PR or an authorised approval)." Triage (6387034917) puts the AGENTS.md line in the same PR.AGENTS.mdis governed. The PR stays draft and waits for an approval byGOVERNED_APPROVERS; draft a## 维护者速读(草稿)section (Chinese, business view, seat opinion left empty). A narrowing of a published peer range also owes one contract-review-tier review before the queue.objectstack-fleet commentedon Oct 25, 2026
Claim amendment ·
domain:ui#4· 2026-10-25T00:33Z · amends the claim6391446264(append-only; the claim's other lines stand)Measured by the card session on
cd70b78: 31 packages, 56 peer declarations (31react+ 25react-dom); no other spelling; no@types/reactpeers. The ruling's "33" reads as 31.File surface, added on the card session's request (each edit makes a now-false statement true; no behaviour beyond the narrowing):
scripts/__tests__/react-peer-range-norm-3741.test.ts,scripts/__tests__/doc-version-claims.test.ts(with its claim-ledger keys),scripts/__tests__/quick-reference-current-release-4143.test.ts.packages/{auth,collaboration,components,i18n,layout,mobile,permissions,plugin-ai,plugin-designer,plugin-report,react,react-runtime}/README.md) andQUICK_REFERENCE.md's React row.content/docs/guide/troubleshooting.md,content/docs/guide/plugins.md,packages/create-plugin/src/templates.ts(the generated plugin's peers, its ownminorchangeset), comment-only lines inpackages/react(useGlobalUndo),packages/components(inline-markdown, two "Built with React 18+" doc lines),packages/cliscaffold-dependencies + its test.skills/objectui/SKILL.md(the Tech Stack line that mirrors AGENTS.md §2) andskills/objectui/guides/plugin-development.mdare thedomain:skillsface (publishedskills/**). They ride here because they mirror the governed line this ruling changes. Net line budget forskills/**: 0 (rewrite in place, add nothing). The claiming seat follows them to MERGED; their review is owed at that face's tier (contract-review tier), on top of the Tier H approval the PR already waits for.Generated by Claude Code
objectstack-fleet commentedon Oct 25, 2026
ACCEPT → PR #13481 comment 6391709813 ·
domain:ui#4· 2026-10-25T01:02Z. Tier H: waits for aGOVERNED_APPROVERSapproval and a same-head contract review (needs:contract-reviewon the PR).objectstack-fleet commentedon Oct 25, 2026
Landed ·
domain:ui#4· 2026-10-25T03:00ZPR #13481 merged at 2026-10-25T02:18Z, merge commit
6f629a7310a53d7a60f9e1937d12223a7b141722, after the Tier H approval of record (os-zhuang) and the same-head contract review PASS (6392078557). The card closedcompletedthroughFixes;pm:dispatchedcomes off in this stroke. objectui merges publish nothing (the changesets release is a human act).Generated by Claude Code
chore(deps): narrow the React peer range to ^19.0.0 (objectui#13465) (o…