finalize
This commit is contained in:
@@ -1120,3 +1120,66 @@ test/*.test.mjs 37 个文件 / 302 个用例,299 通过,3 跳
|
||||
- **发现降级**:删掉 `endpoints/` 后仍能通过 `instances/` 找到实例。
|
||||
- **崩溃剪枝**:插入一个 PID 必死的实例,剪枝后另一个实例仍正常工作;
|
||||
清理本窗口实例不影响其他窗口。
|
||||
|
||||
---
|
||||
|
||||
## 20. P0 修复(2026-09-10)
|
||||
|
||||
三期测试暴露 / 评审发现的问题,以下四项已修复:
|
||||
|
||||
| # | 问题 | 修复 |
|
||||
|---|---|---|
|
||||
| 1 | `test/agentSkill.test.mjs` 与 `SKILL.md` 措辞不一致(`new session` / `Never fabricate index results` 在源码中丢失),干净重建后测试失败 | 恢复两条护栏;测试同步断言 |
|
||||
| 2 | Skill 里的 `CnC3Types.xsd` 说法错误:它是 RA3 Mod SDK 也携带的 SAGE 基础 schema(`sdk.ts` 的 SDK 根标记就是它),原句会让 agent 误判真实 RA3 项目 | 删除该句,改为通用否定规则(SAGE-looking XML / 复制的 `.xsd` / `Data` 目录本身都不构成证据) |
|
||||
| 3 | 关闭一个 VS Code 窗口会无条件 `clearEndpoint()` + `writeManifest([])`,抹掉其他仍在服务窗口的 `endpoint.json` / `index.json` | 新增 `refreshDiscovery()`:从幸存 instance 文件重新推导两者;`stopAgentLocalServer` 改用它;新增回归测试 |
|
||||
| 4 | `npm run build` 不清理 `dist/`,0.1.26 VSIX 同时带着旧布局的 `dist/mcpServer.js` / `dist/cli.js` | `esbuild.mjs` 构建前 `rm -rf dist` |
|
||||
|
||||
同时:
|
||||
|
||||
- `SKILL.md` 修正被合并的 `find_define` 列表项与 `the your own harness'` 笔误;
|
||||
从 `SKILL.md` 链接 `references/query-guide.md`(skills 客户端只按需加载被引用的
|
||||
资源,之前该文件永远不会被读取);CLI 段落补充“它是 Node 脚本、没有 Node 时用
|
||||
launcher 里的 Electron 运行时”的说明。
|
||||
- `CHANGELOG.md` 补上 0.1.26 条目。
|
||||
- 全量测试:310 通过 / 0 失败 / 3 跳过(跳过项仍是沙箱禁止 spawn 的三条)。
|
||||
|
||||
## 21. P1 第一批:安装 / 卸载 / 禁用(2026-09-10)
|
||||
|
||||
针对“安装与卸载要简单”“升级后要能自动同步”两项:
|
||||
|
||||
| 内容 | 实现 |
|
||||
|---|---|
|
||||
| 安装不再依赖索引 | `ra3modxml.installAgentSkill` 改为只读取 `ws.projectRoot`(可为空),无项目时仍可装到用户级目录 |
|
||||
| 安装位置更灵活 | 默认 `~/.agents/skills`、Claude Code、项目级 `.agents/skills` / `.claude/skills`、以及自定义文件夹(`<folder>/ra3-mod-xml`) |
|
||||
| 安全卸载 | 新增 `readSkillMarker` / `installedSkillStatus` / `uninstallRecordedSkills` / `forgetSkillInstallRecords`:只删除带 marker 且路径匹配的目录,用户替换过的目录跳过并报告 |
|
||||
| 禁用实时访问 | 新增 `ra3modxml.disableAgentAccess`:停服务器、清本窗口 instance/endpoint、从幸存实例重建发现文件,保留 skill 与 MCP 配置 |
|
||||
| 完整卸载向导 | 新增 `ra3modxml.uninstallAgentIntegration`:可勾选停止实时访问 / 移除 Skill / 移除 MCP 配置 / 删除 launcher,确认后才执行 |
|
||||
| MCP 配置可回滚 | 新增 `mcp-install.json` 记录(`installMcpServerConfigToFile`)、`removeMcpServerFromConfigFile`(同时兼容 `mcpServers` 与 VS Code 的 `servers`,空容器自动删除)、`uninstallMcpServerConfigs`(记录 + 常规客户端路径)、`removeLauncher` |
|
||||
| 升级自动同步 | 激活时对比 `skill-install.json` 中的版本,有差异才调用 `syncInstalledSkills` 重写;无 marker 的目录不改写 |
|
||||
| 本地化 | 新增 55 条 AI Agent 相关字符串到 `l10n/bundle.l10n.json` 与 `zh-cn`(共 210 条/语言),命令标题加入 `package.nls.*` |
|
||||
|
||||
测试:`agentSetup.test.mjs` 6 项、`agentSkill.test.mjs` 7 项(含 marker 防误删、
|
||||
MCP 配置保留其他 server、空容器清理、记录回滚)。
|
||||
|
||||
## 22. P1 第二批:首装 / 升级提示(2026-09-10)
|
||||
|
||||
- 新增纯逻辑模块 `src/agent/onboarding.ts`(可单测):
|
||||
- `AGENT_FEATURE_VERSION = "0.1.26"`;
|
||||
- `shouldOfferAgentOnboarding(state, currentVersion)`:
|
||||
首次安装提示一次;从早于 0.1.26 的版本升级提示一次;
|
||||
已在带此功能的版本提示过则保持静默;`dismissed` 永久抑制;
|
||||
- `compareVersions` 处理 `"0.1" < "0.1.26"`、`"0.1.26-beta" == "0.1.26"`。
|
||||
- `extension.ts` 在**第一次索引完成后**(`ws.onIndexUpdate`)弹一次信息提示,
|
||||
按钮为 `Enable AI Agent access…` / `Learn more` / `Don't show again`;
|
||||
无论用户选择还是忽略,都会把 `informedVersion` 写入 `globalState`,不会重复打扰。
|
||||
- 新增 4 条本地化字符串(两种语言各 214 条)。
|
||||
- `test/onboarding.test.mjs`:5 个用例覆盖上述规则。
|
||||
|
||||
### 仍未处理(下一批)
|
||||
|
||||
- VS Code 原生 `chatSkills` / `mcpServerDefinitionProviders` 接入(免 launcher /
|
||||
免手写配置)。
|
||||
- Claude/Cursor 路径收敛为数据驱动预设 + `configure --harness`;
|
||||
稳定 CLI launcher(免 Node 路径发现)。
|
||||
- `mcpServer.ts` 的 `serverInfo.version` 仍硬编码 `0.1.0`;
|
||||
`startAgentLocalServer` 仍有并发启动竞态。
|
||||
|
||||
Reference in New Issue
Block a user