Skip to content

Commit e722e85

Browse files
committed
test: add application layer unit tests (134 tests) and sync architecture docs
Add comprehensive unit tests for all 11 application/memory executor files covering record, read, find, manage, and format operations. Update harness-engineering.md module map to reflect the three-layer architecture. Mark Phase 7 complete in exposure-mode-separation plan.
1 parent 1b57072 commit e722e85

13 files changed

Lines changed: 4274 additions & 6 deletions

docs/architecture/harness-engineering.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,14 +62,16 @@ ContextAtlas 通过 CLI 和 MCP 协议暴露能力,上层 agent 在需要上
6262

6363
| 模块 | 职责 | 关键实现 |
6464
|------|------|---------|
65+
| `application/` | 业务逻辑层 | CLI 和 MCP adapter 统一入口,承载查询编排、结果整形、写入策略 |
6566
| `scanner/` | 文件发现与变更检测 | crawler 遍历 + hash 增量 + filter 排除 |
6667
| `chunking/` | 语义分片 | Tree-sitter AST 分片 + ParserPool 并行 |
6768
| `indexer/` | 向量索引编排 | chunking → embedding → LanceDB 写入,含自愈和单调版本 |
6869
| `search/` | 混合检索 | 向量召回 + FTS 精确召回 + RRF 融合 + rerank + 图扩展 |
6970
| `memory/` | 项目记忆系统 | 功能记忆 + 决策记录 + 长期记忆 + 跨项目 Hub + catalog 路由 |
7071
| `indexing/` | 异步索引队列 | SQLite 任务队列 + daemon 消费 + 快照原子切换 |
7172
| `storage/` | 存储布局 | 快照版本管理 + prepare/commit/prune |
72-
| `mcp/` | MCP 协议层 | 21 个 MCP 工具,涵盖检索、记忆、索引策略 |
73+
| `mcp/` | MCP 协议层 | thin adapter(Zod schema + 委托调用),业务逻辑在 application 层 |
74+
| `cli/` | CLI 命令层 | 参数解析 + 输出格式化,直接调用 application 层 |
7375
| `monitoring/` | 系统健康 | 索引健康 + 记忆健康 + 检索监控 + 告警引擎 |
7476
| `usage/` | 使用追踪 | 工具调用 + 索引事件记录 + 索引优化分析 |
7577
| `api/` | 外部 API 封装 | Embedding 批量调用 + Rerank 排序 + Unicode 规范化 |

docs/plans/exposure-mode-separation-plan.md

Lines changed: 32 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -407,15 +407,42 @@ setup 文件集合拆分后,旧用户本地环境可能遗留多余配置。
407407
- 通过 mode 控制而不是全局删除
408408
-`mcp` 模式保留现有行为
409409

410+
### Phase 7 - Memory 工具业务逻辑下沉 ✅ 已完成(2026-04-14)
411+
412+
完成说明:全部 11 个 Memory MCP 工具的业务逻辑提取到 `src/application/memory/` 层。MCP adapter 保留为 thin adapter(Zod schema + 委托调用)。CLI 命令直接调用 application 层。同时修复全量 TypeScript 编译错误(31→0)。
413+
414+
新增文件:
415+
416+
- `src/application/memory/executeAgentDiary.ts`
417+
- `src/application/memory/executeAssembleContext.ts`
418+
- `src/application/memory/executeAutoRecord.ts`
419+
- `src/application/memory/executeCheckpoints.ts`
420+
- `src/application/memory/executeFeedbackLoop.ts`
421+
- `src/application/memory/executeLongTermMemory.ts`
422+
- `src/application/memory/executeMemoryHub.ts`
423+
- `src/application/memory/executeModuleMemory.ts`
424+
- `src/application/memory/executePrepareHandoff.ts`
425+
- `src/application/memory/executeProjectMemory.ts`
426+
- `src/application/memory/executeSuggestPhaseBoundary.ts`
427+
- `src/application/memory/memoryTypes.ts`
428+
429+
验收:
430+
431+
- ✅ CLI 不再 import `src/mcp/tools/*` 中的 memory 工具 handler
432+
- ✅ MCP tools 仅保留 Zod schema + thin delegation
433+
- ✅ 全量 TypeScript 编译 0 错误
434+
- ✅ 架构文档已同步
435+
410436
## 完成定义
411437

412438
当满足以下条件时,可认为本重构完成:
413439

414-
- CLI 与 MCP 共享 application/use case,而不是互相依赖
415-
- 用户可明确选择 `cli-skill``mcp`
416-
- setup、skill、prompt、运行时行为与所选模式一致
417-
- 文档与测试不再把混搭路径当作默认方案
418-
- 兼容层被限制在可删除的过渡边界内
440+
- ✅ CLI 与 MCP 共享 application/use case,而不是互相依赖
441+
- ✅ 用户可明确选择 `cli-skill``mcp`
442+
- ✅ setup、skill、prompt、运行时行为与所选模式一致
443+
- ✅ 文档与测试不再把混搭路径当作默认方案
444+
- ✅ 兼容层被限制在可删除的过渡边界内
445+
- ✅ Memory 工具业务逻辑下沉到 application 层,MCP adapter 为 thin adapter
419446

420447
## 推荐执行顺序
421448

0 commit comments

Comments
 (0)