Skip to content

chore(ui): remove the vscode-extension package from the monorepo - #27275

Merged
objectstack-fleet[bot] merged 6 commits into
mainfrom
claude/issue-25910-remove-vscode-extension
Oct 28, 2026
Merged

objectstack-fleet[bot] merged 6 commits into
mainfrom
claude/issue-25910-remove-vscode-extension

Conversation

@objectstack-fleet

@objectstack-fleet objectstack-fleet Bot commented Oct 28, 2026 •

Copy link
Copy Markdown
Contributor

domain:devx#2 · os-justin · session_01QSeKYmTYfaPbLQD4BJfomW

Fixes #25910

Clause-②: no
Metadata-protocol: none
Ruling-ref: 6386223367

维护者速读

  • 改了什么:按裁决 B(移出)从单仓删除 ui/packages/vscode-extension/(25 个文件),并清掉所有引用它的读者:文档页与导航、CONTRIBUTING 两行、changeset 固定组成员、各门禁的豁免条目与钉住它的测试;pnpm-lock.yaml 用 pnpm install 重新生成。
  • 为什么改:这个扩展号称「official」,却没有构建、没有发布、没有门禁,坏了也没人知道;维护者裁定移出,历史保留在 git 里。
  • 风险与回滚:只删一个 private、无人依赖的包,不改任何已发布包的行为;回滚就是 revert 本 PR。改动行数超过 3,000(主要是删除的文件和锁文件),按规则须经授权批准或维护者亲手合并。
  • 先看:.changeset/config.json 与 scripts/check-changeset-fixed.mjs(固定组成员删除与 PRIVATE_FIXED_MEMBERS 清空);ui/scripts/__tests__/check-doc-links.test.ts(三个下限按实测下调,各自写明原因);ui/scripts/check-unused-dependencies.mjs(删掉扩展的两条豁免)。
  • 两分钟验证:node scripts/check-changeset-fixed.mjs,预期输出 ✓ .changeset/config.json "fixed" group is in sync with 109 public workspace packages.
  • 需要你做的:批准或亲手合并(改动行数超过 3,000 的 PR 不能由席位自动落地)。

