5.7 KiB
5.7 KiB
Project Memory
项目记忆 · 随项目成长持续更新 · AI 和开发者共享的上下文 最后更新:2026-05-26
一、项目当前状态
1.1 进度
| 阶段 | 状态 | 说明 |
|---|---|---|
| Phase 0:架构奠基 | ✅ 已完成 | Monorepo 搭建 + Core Library 架构 |
| Phase 1:MVP | ✅ 已完成 | LLM Agent 引擎 + 有道 API + 最小离线词库 + 翻译调度器 + 单词本 |
| Phase 2:进阶功能 | ✅ 已完成 | Hover Provider + Webview单词本 + 百度引擎 + 有道/百度配置项 |
| Phase 3:AI Agent | ✅ 已完成 | SM-2 复习算法 + 复习面板 + 导出 Anki/CSV + Qwen LLM 适配 |
| Phase 4:打磨发布 | ✅ 已完成 | 离线词库补全 + 迭代记录补全 + 自动记录机制 + VSIX 打包配置 |
| Phase 5:F5 测试 | ✅ 已完成 | 6 轮调试修复,LLM/百度/离线全链路通过,例句中英对照 |
| v0.2:全场景+可配置 | ✅ 已完成 | P2-1~P2-5 全部完成:剪贴板/终端/上下文/Settings/场景回顾 |
| v0.3:多语言 | ⬜ 远期 | 英→俄/日/韩 + 社区词库 |
| v1.0:正式发布 | ⬜ 远期 | 离线词库5000词 + 性能优化 + Marketplace |
1.2 关键决策记录
| 日期 | 决策 | 理由 |
|---|---|---|
| 2026-05-26 | 采用 VS Code Extension 作为第一平台 | 用户基数最大,API 最完善 |
| 2026-05-26 | 采用 Monorepo 架构(core + adapters) | 支持多平台拓展,core 只写一次 |
| 2026-05-26 | ❌ 废弃离线词典方案 → 混合翻译引擎 | LLM Agent(主) + 百度API(降级) + 离线词库(兜底) |
| 2026-05-26 | LLM 采用 Qwen3.6-int4-AWQ(自建端点) | 免费、中文友好、thinking mode 可关闭 |
| 2026-05-26 | Extension Host http:// fetch 失败 → Node.js http 模块回退 | VS Code 扩展中 DOM fetch 拒绝 http:// 连接 |
| 2026-05-26 | Qwen thinking mode → extractJSON 平衡括号 + enable_thinking:false | 贪婪正则匹配到思考过程中 { 导致解析失败 |
| 2026-05-26 | secrets.json 优先级修复 | VS Code 默认值 'gpt-4o-mini' 覆盖了 secrets 的 'qwen3.6' |
| 2026-05-26 | v0.1.0 定档 | Qwen LLM + 百度 API + 离线词库全链路验证通过,例句中英对照 |
1.3 当前阻塞
| 阻塞项 | 影响 | 解决方案 |
|---|---|---|
| 无 | - | - |
二、技术备忘
2.1 VS Code Extension 关键 API
// 激活入口
export function activate(context: vscode.ExtensionContext) {}
export function deactivate() {}
// 常用 API
vscode.window.activeTextEditor // 当前编辑器
vscode.window.onDidChangeTextEditorSelection // 选择变化
vscode.commands.registerCommand() // 注册命令
vscode.window.showInformationMessage() // 通知
vscode.languages.registerHoverProvider() // Hover
vscode.window.createWebviewPanel() // Webview
vscode.workspace.fs // 文件系统
context.globalState // 持久化状态
context.secrets // 安全存储
2.2 数据目录约定
~/.vibecoding-english/
├── wordbook.json # 单词本主数据
├── wordbook.backup.json # 自动备份
├── config.json # 跨平台配置(非 VS Code settings)
├── cache/
│ ├── translate-cache.json
│ └── llm-cache.json
├── dict/
│ └── ecdict.sqlite # ECDICT 离线词典
└── logs/
└── vibecoding-english.log
2.3 错误码约定
1xxx: 配置错误
2xxx: 词典错误
3xxx: LLM 错误
4xxx: 存储错误
9xxx: 未知错误
三、领域知识
3.1 为什么选择 ECDICT
- 词条数 770 万(含词组和短语)
- SQLite 格式,适合嵌入
- 包含柯林斯 5 星分级、BNC/COCA 词频
- 开源,可自由分发
- 可按词频裁剪至前 10 万词(~20MB)
3.2 SM-2 间隔复习算法
初始复习间隔: 1天 → 6天
评分: Again(0) / Hard(2) / Good(3) / Easy(5)
计算新间隔:
- quality ≥ 3: 间隔 * ease
- quality < 3: 间隔重置为初始值
Ease 因子调整:
- quality ≥ 3: ease += (0.1 - (5-quality) * (0.08 + (5-quality) * 0.02))
- quality < 3: ease -= 0.2
约束: ease ∈ [1.3, ∞), 间隔 ∈ [1, 365]
3.3 翻译降级链路
技术词库 → Cache → 离线词典 → 在线词典 → LLM → 降级提示
技术词库最高优先级(领域准确),Cache 次之(性能),之后依次降级。
四、AI 协作经验
4.1 与 AI 工具协作的有效模式
- 明确上下文:每次对话开始前,告知 AI 当前项目阶段和具体模块
- 逐步验证:AI 生成的代码,先跑测试再合并
- 保留关键决策:AI 讨论中的关键决策,记录到本文档
- Prompt 复用:好的 Prompt 保存到
skills/目录
4.2 已知的 AI 局限
- AI 生成的 VS Code Extension 代码可能 API 版本不对,需要对照官方文档
- AI 对 SM-2 算法细节可能实现错误,需要与标准测试向量对比
- Webview 通信模式(postMessage)容易出现类型不匹配
五、待办与未来规划
5.1 待研究
- VS Code Chat Participant API (VS Code 1.86+)
- Electron Companion App 可行性验证
- 离线词典在 Windows/macOS/Linux 上的兼容性
- 单词本数据迁移方案(v0 → v1)
- Anki CSV 导出格式兼容性
5.2 未来功能
- JetBrains 插件
- 浏览器扩展(GitHub Copilot Chat)
- 团队单词本(共享技术词汇表)
- AI 生成个性化学习计划
更新规则:每次重要决策、技术发现、AI 协作经验都需更新本文件。 读取规则:每次新对话开始时,AI 应读取本文件获取上下文。