Skip to content

docs(runner): 把 README 两处开放集合的插件措辞按实测闭合 (#3632) - #3644

Merged
yinlianghui merged 1 commit into
mainfrom
claude/issue-3632-readme-plugin-list
Aug 7, 2026
Merged

docs(runner): 把 README 两处开放集合的插件措辞按实测闭合 (#3632)#3644
yinlianghui merged 1 commit into
mainfrom
claude/issue-3632-readme-plugin-list

Conversation

@yinlianghui

Copy link
Copy Markdown
Collaborator

Fixes #3632

前提复核(独立于 issue 正文)

切点 fa3ba5bf1。issue 正文的行号已漂(#3621 / #3634 改过同文件),按内容锚定复核,两处缺陷都仍在,实测预装集合与 issue 正文一致 —— 恰好两个,无差异:

实测面 结果
packages/runner/package.json dependencies 的 plugin-* @object-ui/plugin-charts@object-ui/plugin-kanban
packages/runner/src/App.tsx:14-15 注册 import @object-ui/plugin-kanban@object-ui/plugin-charts
packages/runner/src 全量 plugin- grep 另有 index.css:13-14@sourcevite.config.ts:77-78 的别名 —— 同样只覆盖这两个

行号漂移:§Features 该行 9 → 11,§Pre-installed Plugins 41-47 → 43-49。

前后对照

§Features

-- **Plugin Support** - Pre-configured with popular plugins (Kanban, Charts, etc.)
+- **Plugin Support** - Pre-configured with the Kanban and Charts plugins

括号里已经穷举了全部两个,末尾却缀 etc.,读起来是「还有更多没列」。一并去掉 popular:集合闭合之后,「popular plugins (Kanban, Charts)」仍读作「从更大集合里挑的几个热门的」,会把刚合上的口子重新撑开 —— 这个词与闭合措辞不相容,不是顺手润色。

§Pre-installed Plugins

-The runner comes with these plugins pre-configured:
+The runner comes with these two plugins pre-configured, registered by the imports in
+`src/App.tsx`:

 - **@object-ui/plugin-kanban** - Kanban board components
 - **@object-ui/plugin-charts** - Chart visualization components
-- **Additional plugins can be added as needed**
+
+Adding any other plugin means editing the runner's own sources and rebuilding — a
+dependency in `package.json`, a registration import in `src/App.tsx`, and the
+`vite.config.ts` alias and `src/index.css` `@source` entries the two above have. There
+is no runtime plugin installation.

第三条不是插件,却被排在一句「comes with these plugins pre-configured」引出的列表里、且和前两条一样加粗,形状上与两个真插件并列,扫读时会被当成第三个预装项。按 issue 建议降为列表下方的一句正文。

保留(而非删除)的措辞理由:该节读者的下一个问题必然是「那我怎么加别的插件」,留空反而会让人去猜一个不存在的运行时机制。这句话按实测写清真实代价,四个落点都已复核 —— package.json dependencies、App.tsx:14-15vite.config.ts:77-78index.css:13-14,现有两个插件在后两处各有条目。末句「There is no runtime plugin installation」把 issue 关心的那个误读直接堵死。

措辞上刻意说「the entries the two above have」(现有两个插件各有的条目)而不是「required」:vite 别名表的作用是让 runner 直接从 monorepo 源码启动(见 vite.config.ts:42-43 关于 #3575 的注释),把它写成硬性必需会是新的过度断言 —— 陈述现状而不越界断言。

验证(先预测后跑)

三条预测,全部命中:

  1. 修后全文 etc. 零命中,§Pre-installed Plugins 列表恰两项
$ grep -n 'etc\.' packages/runner/README.md      -> 无输出(exit 1)
$ awk '/^## Pre-installed Plugins/{f=1;next} /^## /{f=0} f' packages/runner/README.md | grep -c '^- '
2
  1. docs:check-links 修前修后皆绿
修前: Links are valid across 6 scan roots.
修后: Links are valid across 6 scan roots.

关于扫描面(#3622 在途扩包 README 扫描面):本切点上 packages/** 还不在扫描面内 —— scripts/check-doc-links.mjs:355-362SCAN_ROOTScontent/docs / examples / README.md / CONTRIBUTING.md / ROADMAP.md / docs 六项,脚本自己在第 264 行写着「Measured and NOT bought: the package READMEs (objectui#3622)」。也就是说这道门禁目前根本没读到本文件,它的绿不构成对本改动的证明。真正的证据是链接零增删:git show HEAD:packages/runner/README.md 与工作区各 12 个 markdown 链接,两处改动都不含链接。#3622 落地后本文件进扫描面也不受影响。

  1. check:control-bytes 绿 + 自扫干净
$ node scripts/check-control-bytes.mjs
✅  check-control-bytes: OK (scanned 3661 tracked text file(s); skipped 85 binary).
$ grep -naP '[\x00-\x08\x0b\x0c\x0e-\x1f]' packages/runner/README.md
(无输出, exit 1)

未跑 pnpm test / type-check:本 PR 是纯 README 文本改动,零代码行,runner 的 vitest 与 tsc 都不读 README —— 跑一遍只会在共用容器里烧内存换一个与本改动无关的绿。如实记录,不补造证据。

无 changeset

包 README 的事实订正,不改任何发布产物或公开 API,沿用 #3602 / #3621 / #3634 的先例。

越界发现(只报不改)

通读两节邻接,§Features 其余四条与 §Running the Runner、§Metadata Loading 均已复核属实(dev: vite / build: vite build 脚本存在;package.json 确实没有 main / module / exports / types)。同类新虚构:无。

另有一处非同类、非邻接的发现(生成块的版本漂移,波及 35 个包 README),已按仓规单独建 issue 归档,不在本 PR 修改。

⛔ 未碰 content/docs/utilities/runner.mdx(#3618 在途)。


🤖 Generated with Claude Code

https://claude.ai/code/session_01GTRjn8xBqp75dk7kFupVRt


Generated by Claude Code

`packages/runner/README.md` 两处把预装插件写成开放集合,实测预装的恰好是
kanban + charts 两个:`packages/runner/package.json` 的 dependencies 里
`plugin-*` 只有 `@object-ui/plugin-charts` 与 `@object-ui/plugin-kanban`,
`packages/runner/src/App.tsx:14-15` 也只有这两行注册 import。

- §Features:`(Kanban, Charts, etc.)` 已穷举全部两个却仍缀 `etc.`,读起来是
  「还有更多没列」。去掉 `etc.` 并闭合为实测集合;一并去掉 `popular` ——
  集合闭合后「popular plugins」仍读作「从更大集合里挑的几个热门」,会把刚
  合上的口子重新撑开。
- §Pre-installed Plugins:非插件的加粗行「**Additional plugins can be added
  as needed**」被排在「comes with these plugins pre-configured」引出的列表
  里、且与前两条同样加粗,形状上成了第三个预装项。把它移出列表,降为列表
  下方的说明句,并按实测写清加插件的真实代价(改 `package.json` 依赖、
  `src/App.tsx` 注册 import,以及现有两个插件在 `vite.config.ts` 别名表和
  `src/index.css` `@source` 里各有的条目)后重新构建 —— runner 没有运行时
  插件安装机制。

无 changeset:包 README 的事实订正,不改任何发布产物或公开 API,沿用
#3602 / #3621 / #3634 的先例。

Fixes #3632

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GTRjn8xBqp75dk7kFupVRt
@github-actions

github-actions Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

✅ Console Performance Budget

Metric Value Budget
Main entry (gzip) 28.1 KB 350 KB
Entry file index-Db9tmbJX.js
Status PASS

📦 Bundle Size Report

Package Size Gzipped
app-shell (index.js) 8.66KB 3.13KB
app-shell (runtime-config.js) 7.42KB 2.32KB
app-shell (types.js) 0.01KB 0.04KB
app-shell (urlParams.js) 7.57KB 2.97KB
auth (AuthContext.js) 0.31KB 0.24KB
auth (AuthGuard.js) 1.17KB 0.53KB
auth (AuthProvider.js) 22.10KB 4.37KB
auth (AuthShell.js) 3.49KB 1.40KB
auth (ForgotPasswordForm.js) 12.21KB 3.45KB
auth (LoginForm.js) 18.13KB 5.39KB
auth (PreviewBanner.js) 0.90KB 0.50KB
auth (RegisterForm.js) 6.64KB 2.21KB
auth (SocialSignInButtons.js) 9.60KB 3.89KB
auth (UserMenu.js) 3.40KB 1.22KB
auth (auth-gate-events.js) 1.29KB 0.66KB
auth (authStyles.js) 5.04KB 1.72KB
auth (createAuthClient.js) 35.76KB 9.11KB
auth (createAuthenticatedFetch.js) 4.37KB 1.69KB
auth (index.js) 2.35KB 1.07KB
auth (org-roles.js) 6.66KB 2.78KB
auth (phone-identifier.js) 1.11KB 0.66KB
auth (types.js) 0.59KB 0.35KB
auth (useAuth.js) 4.91KB 0.87KB
auth (useIsWorkspaceAdmin.js) 1.61KB 0.85KB
collaboration (CommentThread.js) 26.07KB 7.56KB
collaboration (LiveCursors.js) 3.17KB 1.27KB
collaboration (PresenceAvatars.js) 6.49KB 2.64KB
collaboration (PresenceProvider.js) 2.79KB 1.13KB
collaboration (index.js) 1.65KB 0.73KB
collaboration (useCollaborationTranslation.js) 6.05KB 2.52KB
collaboration (useCommentSearch.js) 1.98KB 0.88KB
collaboration (useConflictResolution.js) 7.75KB 1.86KB
collaboration (useMentionNotifications.js) 1.81KB 0.68KB
collaboration (usePresence.js) 6.33KB 1.84KB
collaboration (useRealtimeSubscription.js) 7.91KB 2.01KB
components (index.js) 480.72KB 105.64KB
core (index.js) 2.96KB 1.13KB
create-plugin (index.js) 9.28KB 2.98KB
data-objectstack (index.js) 137.51KB 35.11KB
fields (index.js) 230.87KB 56.83KB
i18n (LocalizationContext.js) 1.76KB 0.96KB
i18n (currency.js) 1.22KB 0.64KB
i18n (i18n.js) 4.32KB 1.77KB
i18n (index.js) 2.65KB 1.06KB
i18n (pickLocalized.js) 1.70KB 0.83KB
i18n (provider.js) 9.48KB 3.27KB
i18n (useObjectLabel.js) 26.14KB 6.07KB
i18n (useSafeTranslation.js) 4.52KB 1.96KB
layout (index.js) 38.53KB 10.71KB
mobile (MobileProvider.js) 0.92KB 0.49KB
mobile (ResponsiveContainer.js) 0.94KB 0.38KB
mobile (breakpoints.js) 1.51KB 0.70KB
mobile (createOfflineDataSource.js) 5.61KB 1.74KB
mobile (index.js) 1.50KB 0.62KB
mobile (offlineQueue.js) 3.91KB 1.35KB
mobile (pwa.js) 0.97KB 0.49KB
mobile (serviceWorker.js) 1.48KB 0.62KB
mobile (serviceWorkerSource.js) 3.41KB 1.48KB
mobile (useBreakpoint.js) 1.54KB 0.65KB
mobile (useGesture.js) 6.96KB 1.98KB
mobile (useOfflineSync.js) 1.99KB 0.72KB
mobile (usePullToRefresh.js) 2.53KB 0.85KB
mobile (useResponsive.js) 0.71KB 0.42KB
mobile (useResponsiveConfig.js) 1.36KB 0.63KB
mobile (useSpecGesture.js) 4.32KB 1.64KB
mobile (useTouchTarget.js) 1.01KB 0.54KB
permissions (MePermissionsProvider.js) 8.75KB 3.06KB
permissions (PermissionContext.js) 0.31KB 0.25KB
permissions (PermissionGuard.js) 0.89KB 0.45KB
permissions (PermissionProvider.js) 3.67KB 1.12KB
permissions (evaluator.js) 4.41KB 1.44KB
permissions (index.js) 0.91KB 0.41KB
permissions (store.js) 0.91KB 0.42KB
permissions (useFieldPermissions.js) 1.28KB 0.52KB
permissions (usePermissions.js) 1.55KB 0.71KB
plugin-ai (index.js) 15.71KB 3.79KB
plugin-calendar (index.js) 44.98KB 12.37KB
plugin-charts (index.js) 61.04KB 17.31KB
plugin-chatbot (index.js) 180.09KB 42.72KB
plugin-dashboard (index.js) 115.50KB 29.96KB
plugin-designer (index.js) 210.51KB 42.51KB
plugin-detail (index.js) 232.79KB 57.42KB
plugin-editor (index.js) 2.46KB 1.10KB
plugin-form (index.js) 112.10KB 27.10KB
plugin-gantt (index.js) 162.55KB 39.57KB
plugin-grid (index.js) 186.61KB 49.34KB
plugin-kanban (index.js) 48.30KB 13.28KB
plugin-list (index.js) 105.12KB 25.48KB
plugin-map (index.js) 16.81KB 5.24KB
plugin-markdown (index.js) 13.72KB 4.69KB
plugin-report (index.js) 40.58KB 10.58KB
plugin-timeline (index.js) 25.76KB 7.33KB
plugin-tree (index.js) 8.50KB 2.88KB
plugin-view (index.js) 84.03KB 20.55KB
providers (DataSourceProvider.js) 0.75KB 0.39KB
providers (MetadataProvider.js) 1.37KB 0.59KB
providers (ThemeProvider.js) 1.90KB 0.85KB
providers (UploadProvider.js) 11.71KB 3.53KB
providers (index.js) 0.44KB 0.22KB
providers (types.js) 0.01KB 0.04KB
react-runtime (index.js) 5.67KB 2.37KB
react (LazyPluginLoader.js) 3.77KB 1.33KB
react (SchemaRenderer.js) 19.28KB 6.38KB
react (data-invalidation.js) 5.05KB 2.08KB
react (index.js) 1.02KB 0.55KB
react (spec-input.js) 0.20KB 0.18KB
sdui-parser (codegen.js) 4.09KB 1.74KB
sdui-parser (index.js) 4.47KB 2.03KB
sdui-parser (parse.js) 10.04KB 2.82KB
sdui-parser (types.js) 0.29KB 0.24KB
sdui-parser (validate.js) 4.69KB 1.48KB
types (ai.js) 0.20KB 0.17KB
types (api-types.js) 0.20KB 0.18KB
types (app.js) 2.87KB 0.99KB
types (base.js) 0.20KB 0.18KB
types (blocks.js) 0.20KB 0.18KB
types (complex.js) 0.20KB 0.18KB
types (crud.js) 0.20KB 0.18KB
types (data-display.js) 0.20KB 0.18KB
types (data-protocol.js) 0.20KB 0.19KB
types (data.js) 0.20KB 0.18KB
types (designer.js) 1.87KB 0.85KB
types (disclosure.js) 0.20KB 0.18KB
types (error-code.js) 1.54KB 0.88KB
types (feedback.js) 0.20KB 0.18KB
types (field-types.js) 0.20KB 0.18KB
types (form.js) 0.20KB 0.18KB
types (http-retry.js) 4.32KB 2.02KB
types (index.js) 2.71KB 1.34KB
types (layout.js) 0.20KB 0.18KB
types (managed-by.js) 0.19KB 0.18KB
types (mobile.js) 2.59KB 1.31KB
types (navigation.js) 0.20KB 0.18KB
types (objectql.js) 0.20KB 0.18KB
types (overlay.js) 0.20KB 0.18KB
types (permissions.js) 0.20KB 0.18KB
types (plugin-scope.js) 0.20KB 0.18KB
types (record-components.js) 0.20KB 0.19KB
types (record-semantics.js) 1.28KB 0.67KB
types (registry.js) 0.20KB 0.18KB
types (reports.js) 0.20KB 0.18KB
types (spec-report.js) 5.05KB 1.93KB
types (system-fields.js) 3.33KB 1.54KB
types (theme.js) 0.20KB 0.18KB
types (ui-action.js) 3.40KB 1.71KB
types (views.js) 0.20KB 0.18KB
types (widget.js) 0.20KB 0.18KB

Size Limits

  • ✅ Core packages should be < 50KB gzipped
  • ✅ Component packages should be < 100KB gzipped
  • ⚠️ Plugin packages should be < 150KB gzipped

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

Projects

None yet

2 participants