Skip to content

API Maturity

这页定义 @simon_he/vue-tui 的 API 稳定性标签。发布评审时按这里判断一个符号应该留在当前入口、移动入口,还是继续视为内部实现。

标签

标签适用范围兼容性承诺
Publicroot、/core/renderer/dom/cli/markdown/mermaid 中已文档化的导出RC 阶段只为 release blocker 做必要破坏性调整;1.0 stable 后 1.x patch/minor 不做 breaking change
Advanced/vue/runtime/observability 中面向集成者的扩展导出Soft-stable;1.x 内破坏性调整必须先 deprecate 至少跨一个 minor,或在文档中明确不受 Public SemVer 保护
Experimental@simon_he/vue-tui/experimental@simon_he/vue-tui/agent@simon_he/vue-tui/agent/mermaid不进入 1.x stable 兼容性承诺;可以调整 props、types、事件和行为,但必须写 release note
Internal未从 package entrypoint 导出的模块、helper、scheduler primitive不承诺兼容;应用代码不应 deep import

生成的 组件 API 会给每个组件标出 API maturity 和 import entrypoint。稳定基础组件从 root entrypoint 引入,扩展 Vue 组件从 /vue 引入;Experimental 组件从 /experimental/agent 引入。

Entrypoint 边界

Entrypoint标签内容Breaking policy
@simon_he/vue-tuiPubliccore terminal、DOM renderer、稳定基础 Vue 组件、browser-safe helpers1.0 stable 后 patch/minor 不做 breaking change
@simon_he/vue-tui/corePublicterminal core、buffer-facing types、ANSI/theme/path/hyperlink helpers1.0 stable 后类型或语义 breaking 进入下一个 major
@simon_he/vue-tui/renderer/domPublicDOM renderer factory、renderer capabilities、DOM renderer options文档化 API patch/minor 不做破坏性改动
@simon_he/vue-tui/vueAdvanced扩展 Vue 组件、composables、router helpers 和 Vue runtime internalsSoft-stable;破坏性调整先 deprecate 或明确排除
@simon_he/vue-tui/runtimeAdvancedruntime wiring、selection helpers、clipboard abstractionSoft-stable;默认无副作用 contract 变更需 migration note
@simon_he/vue-tui/observabilityAdvancedtrace、frame perf、profiler hooksSoft-stable;输出 schema 破坏性变更需要 release note
@simon_he/vue-tui/cliPublicstdout renderer、stdin driver、headless app、Node providers、recordingNode-only public contract;breaking 进入下一个 major
@simon_he/vue-tui/markdownPublicmarkdown parser / block source / markdown components文档化 API patch/minor 不做破坏性改动
@simon_he/vue-tui/mermaidPublicoptional beautiful-mermaid bridge、renderer helper 和 wrapper componentoptional peer bridge;文档化 API patch/minor 不做破坏性改动
@simon_he/vue-tui/experimentalExperimentalTVirtualListTLogView、TLog companions、retained index、TLog plugins可调整,但必须有 release note
@simon_he/vue-tui/agentExperimentalagent/console 场景聚合入口,导出 transcript、tool-call、log、markdown 常用组件可调整,但必须有 release note
@simon_he/vue-tui/agent/mermaidExperimentalagent namespace 下的 optional beautiful-mermaid bridge 和 wrapper componentoptional peer bridge;可调整,但必须有 release note

规则:

  • Public entrypoint 不能 re-export Experimental 组件或 Node-only CLI helper。
  • /experimental 不能被 root re-export;应用需要显式从 @simon_he/vue-tui/experimental opt in。
  • /agent 是聚合入口,不能承载 provider/session/tool approval 等具体 agent 业务模型。
  • /agent/mermaid 是 optional peer bridge,不改变 /agent 主入口依赖边界。
  • /experimental 不能 re-export /markdown 的组件;高吞吐 log stack 和 markdown stack 分开发布。
  • /agent 的 terminal graphics 导出面保持在组件、PNG renderer helper、render queue、capability detection 和协议 sequence creator;trace/hash/validation/sanitize helper 保持 Internal。
  • Internal helper 只允许在源码内部相对路径引用,不能加入 exportssrc/index.tssrc/cli.tssrc/markdown.tssrc/experimental.ts
  • Deep import @simon_he/vue-tui/dist/... 不属于支持面。
  • Vue injection keys 使用全局 protocol namespace,让同一 protocol 的 root/cli/experimental bundle 可以互通;如果 context shape 发生不兼容变化,必须 bump injection protocol。

Experimental Graduation

Experimental API 进入 Public entrypoint 前必须同时满足:

条件要求
API 稳定props、events、handle methods、composables 在至少一个 release cycle 内没有破坏性调整
文档完整docs/components.md、generated API docs、相关 examples 都描述同一套行为
Renderer contractDOM、stdout、headless capability 分支有明确 fallback,不依赖隐藏 renderer 细节
Accessibilitybrowser 使用路径有 ARIA/keyboard/selection 说明,默认不会制造不可退出的焦点陷阱
Permission modelclipboard、OSC52、file URL、path provider、external link action 都有显式 opt-in 边界
Consumer smokepacked package install smoke 用 pnpm 和 npm 覆盖 root/cli/experimental 的真实组合,而不只是 import
Testsunit、package exports、example smoke、packed package smoke 全部通过

如果其中一项不满足,API 继续留在 /experimental。不要为了发版临时复制到 root entrypoint。

Internal API

Internal API 包括但不限于:

  • row cache、fingerprint、buffer storage layout
  • scheduler mailbox、frame task implementation detail
  • TLog internal wrapping/cache/search index helpers
  • renderer private diffing helpers
  • VitePress/demo-only shims

这些可以被 public 或 experimental implementation 使用,但不是 consumer contract。测试可以覆盖 internal 行为;文档只描述外部可依赖的语义。

Bug reports, feature requests, and documentation issues are tracked on GitHub Issues.