# PR 草稿：M15 / issue-161 ~ 163 server AI / RAG 基线收口

## Summary

- 同步最新简历内容到当前 RAG 结构化知识源，并补充 `strengths` 语义块
- 拆分 AI Provider 的 `chatModel / embeddingModel` 配置，保持旧 `model` 兼容
- 补强 RAG `status / rebuild` 运行时信息，返回 provider 与索引摘要
- 将 `apps/server/src` 下的 unit spec 统一迁移到对应 `__tests__/` 目录
- 补充 `M15` 相关评估文档、里程碑规划与开发日志

## Why

- 当前最新简历内容已经更新，但 RAG 知识源仍需继续同步关键 AI / 项目信号
- 当前文本生成与向量生成共用一个 `model` 概念，后续 provider 迁移会有隐性耦合
- 当前 RAG 虽然能工作，但状态可见性还不够适合调试、教学和接棒
- server 侧单测目录需要继续收口到 `__tests__/` 规范

## Validation

- `pnpm --filter @my-resume/server test -- src/modules/ai/config/ai-config.spec.ts src/modules/ai/providers/openai-compatible-ai.provider.spec.ts src/modules/ai/providers/mock-ai.provider.spec.ts src/modules/ai/ai.service.spec.ts src/modules/ai/rag/rag-chunk.service.spec.ts src/modules/ai/rag/rag.service.spec.ts`
- `pnpm --filter @my-resume/server test:e2e -- test/ai-rag.e2e-spec.ts`
- `pnpm --filter @my-resume/server test`
- `pnpm --filter @my-resume/server typecheck`

## Issues

- closes #161
- closes #162
- closes #163
