Repository navigation
@object-ui/plugin-report 的 peerDependencies 只允许 React/ReactDOM ^18.0.0,其余 28 个 UI 包都是 ^18.0.0 || ^19.0.0(仓库自身 dev 用 19.2.8) #3690
Description
Activity
- addedtarget:v17v17 发布窗口工作集(GA 前排查 2026-08-04)v17 发布窗口工作集(GA 前排查 2026-08-04)
on Aug 7, 2026 Triage:
pm:queue+target:v17. Nodomain:*— objectui is a whole-repo seat and carries pm-state only; no cross-repo transfer (see below).Classification
Queue, not
needs-user-decision. The body asks the maintainer to settle "doesplugin-reportreally not support React 19?", and refusing to guess was right at filing time — but the question is answerable from the repo, and routing/technical questions are the triage seat's to resolve rather than the maintainer's. Verified againstorigin/main, the answer is typo, on three independent readings:- Every third-party React consumer in this package already resolves under React 19.
pnpm-lock.yamlon main:lucide-react@1.28.0→peerDependencies: react: 19.2.8, resolved aslucide-react@1.28.0(react@19.2.8);react-i18next@17.0.11→peerDependencies: react: 19.2.8, resolved asreact-i18next@17.0.11(…)(react-dom@19.2.8(react@19.2.8))(react@19.2.8). Neither pins React 18; both are already installed against 19 in this workspace.clsxandtailwind-mergehave no React peer at all. - The package type-checks against React 19 today. Its own
devDependenciescarry@types/react: 19.2.18and@types/react-dom: 19.2.4, andtype-checkrunstsc --noEmit && tsc -p tsconfig.test.json. A package with a genuine React-18-only constraint would not be compiling against 19's type surface in CI. - Its workspace dependencies all declare
^18.0.0 || ^19.0.0— including@object-ui/plugin-grid, which shareslucide-reactwith it and reaches the wider range with the same dependency set.
So there is no undocumented constraint to preserve: the second branch of the body's fork ("若是真实约束 → 保留 + 加说明") does not obtain. The fix is the first branch — align to
^18.0.0 || ^19.0.0for bothreactandreact-dominpackages/plugin-report/package.json, matching the other 28 packages in the fixed version group.Standing instruction for the implementing seat: the three readings above are evidence, not proof of absence. If implementation turns up an actual React-18-only constraint (a runtime API, a transitive pin the lockfile does not show), stop and report instead of widening — that flips the card into the body's second branch, which does need the documenting comment it asks for.
Stale-premise check
git show origin/main:packages/plugin-report/package.json—peerDependenciesis still{react: ^18.0.0, react-dom: ^18.0.0}verbatim, nopeerDependenciesMeta, nodevDependencies.react.git log --oneline -5 origin/main -- packages/plugin-report/package.jsonshows nothing since; the premise holds. The prose half is confirmed gone: PR #3688 removed the README's hand-copiedReact: 18.x or 19.xline, so the self-contradiction the body describes now exists only on the truth side, exactly as stated.Routing
Stays in objectui, no
repo:*transfer to the main backlog. It is not feature-level, not cross-repo, and does not touchpackages/spec— a single published package's peer range, fixed in one file in this repo. The One-main-backlog transfer protocol is therefore not triggered.Release board
target:v17—@object-ui/plugin-reportis published (17.3.0), and with npm 7+ resolving peers strictly a React 19 user installing it hits anERESOLVEon first install while all 28 sibling packages install clean. That is a first-hour "follow the docs and it fails" experience on a shipped artefact, and it would need an apology in the release notes. Reversible in one line if the maintainer reads it as non-blocking.Dedup
Full-text scan of all 455 open issues and PRs across the three repos confirms the author's own
total_count: 0— no shadow in objectstack or cloud either. Related, not duplicate: #3645 / PR #3688 (the discovery context; that card's file surface was locked topackages/*/README.md, which is why this was correctly not fixed in passing).The body's out-of-scope suggestion (a
scripts/check-*.mjsgate asserting peer-range consistency across the fixed version group) is not folded in and is not filed as a card here — it is a tooling proposal on its own merits, and the triage seat does not file speculative work. Left in the body for the maintainer to pick up if wanted.本评论来自分诊座位 Routine(#5474 试点),不构成认领。
Generated by Claude Code
- Every third-party React consumer in this package already resolves under React 19.
在 #3697(文档版本宣称门禁)的全量测量里独立复现了这条,并量到一个附带事实,记在这里而不另开单 —— 它落在本单的完成范围内:
packages/plugin-report/README.md:24的 peer 重述写的是- `react` ^18.0.0 || ^19.0.0而
packages/plugin-report/package.json的peerDependencies.react只有^18.0.0。也就是说 README 已经按本单期望的样子写了,是清单落后于它 —— 本单把清单改成^18.0.0 || ^19.0.0,README 无需任何改动就自动变正确。(反过来的两处不在本单范围内,已另立 #3710:
plugin-chatbot的@ai-sdk/reactv3 实为^4.0.47,layout的 README 写react >= 18.0.0比清单^18.0.0 || ^19.0.0更宽。那两处是 README 错、清单对,与本单方向相反。)一并提示:#3697 的门禁 PR 已把
plugin-report/README.md:24以kind: 'stale'记进scripts/__tests__/doc-version-claims.test.ts的清单,理由行明确指向本单。本单合并后清单条目的kind应从stale改回restatement(宣称文本不变,所以 ratchet 不会变红,但理由行会变成过时叙述)。
Generated by Claude Code
Generated by Claude Code
PM 裁决(维护者已授权代裁,session_01GTRjn8xBqp75dk7kFupVRt):测量门控的机械默认 — 三探针全过则放宽到
^18.0.0 || ^19.0.0(与 28 个兄弟包对齐),任一失败则退回维护者。三探针(证据标准机械,不涉偏好):
- git 历史:该行是否早于 28 包批量加
|| ^19.0.0的那次变更(批量漏改的直接证据); - API 面:plugin-report 源码是否用到任何 React 18 独有 API(grep 已知差异面);
- 经验证据:仓库 dev 依赖是 React 19.2.8 — plugin-report 的测试套件本来就在 19 下跑,绿即实证兼容。
据此认领。分支:
claude/issue-3690-report-peer-widen。文件面:packages/plugin-report/package.json(react + react-dom peer)+packages/plugin-report/README.md:24(#3711 ledger 注记的反向不符随之自动归正,ledger 相应条目处置)+ changeset(patch,peer 放宽)。⚠️ 若探针 1-3 任一反向 → 停手报告,维护者定。
Generated by Claude Code
- git 历史:该行是否早于 28 包批量加
- addedbugSomething isn't workingSomething isn't workingand removedtarget:v17v17 发布窗口工作集(GA 前排查 2026-08-04)v17 发布窗口工作集(GA 前排查 2026-08-04)
on Aug 8, 2026 验收:PR #3727 ACCEPT(会话
session_01GTRjn8xBqp75dk7kFupVRt,PM 循环)。交付内容:
@object-ui/plugin-report的 react / react-dom peerDependencies 由^18.0.0放宽为^18.0.0 || ^19.0.0,与固定版本组其余成员对齐;doc-version-claims ledger 中 plugin-report 条目由 stale 转 restatement。测量门控(派发时约定的三探针)全部通过,含 lockfile 构造性零 delta 的论证(pnpm importers 段对 workspace 包不记 peerDependencies)。dev 如实披露 worktree 内 plugin-report type-check 一格未跑绿(新树未 build 依赖的既有 TS2307,非本 diff 引起)——CI 全新安装按拓扑先 build,该格由远端覆盖,已核 CI 全绿,GAP 关闭。
两条观察级 finding(react-dom peer 声明了却零 import、react-runtime 的
'>=18'无上界)素材已收,由 PM 代开跟踪——当前 GitHub 搜索配额限流,按"先搜重后立单"纪律待恢复后立,单号届时回填本 thread。
Generated by Claude Code
接续注记(同一认领内的继续,非新认领;会话
session_01GTRjn8xBqp75dk7kFupVRt):PR #3727 与刚落 main 的 PR #3726 同改
scripts/__tests__/doc-version-claims.test.ts(3726 已把 ledger 27→21、stale 9→1),#3727 的 auto-merge 已因 base 前进失效,预期存在合并冲突。派继续 dev 进保留的 worktreeobjectui-3690:merge origin/main 解冲突(按 3726 后的新 ledger 形状把仅剩的 plugin-report stale 行翻为 restatement,头注计数按合并后文件实况重算),顺带补上报告中如实披露的 type-check 缺格(pnpm --filter '@object-ui/plugin-report^...' build后重跑),推送后由 PM 重挂 auto-merge。
Generated by Claude Code
- added 5 commits that reference this issue
on Aug 10, 2026
越界发现,记录于 #3645(退役 36 个包 README 的 §Compatibility 生成块,PR #3688)期间 —— 逐行核对 README 的
- **React:** 18.x or 19.x是否与peerDependencies一致时量到。未在 PR #3688 中顺手修改:那单的文件面锁死在packages/*/README.md,明确禁止碰任何package.json。事实(对
origin/main复核,切点9961df297)packages/plugin-report/package.json:全仓对照 —— 29 个声明了
peerDependencies.react的包里,28 个是^18.0.0 || ^19.0.0,只有plugin-report是^18.0.0:react-dom同样只到^18.0.0;该包无peerDependenciesMeta,也无devDependencies.react。为什么这不是纯风格问题
仓库自身开发用的是 React 19.2.8(多个包的
devDependencies.react)。一个装了 React 19 的使用者同时安装@object-ui/plugin-report,包管理器会报 peer 冲突/警告 —— 而同一个 fixed 版本组里其余 28 个包都声明支持 19。要么这是笔误(那 React 19 使用者在装 report 插件时会被无谓地拦一下),要么该包确实有只在 18 下成立的约束(那这个约束目前没有任何地方记录,而且 README 直到 PR #3688 删掉它之前还一直宣称 "React: 18.x or 19.x",与 package.json 自相矛盾)。这个自相矛盾正是 #3645 决定删掉 README 那行手抄版本号的依据之一:散文副本已经和被它抄写的
peerDependencies分了岔。PR #3688 删掉了散文侧,真相侧的这处不一致仍在。需要确认的问题(不猜,留给维护者)
plugin-report是否真的不支持 React 19?^18.0.0 || ^19.0.0,与其余 28 个包一致。顺带建议(不在本单范围):这类「fixed 版本组内 peerDependencies 应当一致」的约束目前无门禁,靠人眼在 39 个 package.json 之间比对。若认为值得,可另立一单加
scripts/check-*.mjs机械校验 —— 但那是独立判断,不应捆绑进本单。已搜重
plugin-report peerDependencies react、peer dependencies React 19搜过开放 issue,total_count: 0,无重复。关联
@objectstack/spec^3.3.0,实际全仓锁 ^17.0.0-rc.5;部分包还列了自己并不依赖的@objectstack/client#3645 / PR docs(packages): 退役 36 个包 README 里已死的 release-metadata §Compatibility 生成块 #3688 —— 发现语境(核对 README 手抄值与peerDependencies真相时量到)。Generated by Claude Code