What changes

  • Deleted ui/packages/vscode-extension/ (25 files) and its docs page ui/content/docs/utilities/vscode-extension.mdx. The page also comes out of utilities/meta.json, three spots in utilities/index.md, and guide/architecture.md.
  • Root: two CONTRIBUTING.md rows; the object-ui member of the .changeset/config.json fixed group; and PRIVATE_FIXED_MEMBERS in scripts/check-changeset-fixed.mjs, now empty with a rewritten comment. The mechanism stays and is still fixture-tested.
  • pnpm-lock.yaml: regenerated with pnpm install on the tree, then again verified with --frozen-lockfile after merging origin/main.
  • ui gates and their tests:
    • check-unused-dependencies.mjs: the extension's two bundler-inlined allowances go, together with the now-unused bundlerInlinedAllowance helper. The gate's own rule 3 reds a row with no subject.
    • markdown-test-inputs.mjs: the extension test's ledger entry goes.
    • body-dialect-census.test.ts: the three deleted reader/producer paths leave their lists, following the runner precedent beside them. The CompletionProvider by-name pin is replaced with a note. The population zero and both of its lit controls stay.
    • check-changeset-fixed.test.ts: the "still keeps the private VS Code extension inside the fixed group" pin becomes "puts no private package inside the fixed group", the shape that is true now.
    • check-doc-snippet-emitted-census.test.ts: the per-package split test moves to a neutral fixture. The repository test keeps its remaining named member and its >= 2 floor.
    • check-doc-component-types.test.ts: the deleted page leaves the heading list.
  • Measured floors and counts, each with its reason in the comment:
    • check-doc-links.test.ts: packages/* docs 11 → 8 and combined 14 → 11 (the package's DESIGN.md, ICON.md and PUBLISHING.md); README decidable hrefs 135 → 126 and site-absolute 40 → 39 (this card's extension README, plus refactor(ui)!: retire @object-ui/plugin-ai and its three node types #27042's plugin-ai README on the merge with main); content/docs site-absolute 6 → 5 (the deleted page); package-dir decidable 2 → 1 (DESIGN.md).
    • ui/tsconfig.json / ui/tsconfig.tier-base.json: the extends graph re-measured with ts.readConfigFile at 87 tracked files, 73 of them extending the root (37/38 package tsconfig.json and all 35 tsconfig.test.json). packages/runner is now the only one that extends nothing.
  • Comments only: present-tense claims about the extension in @object-ui/core (dataset-format.ts, number-display.ts), @object-ui/types (form.zod.ts, package-exports-manifest.test.ts) and eight ui/scripts files are past-tensed. Historical notes, released CHANGELOG.md entries and dated ui/docs/audits/* are untouched.

Tests

Read on the merged head 383f0f0a (merge of origin/main 1c5fe3cb).

  • pnpm --dir ui exec vitest run --maxWorkers=2 scripts/ (lock VERDICT command-exit 1): Test Files 16 failed / 158 passed, Tests 57 failed / 4659 passed. That failing set is identical to the untouched baseline at 4d3a077f (57 failed). This diff adds 0 failures. All 57 are pre-existing environment failures: the unbuilt @objectstack/spec dist that ratchets and ledgers import (spec-symbol-ledger-*, check-doc-expression-carriage, date-only-zone-pins …).
  • Before the reader fixes, the deletion alone added 10 failures to that baseline. All 10 are green now.

Acceptance notes

  • Changed lines are 8,704 (+170 / −8,534), almost all deleted files and the lockfile. That is over the 3,000-line threshold, so this PR lands by an authorized approval or the maintainer's own merge.
  • Lowered floors: every one moves down by exactly the content this ruling deletes, with the measured value and its reason in the comment beside it. None is loosened beyond that.
  • The vscode row in HOST_PROVIDED (ui/scripts/check-phantom-dependencies.mjs) stays. It is fixture-tested and generic, and only its comment changed.
  • Left alone on purpose:
  • The ruling's "ci.yml comment" has 0 hits on main, so there was nothing to edit under .github/workflows/**.

Verification

Derived gates (dispatch-gates --commands, 75 commands at 383f0f0)
  • 73 non-suite commands run, each exit captured before any pipe:
    • 69 exit 0.
    • 4 exit 3 (PREREQUISITE NOT MET: pnpm build not run, so nothing was measured): check:dts-closure, check:dual-build-cjs-loads, check:lean-entry-closure, check:sourcemap-no-sources-content. All four read built @objectstack/* dists this diff does not touch. NOT MEASURED locally; CI's Build Core / Lint run them.
  • pnpm --dir ui exec vitest run scripts/: see Tests.
  • pnpm check:pm-dispatch-gates: see the report.
  • Also run:
    • node scripts/check-changeset-fixed.mjs --self-test: 12 cases pass.
    • node scripts/check-changeset-fixed.mjs: in sync with 109 public packages.
    • ui's check-changeset-fixed, check-doc-links (13 scan roots), check-doc-component-types, check-unused-dependencies and check-phantom-dependencies: all exit 0.
    • pnpm install --frozen-lockfile: exit 0.

Generated by Claude Code

The maintainer ruled to move it out of the monorepo. Its history stays in git.

Claude-Session: https://claude.ai/code/session_01QSeKYm29SiQaonK2q8F7CS
Co-authored-by: Claude <noreply@anthropic.com>
Docs page and its nav entry, the CONTRIBUTING rows, the changeset fixed-group
member and its PRIVATE_FIXED_MEMBERS row, the unused-dependency allowances, the
markdown test-input ledger entry, and the census/doc-link pins whose subjects
left with the package; floors and tsconfig counts re-measured on the new tree.

Claude-Session: https://claude.ai/code/session_01QSeKYm29SiQaonK2q8F7CS
Co-authored-by: Claude <noreply@anthropic.com>
@objectstack-fleet

Copy link
Copy Markdown
Contributor Author

席位核对 — ACCEPT · over the 3,000-line floor, awaiting approval · domain:devx#2 · head bf73eca023 · 2026-10-28T14:32Z

维护者速读

  • 改了什么:按你 2026-10-24 的裁决 B(「13469 移出」),把从未构建、从未发布的 VS Code 扩展 ui/packages/vscode-extension 整包移出单仓,共 25 个文件。所有提到它的地方一并清理:CONTRIBUTING.md 的两张表、.changeset/config.json 的 fixed 版本组、它的文档页,以及会数包的门禁和测试。
  • 为什么改:README 自称「official」,但仓库里没有任何构建或发布路径,坏了也没人知道。这些代码只会慢慢腐烂,还要每次被门禁和测试扫一遍。
  • 风险与回滚:这是个 private 包,从未上过 npm,工作区里也没人依赖它,所以对用户零影响。8,704 行里绝大部分是整包删除和 pnpm-lock.yaml 重新生成,手改的只有 32 个文件,+152/−712。回滚 = 还原本 PR。
  • 先看:.changeset/config.json(fixed 组去掉 object-ui),以及 scripts/check-changeset-fixed.mjs(私有成员表清空,但机制保留)。然后看 ui/scripts/__tests__/check-doc-links.test.ts 里下调的几处下限,每一处只扣掉被删掉的那几份文档,并写了理由。
  • 两分钟验证:git grep vscode-extension 只剩已发布的 CHANGELOG、带日期的审计文档和合成测试夹具;本 PR 的 CI 全绿。
  • 需要你做的:批准本 PR,os-zhuang 或 hotlong 任一位即可。它超过 3,000 行,按规矩要人批;批准后席位负责转 ready、入队。

席位意见:合入。按裁决把包整体移出,读到它的地方逐一清理。测试下限只按被删内容精确下调,没有放松。skills/objectui/README.md 的一行属 skills 车道,已转到 #27048。

Shape: draft → main, Fixes #25910, Ruling-ref: 6386223367. 58 files, +170/−8534: 25 package files deleted, pnpm-lock.yaml regenerated, and 32 hand-edited files with +152/−712. Labels skip-changeset (private package; the only published-package edits are comment text in @object-ui/core and @object-ui/types), plus the auto labels. Assignee os-justin. Not governed (0 of 58 paths hit the register), but over the 3,000-line human-merge floor, so it takes the governed landing path. Claim 6469909924, report 6471432493.

Premise measured: both PRs that the deferral 6430941995 waited on are settled. #26343 merged; #26365 closed unmerged and was reopened as #27042, which also touches CONTRIBUTING.md and the lockfile on different rows. Root ci.yml has 0 hits for vscode-extension, so no workflow is touched.

Seat's own read of the diff without the package and the lockfile, at TIER_DEFAULT:

  • .changeset/config.json: object-ui leaves the one fixed group. Changesets would refuse a group member with no workspace package, so this edit is required, not optional. Tesla's 17b ruling (release(ui-merge): one release lane for both scopes — 39 @object-ui packages join the @objectstack fixed group, packages/console builds from ui/apps/console, both repos' pin scripts and sha files are deleted (parent #25677, 4a/6) #25711) kept the extension in the group, and this card's ruling B takes the package itself away.
  • scripts/check-changeset-fixed.mjs: PRIVATE_FIXED_MEMBERS becomes an empty frozen map. A private package is still refused in the group unless it gets a ruled row. Its test puts no private package inside the fixed group is true on the new tree and red on the old one.
  • The check-doc-links.test.ts floors drop 11→8, 14→11, 135→129, 6→5 and 2→1. Each drop equals the documents this PR deletes (DESIGN.md, ICON.md, PUBLISHING.md, the README and the docs page), following the in-file objectui#5965 precedent. Each one names its measured value and reason. No floor drops below the deleted content.
  • The census and unused-deps pins whose subject left with the package are removed, and their population zeros and lit controls remain.
  • The ui tsconfig counts are re-measured on the new tree: 87 files, 73 extending the root.

Gates: on head bf73eca023, 63 check-runs: 51 success, 12 skipped, 0 failure, mergeable_state: clean. check-expected-skips --pr 27275: OK, all 12 skips are in main's roster. check-governed-merges --pr 27275: not governed, 8,704 changed lines, above the floor. Dev's union: dispatch-gates --ran 75 derived, 71 run, 4 NOT MEASURED (no build closure); pnpm install --frozen-lockfile exit 0. The ui scripts/ suite's 57 failures are identical to an untouched baseline (unbuilt spec dist), and CI's Test UI is green.

Open question, answered by the seat: content/docs/releases/v18/18-2.mdx L88 → A, left as is. It records what 18.2.0 shipped, and releases/** is release-owned.

Out of scope, with destinations:

Skills-docs: none (the skills line is forwarded above).

Landing: over the floor, so on an approval from GOVERNED_APPROVERS (os-zhuang, hotlong) the seat readies the PR and arms auto-merge. Review is requested in this act, and needs-user-decision is added while the PR waits. On merge, the seat verifies the merged diff, posts the landing note on #25910 and archives cloud session session_01QSeKYm29SiQaonK2q8F7CS.


Generated by Claude Code

@os-zhuang
os-zhuang marked this pull request as ready for review October 28, 2026 17:47
@os-zhuang
os-zhuang added this pull request to the merge queue Oct 28, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Oct 28, 2026
@github-actions

Copy link
Copy Markdown
Contributor

⛔ merge queue 构建失败 — 先分诊,再决定要不要重排

队列构建 40739047226 红了。队列跑的是全量套件(PR 侧 CI 只跑 affected 子集),
所以失败的测试可能在本 PR 没碰过的包里 —— 那不是重排能修的。每次盲目重排都会让排在后面的所有 PR 重建一轮。

分类:failure —— 按下面的日志分诊。

失败的 job(日志抽取,best effort):

  • Test UI (15/16) — 失败步骤: Run the ui tests (shard 15/16)

    × really judges the links these READMEs carry — the floor under the green 74ms
    FAIL   unit  scripts/__tests__/check-doc-links.test.ts > packages/*/README.md joined the disk surface — objectui#3622 > really judges the links these READMEs carry — the floor under the green
      ↳ 失败原因: AssertionError: expected 126 to be greater than or equal to 129
    

↳ 失败原因 是判读的关键:超时(Test timed out in … / Hook timed out in …)多半是负载/时序,不是本 PR 的回归;
断言(AssertionError: …)才指向真实的行为改变。两者的 FAIL 行长得一模一样,只有这一行能区分。

⚠️ 断言这一侧有一类例外,判据是断言在测什么,不是它是不是 AssertionError。 断言的对象是产品行为(一个值、一个形状、一次拒收)⇒ 照上面读:真实的行为改变,去查,⛔ 不要重排掉;
断言的对象是这次实验自身的有效性前提(跑完的耗时、负载下的先后、任何只在时间预算内才成立的条件)⇒ 它跟超时是同一类,同样对负载敏感,重排一次是合法的判别手段。
识别是机械的:断言的消息或它比较的值本身点名了一段时长、一个时间戳、一个耗时计数。实测过的一对 —— AssertionError: SecurityPlugin.init() ran: expected false to be true 测的是产品行为(真回归);
AssertionError: this run took over a second, so second-precision stamps could have differed too: expected 1006 to be less than 1000 测的是实验前提:它守护的那条不变式当时是绿的,同一个 head 原样重排一次即成功。
穿着 AssertionError 外衣的时间测量,仍然是时间测量。(⛔ 这只改「怎么读一次红」,不改「哪些测试可以重排」——后者由别处管。)

