Skip to content

📚 docs(roadmap): 规划下一阶段验证与发布收尾 #129

Description

@ZhaoXingPeng

背景与约束

截至 2026-09-10,架构审计与本轮改进已合并到 main:MyBatis 持久化、Flyway/MySQL 迁移与隔离恢复、结构化日志与 Prometheus、固定 PCM 背压基线,以及 WebSocket 会话编排拆分均已有独立 Issue/PR 和验证记录。

本 Issue 是本轮收尾后的路线协调入口,不包含实现提交、不替代设计评审,也不授权直接发布或变更生产环境。开始任一后续工作前,必须建立一个范围单一、可验证的子 Issue,再使用短生命周期分支和独立 PR 完成。

约束:

  • 不将 mock、单机、隔离 MySQL 或单次模型实验外推为生产 SLA、容量、多节点 HA、RTO/RPO 或灾备结论。
  • 禁止提交 API key、token、Cookie、私钥、真实用户音频、会话文本或生产库详情。
  • 不因“主流技术栈”机械增加 MyBatis-Plus、微服务、服务网格或中间件;先写清楚问题、替代方案和可验证收益。

当前边界与问题

优先级 能力线 已有证据 尚未证明或待决问题
P0 发布一致性 main 已通过本地/CI 质量门禁;历史部署、回滚和配置边界已有文档 最新 main 的构建产物、部署版本、健康检查与回滚证据必须在受控发布任务中重新闭环
P1 实时语音 固定合成 PCM 的 5 次受控模拟已输出分位数;浏览器与服务端背压策略有单测 真实 provider、浏览器与授权测试素材下的 5 次端到端分位数、断网/超时和长时稳定性尚未作为同一实验闭环
P1 Java 后端运行 Flyway、MyBatis、outbox、指标与隔离 MySQL 验证已完成 指标抓取、告警阈值、访问边界和故障响应仍需在实际运行环境留存脱敏操作证据
P2 实时架构 WebSocket 适配、协调、租约和 handoff 已拆分且协议回归通过 RealtimeSessionRunner 仍是长生命周期编排类;是否进一步提取段落状态/纠偏/报告边界,要先由单独 Issue 以行为测试驱动
P2 韧性与容量 有界队列、租约、timeout 降级与报告收尾均有单元/隔离证据 无 20 分钟受控 soak、无多节点 RabbitMQ/ES HA、无容量或资源曲线结论

分阶段方案

  1. P0 发布可追溯性:建立发布验证 Issue,绑定一个具体 main commit、不可变构建产物、健康检查、版本回显与已验证回滚步骤;不得以“替换 jar”代替版本和回滚证据。
  2. P1 真实实时验证:建立语音体验实验 Issue,仅使用合成或已授权脱敏 PCM。至少同环境运行 5 次,记录首个 transcript/translation/audio、session_report 的 P50/P95/P99,浏览器 bufferedAmount、服务端 droppedFrames、provider timeout/断网的用户可见结果和不可外推边界。
  3. P1 运行可观测性闭环:建立运维验证 Issue,限定在获授权环境,检查 Prometheus 抓取、actuator 网络暴露、日志脱敏、关键指标阈值和一条故障演练;不得暴露环境地址、凭据或生产数据。
  4. P2 受控韧性与代码演进:分别建立长时 soak 与 runner 内部职责拆分 Issue。前者记录资源和错误曲线;后者先补行为测试,再以可回滚小 PR 移动状态机或纯函数。

每个子 Issue 必须明确范围、非范围、风险、回滚、验收命令和所需授权。P0/P1/P2 不是允许合并成一个“大 PR”的理由。

验收与回滚

本路线 Issue 的完成定义是:

本 Issue 不执行代码或数据回滚。各后续子 Issue 必须为自身的发布与回滚路径负责。

关联

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentation

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions