Skip to content

0.x Release Candidate

这页是 0.x release candidate 的发布前检查单。目标是确认当前 main 可以作为候选版本验证,而不是在 release prep 阶段继续扩大功能范围。

Scope

  • 从最新 main 准备 release candidate;未合并 feature PR 不写进 release notes。
  • 不把 experimental API 提升到 root entrypoint。
  • 不新增 renderer、持久化层或外部 LLM API 集成。
  • 保持 root、markdown、experimental 三个 entrypoint 的边界清晰。

Migration Notes

  • TList wheel scrolling 现在只代表 viewport scroll,不再把 wheel 作为 selection commit。
  • TList Enter / double click 通过 change 表示确认选择;update:modelValue 只表示 selection change。
  • TRenderPlane.plane mount 后按 immutable 处理;需要迁移 plane 时使用 :key remount。
  • scheduler.queueFrameTask() 可能返回 false;producer 必须在被拒绝时清理自己的 pending state。
  • 高吞吐组件继续从 @simon_he/vue-tui/experimental 引入,应用代码应把这些 imports 隔离在少量边界文件内。
  • 自定义 TLogView source 仍应通过 versiongetLineKey(index) 表达内容变化,避免复用 stale line cache。

完整行为变更列表以 CHANGELOG0.1.0-rc.0 为准。

Package Exports

发布前确认:

  • package.jsonfiles 仍只发布 dist
  • root entrypoint 不导出 TVirtualListTLogView、log companion 或 markdown-only 组件。
  • @simon_he/vue-tui/markdown 只承载 markdown parser / renderer API。
  • @simon_he/vue-tui/experimental 承载 TVirtualListTLogView、search/link/minimap companions 和 log plugins。
  • ESM、CJS、types 三套 built export 都通过 test:package-exports 验证。

Validation

快捷入口:

bash
pnpm run release:dry-run
pnpm run release:check
pnpm run release:bench
pnpm run release:smoke
pnpm run release:pack-smoke

release:dry-run 是发布前最后一道本地 gate。它会跑 release:checkrelease:benchrelease:smoke 和 packed package install smoke,确认当前构建可以从 .tgz 安装到外部项目后使用。

展开命令:

bash
pnpm run check:hidden-unicode
pnpm run format:check
pnpm run lint
pnpm run typecheck
pnpm run test
pnpm run test:package-exports
pnpm run release:pack-smoke
pnpm run bench:scroll-mailbox
pnpm run bench:dom-renderer
pnpm run bench:phase2
pnpm run docs:build

示例 smoke:

bash
pnpm run example:tlog-view-lab
pnpm run example:agent-console:smoke
pnpm run example:agent-console:terminal:smoke

真实终端交互验证按需手动跑:

bash
pnpm run run:basic:terminal
pnpm run run:tlog-view-lab
pnpm run example:agent-console:terminal

Release Handoff

  1. 合并目标 feature / fix PR 后,从 main 创建 release candidate 分支。
  2. 确认 Examples Index 中的 browser、terminal、smoke 路径仍能运行。
  3. pnpm run release:dry-run
  4. 如果 docs:build 更新 generated API,提交 generated docs;否则保持工作区干净。
  5. 更新 CHANGELOG.md,把 Unreleased 的内容整理成目标版本。
  6. 只在发布验证完成后运行 pnpm run release

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