Uh oh!
There was an error while loading. Please reload this page.
docs(packages): 退役 36 个包 README 里已死的 release-metadata §Compatibility 生成块 - #3688
Merged
Conversation
… from 36 package READMEs The `release-metadata:v3.3.0` marker block was emitted once by a release-time generator that no longer exists: a repo-wide search finds the marker only inside the 35 READMEs that carry it — zero references from scripts/, .github/ or anywhere else in objectui, and zero across the objectstack repo. Nothing regenerates it, so every row has been frozen since v3.3.0 while the repo moved on. Measured against origin/main, all five rows are now false, not just the two the issue named: - `@objectstack/spec` ^3.3.0 -> 27 packages pin ^17.0.0-rc.5 (none pin ^3.3.0) - `@objectstack/client` ^3.3.0 -> only 1 package (data-objectstack) depends on it at all, so the row is a phantom in 35 of the 36 READMEs that print it - Node.js >= 18 -> the only enforceable floor is root engines.node ">=22" - TypeScript >= 5.0 -> typescript is ^6.0.3 in all 39 declarations - Tailwind CSS >= 3.4 -> tailwindcss is ^4.3.3 / ^4.2.1 - React 18.x or 19.x -> duplicates peerDependencies, and has already drifted: plugin-report's peer range is ^18.0.0 only Per the repo rule that a version number in prose is a guarantee of drift, the rows are deleted rather than refreshed: rewriting them to rc.5 / >=22 / ^6 / ^4 re-arms the same drift the next time any of them moves. The truth already lives in package.json (engines, peerDependencies, dependencies) where the package manager enforces it at install time. Every row goes, so the section empties and the heading goes with it rather than leaving an empty §Compatibility. Pure deletion: 387 lines removed, 0 added, confined to the generated block. Fixes#3645 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GTRjn8xBqp75dk7kFupVRt
The latest updates on your projects. Learn more about Vercel for GitHub. |
This was referenced Aug 7, 2026
yinlianghui
marked this pull request as ready for review
August 7, 2026 21:35
Contributor
✅ Console Performance Budget
📦 Bundle Size Report
Size Limits
|
Uh oh!
There was an error while loading. Please reload this page.
This was referenced Aug 7, 2026
Merged
This was referenced Aug 8, 2026
akarma-synetal pushed a commit
to akarma-synetal/objectui
that referenced
this pull request
Aug 10, 2026
…d READMEs carry (objectstack-ai#3664) (objectstack-ai#3695) `packages/plugin-tree/README.md` was the only one of the 38 published packages that had a README but no `## License` section. Census over origin/main: - 38 published (non-private) packages - 37 have a README (`sdui-parser` has none — out of scope, see objectstack-ai#3647) - 36 of those 37 carry `## License`; plugin-tree was the sole omission The section is copied verbatim from the dominant form, 32 of the 36: ## License MIT — see [LICENSE](./LICENSE). The four minority spellings are `MIT` (types, react-runtime) and `MIT © ObjectStack Inc.` (plugin-timeline, plugin-chatbot). The issue suggested plugin-timeline as the exemplar, but that form is 1-of-36 and carries no `./LICENSE` link at all — the majority form is both the convention and the one that gives the link gate something to check. Position matches too: final section, as in 34 of the 36 (plugin-view and types continue past it). This also closes the gap objectstack-ai#3664 identified: `check-doc-links.mjs` scan root 7 (`packages/*/README.md`, `disk` rule) resolves relative hrefs as repository paths, so the new `./LICENSE` link is now mechanically checked against the file PR objectstack-ai#3662 landed. Previously the README linked nothing, which is exactly why the objectstack-ai#3622/objectstack-ai#3649 dead-link sweep could not detect the missing LICENSE — no link, no dead link. Verified the new link is load-bearing rather than vacuously green: temporarily removing `packages/plugin-tree/LICENSE` turns the gate red with `packages/plugin-tree/README.md:50 -> ./LICENSE` (exit 1); restoring it returns `Links are valid across 7 scan roots` (exit 0). No changeset: documentation-only, matching the precedent of PR objectstack-ai#3662 (which added this same package's LICENSE, likewise shipped in the tarball) and PR objectstack-ai#3688 (36 package READMEs), neither of which carried one. Fixesobjectstack-ai#3664 Claude-Session: https://claude.ai/code/session_01GTRjn8xBqp75dk7kFupVRt Co-authored-by: Claude <noreply@anthropic.com>
akarma-synetal pushed a commit
to akarma-synetal/objectui
that referenced
this pull request
Aug 10, 2026
…mpatibility row (objectstack-ai#3698) The "Package information" table on the CLI docs page carried two claims that no longer match the tree: - `Node | >= 18` contradicted the only Node floor the repo states (root package.json `engines.node`); no package under packages/* declares `engines.node` at all. - `Compatibility | @objectstack/spec ^3.3.0` was doubly wrong: no package in the repo pins ^3.3.0 (all 29 declarations resolve to one current range in the lockfile), and packages/cli declares no @objectstack/spec dependency in dependencies/devDependencies/peerDependencies, with zero @objectstack/* imports in its source. Per the same repo rule applied in objectstack-ai#3645 / PR objectstack-ai#3688, version numbers are not rewritten into prose -- that re-arms the same drift machine for the next major. The Node row now points at the file that states the requirement; the spec row is removed as a ghost row, matching how PR objectstack-ai#3688 handled the @objectstack/client rows on packages that did not depend on it. The Name / Bin / License rows were re-verified against packages/cli/package.json and are correct, so the table stays. Fixesobjectstack-ai#3689 Claude-Session: https://claude.ai/code/session_01GTRjn8xBqp75dk7kFupVRt Co-authored-by: Claude <noreply@anthropic.com>
akarma-synetal pushed a commit
to akarma-synetal/objectui
that referenced
this pull request
Aug 10, 2026
…tack-ai#3726) Fixesobjectstack-ai#3708Fixesobjectstack-ai#3709Fixesobjectstack-ai#3710 按失真的三种性质分别处置,不套统一口径: - 无锚宣称(objectstack-ai#3708 三处)—— 照 objectstack-ai#3645 / PR objectstack-ai#3688 仓规删版本号指真相: architecture-overview 的三层架构 ASCII 图与散文不再写 spec 的版本区间 (改指各包 package.json 的 dependencies),architecture.md 不再写 TypeScript 的大版本下限。一律不改写成 rc.5 / ^6 —— 重写等于把同一台 漂移机器重新上膛。 - 脚手架记录(objectstack-ai#3709)—— create-plugin.mdx 逐字复制的那份 package.json 三处版本错、字段也错(把 workspace 链接的 dependencies 记成 ^0.3.0 的 peer),读者照做会装出一个装不上的包。改为描述真实生成形态并指向生成器 模板本身,不再逐字复制版本区间。 - 有锚重述(objectstack-ai#3710)—— 与自家清单对齐而不是删除:layout 的三条 peer 行 收窄成清单逐字一致的形态(原 >= 拼写过度承诺,读者照装会拿到 peer 冲突), plugin-chatbot 的 @ai-sdk/react 主版本对齐清单。 ledger 相应收缩 27 → 21 条,stale 9 → 1(仅剩 plugin-report 那条, 其修法在清单侧,归 objectstack-ai#3690)。棘轮两步实测:清前红并逐条点名 8 条陈旧条目 与 2 条未记录的新宣称,清后 6/6 绿。 Claude-Session: https://claude.ai/code/session_01GTRjn8xBqp75dk7kFupVRt Co-authored-by: Claude <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for freeto join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes#3645
背景:生成器已死,块被冻结在 v3.3.0
标记行
release-metadata:v3.3.0(HTML 注释形式)曾由发布期生成器写入,该生成器已不存在。PM 两仓实测我已独立复现:没有任何工具会再生成或覆盖这个块 —— 所以 issue 正文「手改会被下次发版覆盖」的顾虑不成立,而块里的每一行都从 v3.3.0 起被冻结,仓库却一路走到了 17.x。
一条正交证据:
packages/app-shell/README.md的标记行孤悬在第 616 行,与它本该界定的 §Compatibility(第 774 行)相隔 158 行,中间被插进了## Command palette等新章节。活的生成器会重新锚定或整块覆盖,不会容忍这种漂移。形态实测:PM 预设的「标记行 + 标题 + 5 行 bullet」有四处不成立
packages/cli/README.md有完整 §Compatibility 块但无标记行,且冒号在粗体外(- **Node.js** ≥ 18)、Tailwind 行无(for packages with UI)后缀- **React:** 18.x or 19.x;仅 cli / core / create-plugin / data-objectstack / runner / types / vscode-extension 这 7 个是 5 行packages/types/README.md的 spec 行是^15.1.1,不是^3.3.0packages/app-shell/README.md标记行与块相隔 158 行另有 2 个包(
plugin-tree、react-runtime)本就没有这个块,未触碰。engines 实测(enforce-or-remove 的输入)
这正是 issue 派发时预留的「测量给出别的形态(如根 package.json 有 engines)」分支:真相存在,但在根而非包,且由 pnpm 在安装期强制。
六行逐行处置依据 —— 全部失真,不止 issue 指出的两行
@objectstack/spec^3.3.0^17.0.0-rc.5,零包锁 ^3.3.0@objectstack/client^3.3.0data-objectstack)依赖它engines.node为">=22"^6.0.3^4.3.3(6 处)/^4.2.1(1 处)(for packages with UI)的括号本身就承认它不逐包为真 → 删^18.0.0 || ^19.0.0,但plugin-report只有^18.0.0一律不改写为 rc.5 / >=22 / ^6 / ^4。 按仓规「版本号入散文即漂移保证 —— 删」:重写等于把同一台漂移机器重新上膛,下个 major 又错一遍。真相已在
package.json(engines / peerDependencies / dependencies)里,由包管理器在安装期强制,读者违反会拿到硬错误而不是一份陈旧文档。六行全删 → §Compatibility 整节空掉 → 连标题一起删,不留空节。
两处越出字面裁决的取舍,已由 PM 裁 A
plugin-report已证明它不是例外。保留它会让 29 个文件留下只剩一条 bullet 的 §Compatibility 节 —— 此时标题反而更误导(读作「这就是全部兼容性约束」却已不含 Node/TS)。PM 裁 A:一并删。grep -rn 'release-metadata|\^3\.3\.0' packages/*/README.md零命中」只有覆盖cli才可能满足。PM 裁 A:判据优先于估数。改动形状:纯删除,算术对得上
逐类核对:
(每块 = 标记 2 行【标记行 + 空行】 + 标题 2 行【标题 + 空行】 + N 行 bullet + 1 行尾随空行。)
被删行去重后只有六种:标记行、
## Compatibility标题、空行、以及五类兼容 bullet —— 无任何其他内容。§Links 等其他节(#3649 刚修过)、任何 package.json 均未触碰;暂存区 36 个文件全部匹配^packages/[^/]*/README\.md$,越界文件数 0。门禁
node scripts/check-doc-links.mjsLinks are valid across 7 scan roots.exit=0Links are valid across 7 scan roots.exit=0node scripts/check-control-bytes.mjsOK (scanned 3674 tracked text file(s); skipped 85 binary)exit=0[\x00-\x08\x0b\x0c\x0e-\x1f]doc-links 前后同绿是预期方向,不是空绿:
scripts/check-doc-links.mjs:395的{ path: 'packages/*/README.md', rule: 'disk' }是第 7 个扫描根,门禁确实读到了这 36 个文件;本改动删除的行不含任何 markdown 链接语法,链接面按构造不变。据实记录为同绿,不套「前红后绿」的模板。验收判据计数:
changeset:不加(写明判断)
README.md 确在
files内、属发布物内容,但:.changeset/文件数均为 0:docs(runner): 把 README 两处开放集合的插件措辞按实测闭合 (#3632) #3644(runner README 措辞)、fix(plugin-tree): 补上 package.json files 已声明、但仓库里不存在的 LICENSE (#3647) #3662(plugin-tree LICENSE)、feat(scripts): check-doc-links 扫描面第四扩 packages/*/README.md,并付清入场价的 11 条死链 (#3622) #3649(7 个包 README + 新门禁)。附带提示:本 PR 全部是
*.md,ci.yml/lint.yml的paths-ignore含**/*.md,预期这两个 workflow 显示 skipping —— 按 AGENTS.md 那是跳过、不是失败。未在本 PR 修的越界发现(已另立单)
content/docs/utilities/cli.mdx:283)plugin-report的 peerDependencies.react 与其余 28 个 UI 包不一致Generated by Claude Code