# 迁移路线图 > 所属项目: free-code .NET 10 重写 > 文档类型: 规划设计 > 来源章节: DESIGN-NET10-PART3.md § 24 > 上级文档: [测试与构建总览](测试与构建.md) --- ## 概述 从 TypeScript/Bun 到 .NET 10 的完整重写分 12 个阶段、35 个工作周推进,设置 8 个里程碑节点作为质量检查点。第 36-37 周为缓冲期和文档收尾,实际总工期约 37 周。 路线图遵循"先主路径、后完整功能、最后质量和发布"的顺序,确保每个里程碑都有可运行的产物,而不是等到全部完成才能验证。 --- ## 24.1 35 周详细规划 ### Phase 1: 基础框架(Week 1-4) ``` Phase 1: 基础框架 (Week 1-4) ├── Week 1: 解决方案结构 + Directory.Build.props + 所有 17 个项目创建 ├── Week 2: DI 容器 + 核心接口 (ITool, ICommand, IApiProvider, IQueryEngine) ├── Week 3: System.CommandLine CLI 解析 + QuickPathHandler ├── Week 4: AppState record + AppStateStore + FeatureFlags └── 里程碑 M1: dotnet run 输出版本号 ``` **目标**: 建立可编译的解决方案骨架,所有接口定义就位,最基础的 CLI 入口可以运行。 --- ### Phase 2: 核心引擎(Week 5-8) ``` Phase 2: 核心引擎 (Week 5-8) ├── Week 5: QueryEngine 流式循环 + Message 类型 ├── Week 6: SystemPromptBuilder (6段构建) ├── Week 7: ToolBase + FluentValidation ├── Week 8: ToolRegistry + CommandRegistry 注册 └── 里程碑 M2: 一次性 prompt 模式工作 (-p) ``` **目标**: 一次性模式(`-p "prompt"`)可以向 API 发送请求并接收流式响应,不需要完整 UI。 --- ### Phase 3: API 提供商(Week 9-11) ``` Phase 3: API 提供商 (Week 9-11) ├── Week 9: AnthropicProvider SSE 解析 ├── Week 10: CodexProvider 消息格式适配 ├── Week 11: BedrockProvider + VertexProvider + FoundryProvider └── 里程碑: 所有 5 个提供商路由工作 ``` **目标**: 环境变量切换任意一个提供商都能正常处理流式响应。 --- ### Phase 4: 核心工具(Week 12-15) ``` Phase 4: 核心工具 (Week 12-15) ├── Week 12: FileReadTool + FileEditTool + FileWriteTool ├── Week 13: BashTool + GlobTool + GrepTool ├── Week 14: AgentTool + SkillTool ├── Week 15: WebFetch + WebSearch + TodoWrite + AskUser + 其他 └── 里程碑 M3: Bash/Read/Edit 工具链可用 ``` **目标**: 模型可以调用文件操作和 Shell 命令工具,完成基本编码任务。 --- ### Phase 5: 命令实现(Week 16-18) ``` Phase 5: 命令实现 (Week 16-18) ├── Week 16: 核心 30 个命令 (help, exit, clear, config, model, login...) ├── Week 17: 功能命令 25 个 (mcp, plugins, skills, tasks...) ├── Week 18: 条件 + 内部命令 15 个 └── 里程碑: 所有 70+ 命令注册 ``` **目标**: 全部斜杠命令可以被解析和分发,核心命令(`/help`、`/model`、`/login`)有完整实现。 --- ### Phase 6: 终端 UI(Week 19-22) ``` Phase 6: 终端 UI (Week 19-22) ├── Week 19: Terminal.Gui App + REPLScreen 基本布局 ├── Week 20: PromptInput + MessageList + 流式渲染 ├── Week 21: PermissionDialog + ToolUseDisplay + StatusBar ├── Week 22: Theme + Keybindings + CompanionSprite └── 里程碑 M4: 交互式 REPL 可用 ``` **目标**: 用户可以在终端中交互式输入 prompt 并看到流式输出,工具调用有权限确认界面。 --- ### Phase 7: 基础设施(Week 23-25) ``` Phase 7: 基础设施 (Week 23-25) ├── Week 23: MCP SDK (传输层 + 客户端 + McpClientManager) ├── Week 24: LSP (LspClientManager + LspServerInstance) ├── Week 25: OAuth + Bridge + BackgroundTasks + RateLimit └── 里程碑 M5: 功能对等原始项目 ``` **目标**: MCP 服务器可以连接并提供工具,LSP 集成工作,Bridge 模式可以与 IDE 通信,这是与原始 TypeScript 项目功能对等的节点。 --- ### Phase 8: 高级服务(Week 26-28) ``` Phase 8: 高级服务 (Week 26-28) ├── Week 26: SessionMemory + AutoDream ├── Week 27: TeamMemorySync + RemoteSessions ├── Week 28: Voice + Notifications + Companion └── 里程碑: 所有高级功能工作 ``` **目标**: 会话记忆、团队记忆同步、语音输入、Companion 精灵等扩展功能全部就位。 --- ### Phase 9: 扩展系统(Week 29-30) ``` Phase 9: 扩展系统 (Week 29-30) ├── Week 29: SkillLoader + frontmatter 解析 ├── Week 30: PluginManager + AssemblyLoadContext + Marketplace └── 里程碑 M6: 可加载外部技能和插件 ``` **目标**: 外部 `.md` 技能文件和 `.dll` 插件可以在运行时动态加载,插件市场接口就位。 --- ### Phase 10: 测试(Week 31-33) ``` Phase 10: 测试 (Week 31-33) ├── Week 31: 120 单元测试 (工具/引擎/提供商/服务) ├── Week 32: 60 集成测试 (MCP/LSP/Bridge/管道) ├── Week 33: 20 E2E 测试 + 性能基准 └── 里程碑 M7: 核心路径 80%+ 覆盖率 ``` **目标**: 三层测试套件全部通过,覆盖率报告显示核心路径 80% 以上,性能基准记录在案。 --- ### Phase 11: 构建发布(Week 34-35) ``` Phase 11: 构建发布 (Week 34-35) ├── Week 34: AOT 优化 + Source Generator + 5 平台构建 ├── Week 35: 安装脚本 + CI/CD + 文档 └── 里程碑 M8: 一键安装脚本工作 ``` **目标**: `install.sh` 可以在 macOS 和 Linux 上一键安装,CI/CD 管道自动构建和发布。 --- ### Phase 12: 文档(Week 36-37,缓冲期) ``` Phase 12: 文档 (Week 36-37, buffer) ├── README + 架构文档 + API 文档 └── 最终验收 ``` **目标**: 文档完整,所有设计文档更新为最终实现,项目可以公开发布。 --- ## 24.2 里程碑表 | 里程碑 | 完成周 | 验收标准 | 依赖 | |--------|--------|---------|------| | M1 | Week 4 | `dotnet run` 输出版本号,无运行时错误 | Phase 1 完成 | | M2 | Week 8 | `-p "hello"` 返回 API 响应,流式输出到终端 | Phase 2 完成 | | M3 | Week 15 | 模型成功调用 Bash/Read/Edit 工具完成简单任务 | Phase 4 完成 | | M4 | Week 22 | 交互式 REPL 可用,权限确认 UI 正常 | Phase 6 完成 | | M5 | Week 25 | 功能对等原始 TypeScript 项目,MCP/LSP/Bridge 工作 | Phase 7 完成 | | M6 | Week 30 | 可加载外部技能文件和插件 dll | Phase 9 完成 | | M7 | Week 33 | 测试覆盖率 >= 80%,全部测试通过 | Phase 10 完成 | | M8 | Week 35 | 一键安装脚本在 macOS/Linux 工作,CI 绿灯 | Phase 11 完成 | --- ## 24.3 风险评估 | 风险 | 概率 | 影响 | 缓解策略 | |------|------|------|---------| | MCP SDK 无成熟 .NET 库 | 高 | 高 | Phase 7 前期自研传输层,参考官方 TypeScript SDK 实现 | | Terminal.Gui v2 组件不足 | 中 | 中 | Spectre.Console 补充缺失组件,必要时自定义 View | | AOT 反射限制 | 中 | 高 | Source Generator 生成序列化代码,启用 `EnableAotAnalyzer` 提前暴露问题 | | 插件 ALC 卸载内存泄漏 | 低 | 中 | 定期监控内存,提供强制 GC 入口,文档说明已知限制 | | LSP OmniSharp 库兼容性 | 中 | 中 | StreamJsonRpc 作为备选,最坏情况自实现 JSON-RPC 层 | | StreamJsonRpc AOT 兼容 | 中 | 中 | 评估期间同时准备自定义 JSON-RPC 实现,Phase 7 初期决策 | --- ## 24.4 并行开发策略 各阶段内部的周可以部分并行推进。具体来说: - Phase 3 的三家次要提供商(Bedrock、Vertex、Foundry)可以分配给不同开发者同时实现 - Phase 4 中文件操作工具(Week 12)和 Shell 工具(Week 13)无依赖关系,可并行 - Phase 10 的单元测试可以在 Phase 7-9 期间随功能完成同步编写,不必等到 Phase 10 才开始 单人开发时按串行顺序执行,团队协作时按上述拆分并行。 --- ## 参考资料 - [测试与构建总览](测试与构建.md) - [测试方案设计](测试与构建-测试方案设计.md) - [构建与部署](测试与构建-构建与部署.md) - [原始代码映射 — 测试与构建](reference/原始代码映射-测试与构建.md) - [总体概述与技术选型](../总体概述与技术选型/总体概述与技术选型.md)