跨 PR 相同签名(24h,按失败测试文件聚合):

  • scripts/__tests__/check-doc-links.test.ts — 24h 窗口内只有本 PR 撞到过,暂不汇总(再有一个不同 PR 撞到就会自动开汇总 issue)。
  • ⚠️ 24h 评论账本没读完(超过 5 页仍未读到窗口尽头),所以上面的「不同 PR 数」是下界,不是全量。

历史信号:

  • 本 PR 过去 24h 无队列失败记录(首次)。
  • 过去 24h 队列共有 19 个失败构建(不含本次)。

分诊清单:

  1. 失败测试在本 PR 改动的包里 → 真回归,修 PR。
  2. 失败测试与本 PR 无关 → 看上面的「跨 PR 相同签名」;已有汇总 issue ⇒ flaky/环境问题实锤,去那张 issue 上谈,修好前重排只会再烧一轮全队列。
  3. 两者都不是 → 可能与同组 PR 语义冲突;等前面的 PR 落地或失败出队后再重排一次即可,不要连续重排。

Generated by Claude Code · merge-queue-triage workflow (#4859)

#27042 retired plugin-ai and its README, which carried 3 decidable and 1
site-absolute href; with the extension README this card removes, the floors
read 126 and 39 on the merged tree.

Claude-Session: https://claude.ai/code/session_01QSeKYm29SiQaonK2q8F7CS
Co-authored-by: Claude <noreply@anthropic.com>
@objectstack-fleet
objectstack-fleet Bot added this pull request to the merge queue Oct 28, 2026
Merged via the queue into main with commit ebfadb0 Oct 28, 2026
67 of 68 checks passed
@objectstack-fleet
objectstack-fleet Bot deleted the claude/issue-25910-remove-vscode-extension branch October 28, 2026 19:10
os-tesla pushed a commit that referenced this pull request Oct 29, 2026
… once the extension's last links left

Merging main brought #27275, which deleted the vscode-extension package and
with it the last two self-repo GitHub URLs in the tree, so the floor of 1
read 0. The extractor stays covered by its own selfRepoPath unit test.

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

Labels

dependencies Pull requests that update a dependency file documentation Improvements or additions to documentation size/xl skip-changeset PR has no user-facing published change; bypasses the changeset gate tests tooling

Projects

None yet

3 participants