Skip to content

docs(design): plugin-distribution names esbuild, as os plugin build bundles - #27723

Merged
objectstack-fleet[bot] merged 1 commit into
mainfrom
claude/issue-27700-plugin-dist-esbuild
Oct 29, 2026
Merged

objectstack-fleet[bot] merged 1 commit into
mainfrom
claude/issue-27700-plugin-dist-esbuild

Conversation

@objectstack-fleet

Copy link
Copy Markdown
Contributor

Fixes #27700
Clause-②: no
Metadata-protocol: none

维护者速读

  • 改了什么:docs/design/plugin-distribution.md 两处把打包工具写成 tsup 的句子,改为 esbuild(树形注释一处,§5 第 1 步一处)。
  • 为什么改:os plugin build 实际用 esbuild 打包入口到 dist/index.mjs,设计说明却指引读者去用 tsup。
  • 风险与回滚:纯文档、不进任何包的发布内容,无运行时风险;回滚即 revert 这一个提交。
  • 先看:docs/design/plugin-distribution.md 第 164 行起的 §5 第 1 步新句子是否与你对构建流程的理解一致。
  • 两分钟验证:运行 git grep -n -w tsup -- docs/design/plugin-distribution.md,预期没有任何输出。
  • 需要你做的:无,席位落地。

What changes

Two sentences in docs/design/plugin-distribution.md named tsup; os plugin build bundles with esbuild. Each replacement is written from what packages/cli/src/commands/plugin/build.ts does, not by swapping the word:

  • Tree comment (.osplugin layout, L113): "pre-built ESM bundle (tsup)" becomes "pre-built ESM bundle (esbuild → dist/index.mjs)". The build writes the single dist/index.mjs (outfile and the staged archive entry).
  • §5 step 1 (L164): "run tsup (externalize @objectstack/*)" becomes "esbuild-bundle the entry to dist/index.mjs (externalize @objectstack/*, inline every other dependency)". In the code external: ['@objectstack/*'] is the only external, so every other dependency is inlined; this agrees with §4.3 "Bundled only".

Only those two places are edited. The ADR-0025 half of the original card is #27684 (triage re-scope), and docs/adr/** is untouched.

Tests

Docs-only change; no package test applies.

Gate readings
  • git grep -n -w tsup -- docs/design/plugin-distribution.md exits 1 with no output (0 hits), against 2 hits on origin/main 2feee8371a.
  • node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstack derived 15 families for this diff; all 15 were run locally and exited 0 (--ran reconciliation: 15 derived, 15 run, 0 NOT-MEASURED). The CI-side families are read from this PR's check-runs.
  • Raw control-character scan of the file: no hits.

Acceptance notes

  • skip-changeset is declared at creation: docs/design/ is in no package's files[] (git grep 'docs/design' -- 'packages/*/package.json' has no hit), so the diff publishes nothing.
  • No out-of-scope findings.

Verification

git grep -n -w tsup -- docs/design/plugin-distribution.md prints nothing.


Generated by Claude Code

…undles

The tree comment and section 5 step 1 named tsup; os plugin build bundles with
esbuild into dist/index.mjs, externalizing @objectstack/* and inlining the rest.

Claude-Session: https://claude.ai/code/session_01QSeKYmTYfaPbLQD4BJfomW
Co-authored-by: Claude <noreply@anthropic.com>
@objectstack-fleet objectstack-fleet Bot added the skip-changeset PR has no user-facing published change; bypasses the changeset gate label Oct 29, 2026
@github-actions github-actions Bot added size/xs documentation Improvements or additions to documentation labels Oct 29, 2026
@objectstack-fleet

Copy link
Copy Markdown
Contributor Author

domain:devx#2 · os-justin · session_01QSeKYmTYfaPbLQD4BJfomW

席位核对 — ACCEPT · domain:devx#2 · head e4be39ac3f · 2026-10-29T20:59Z

维护者速读

  • 改了什么:docs/design/plugin-distribution.md 里有两句把打包工具写成 tsup,现在改为 esbuild。一处是目录树注释,一处是 §5 第 1 步。
  • 为什么改:os plugin build 实际是用 esbuild 把入口打包到 dist/index.mjs,设计说明却让读者去用 tsup。
  • 风险与回滚:只改文档(1 个文件,+3/−2),这份文档不随任何包发布,运行时没有风险。回滚 = 还原本 PR。
  • 先看:§5 第 1 步的新句子(第 164 行起)。
  • 两分钟验证:git grep -n -w tsup -- docs/design/plugin-distribution.md,应该没有任何输出。
  • 需要你做的:无。席位落地。

席位意见:合入。新句子是照 build.ts 写的,不是把 tsup 换个词:只外部化 @objectstack/*,其余依赖都打进包里,产物是 dist/index.mjs。

Shape: draft → main, Fixes #27700. 1 file, docs/design/plugin-distribution.md, +3/−2. Labels: documentation, size/xs, skip-changeset (docs/design is in no package's files). No assignees or reviewers, because the PR is non-governed and the seat lands it. The dev opened it through the relay. Report 6507955217, claim 6507629555.

Premise measured: build.ts has an esbuild bundle to dist/index.mjs, with external only @objectstack/* (its L11 docblock and L34 import). Both tsup mentions were present on main after #27698.

Seat's own read: L113 now reads "pre-built ESM bundle (esbuild → dist/index.mjs); @objectstack/* externalized". L164 now reads "esbuild-bundle the entry to dist/index.mjs (externalize @objectstack/*, inline every other dependency)". docs/adr/** is untouched; the ADR-0025 half is #27684, per triage 6506937086.

Gates:

  • On head e4be39ac3f: 46 check-runs, 26 success, 20 skipped, 0 failure; mergeable_state: clean.
  • check-expected-skips --pr 27723: OK, all 20 skips are in main's roster (exit 0).
  • check-governed-merges --pr 27723: NOT governed, 5 changed lines.
  • Dev's union: 15 derived, 15 run, all exit 0, after an install and closure build. The first, pre-install pass was discarded.

Accepted deviations: the commit was amended before it was published, to the repo's model-free trailer pair, because check:commit-card-trailers refused the model-named one. The PR body carries the repo's footer form.

Out of scope: none new. ADR-0025 is #27684. Skills-docs: n/a.

Landing: non-governed, 5 changed lines. The seat readies the PR and arms auto-merge in this act. On merge, the seat verifies the merged diff and posts the landing note on #27700.


Generated by Claude Code

@objectstack-fleet
objectstack-fleet Bot marked this pull request as ready for review October 29, 2026 21:00
@objectstack-fleet
objectstack-fleet Bot enabled auto-merge October 29, 2026 21:00
@objectstack-fleet
objectstack-fleet Bot added this pull request to the merge queue Oct 29, 2026
Merged via the queue into main with commit ef359b9 Oct 29, 2026
47 checks passed
@objectstack-fleet
objectstack-fleet Bot deleted the claude/issue-27700-plugin-dist-esbuild branch October 29, 2026 21:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation size/xs skip-changeset PR has no user-facing published change; bypasses the changeset gate

Projects

None yet

1 participant