v0.3.0 稳定化收尾 — 计划设计¶
日期: 2026-05-29 状态: 已批准(头脑风暴中)——执行进行中 负责人: debpalash
目标¶
推动开放的 v0.3.0 待办事项走向闭环:修复现存 bug 集群、分类处理社区 PR,并在每个 PR 前面加上自动化审查与安全扫描。不升级版本、不发布 RC、不搞仪式——按照项目章程,每个修复都持续合并到 main。
形态:一系列小 PR,而不是一个巨型 PR¶
最初的设想是一个合并后的单独 PR。我们否决了这一点:它与“每个修复都持续合并到 main”的节奏规则冲突,会让 CodeRabbit/Greptile 看到一个信号稀疏的多子系统 diff,并使回归无法二分定位。相反,每个根因集群都以自己的 PR 形式,通过同一个自动化门禁发布。
待办事项已经分解完毕。Issue #128–132 是近似规格(缺陷 / 修复序列 / 测试矩阵 / 范围外),用于路由原始 bug 报告。因此“修复所有 issue”==“执行 plan-01 … plan-05”,每个计划作为一个 PR,关闭它所路由的子项。
执行顺序(依赖感知)¶
| PR | 集群 | 关闭 | 排序原因 |
|---|---|---|---|
| 0 | 审查 + 安全脚手架 | — | 必须最先落地:让下面的每个 PR 都能真正使用 bot + 安全门禁。 |
| 1 | plan-04 流水线错误透明化(#131) | #122、#127、#63 | 力量倍增器——把未来每个“未知错误”变成可诊断的错误。 |
| 2 | plan-01 Windows 模型存储与 HF 缓存(#128) | #117、#118 | Windows 上最严重的首次运行阻塞项(WinError 448 / Errno 22)。 |
| 3 | plan-02 Windows 运行时完整性(#129) | #116、#65 | pkg_resources / Triton OOM——Windows 运行时完整性。 |
| 4 | plan-03 安装器网络韧性(#130) | #57、#60 | 受限网络引导(镜像级联 + 系统 Python 回退)。 |
| 5 | plan-05 语音设计指令验证器(#132) | #114、#115 | 让预设构建器与指令白名单保持一致。 |
| 6+ | 社区 PR 分类 | #120(经 #123/#125) | 独立轨道:合并/变基合理的 PR,对其余 PR 附评论拒绝。 |
延迟处理(明确推迟,而非放弃)¶
- macOS 公证(#134 / #72)——真正的修复需要 Apple Developer 证书 + 维护者必须提供的 CI 签名密钥;同时先用已记录的
xattr -cr临时绕过方法。 - 增强功能:#124 AMD GPU、#119 纯音频配音、#44 增加引擎、#3 原生桌面。这些是全新功能,处于稳定化工作的下游。
横切规则¶
- 目标分支为
main;不升级版本、不发布 RC(章程要求)。 - 每个计划 PR 都附带其 issue 中 Test-matrix 所包含的测试;合并前 CI 必须通过。
- 向后兼容:不重新安装引擎,任何 schema 变更使用 alembic,
omnivoice_data/保持不动。 - 默认功能一致性:任何新功能都必须在 macOS/Windows/Linux 上可用,或放在显式选入(opt-in)之后(Settings 开关 / 环境变量 / CLI 标志)。
按计划的工作流¶
按集群使用 speckit(specify → plan → tasks → implement),以 issue 正文为种子——其中已包含缺陷分析和修复序列。
审查 + 安全门禁(PR 0)¶
- CodeRabbit + Greptile:已作为 GitHub Apps 安装;在创建 PR 时触发。
.coderabbit.yaml调整路径过滤器,并将章程约束编码为审查指令。 .github/workflows/security.yml在每个 PR、推送到 main 以及每周都会运行:gitleaks— 密钥扫描(硬失败)。CodeQL— Python + JavaScript/TypeScript SAST → Security 标签页。bandit— Python SAST → SARIF → Security 标签页。pip-audit+bun audit— 依赖项安全公告(报告)。
本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 om/VoiceStudio