<!--
---
title: Project Caffeine Changelog (更新日志)
description: 记录 Project Caffeine 项目的所有显著更改、版本迭代与发布历史，遵循 Keep a Changelog 与语义化版本规范。
type: Changelog
version: v0.0.3 (Arabica) - Sprint 3
file: CHANGELOG.md
author: Gitconomy Research-郭晧
date: 2026-03-11
tags:
  - Project Caffeine
  - Changelog
  - Release Notes
  - Version Control
license: CC BY-SA 4.0
status: Active
---
-->
# Changelog (更新日志)

本项目的所有显著更改都将记录在此文件中。

本项目遵循 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.1.0/) 规范，并且项目版本号采用 [Semantic Versioning (语义化版本)](https://semver.org/lang/zh-CN/)。

---

## [0.0.3] - 2026-03-10

### Added (新增)

- **意图驱动路由引擎**：全面重构系统提示词，确立四大核心意图映射（文献查询、框架分析、保存内容、本地笔记分析），使大模型能够根据自然语言智能调度专属工具。
- **学术文献检索接入**：新增 `search_arxiv` 原子工具与 `arxivService.ts`，支持基于提取的核心关键字调用 Arxiv API，实时获取学术论文并结构化输出。
- **结果落盘持久化**：优化 `save_note` 工具，允许大模型在获取用户明确授权后，将生成的长篇分析报告或检索结果一键保存为本地 Markdown 文件。
- **内部模板获取工具**：新增 `fetch_framework_template` 后台工具，专供大模型内部读取 SWOT、SCQA 等 JSON 框架配置，不再向客户端 UI 暴露。

### Changed (变更)

- **系统架构降维升级**：系统架构从“UI 按钮/提示词驱动（Prompt-driven）”彻底转向“自然语言/工具驱动（Tool-driven）”。
- **参数宽容度放宽 (Parameter Tolerance)**：将 `save_note` 等工具的核心负载参数类型校验由严格的 `z.string()` 放宽至 `z.any()`，并在底层 `toolsController.ts` 中引入自动序列化机制（`JSON.stringify`），以承接大模型输出的畸形对象。

### Deprecated (废弃)

- **MCP Prompts 原语暴露**：废弃了向客户端 UI 直接暴露的 `prompts/list` 和 `prompts/get` 接口，改由大模型在后台自主调用工具获取模板。

### Removed (移除)

- 移除了 Sprint 2 时期遗留的 5 个硬编码 `server.prompt` 注册代码。

### Fixed (修复)

- **大模型 JSON 转义崩溃**：彻底修复了因大模型未能正确转义超长 Markdown 文本和嵌套引号，导致底层触发 `AI_JSONParseError` 并中断工具调用的核心故障。
- **无限循环调用死锁 (Infinite Tool Call Loop)**：修复了大模型在读取原始 JSON 框架文件后由于“困惑”而导致的工具循环调用崩溃；通过在 `toolsController.ts` 中剥离 JSON 外壳，并向大模型强制注入“🛑立即停止调用任何工具”的底层防呆指令解决。
- **TypeScript 强类型推断错误**：修复了 MCP SDK 中因 `type` 字段推断为泛用 `string` 而引发的编译报错，通过显式声明 `type: "text" as const` 解决。

### Security (安全)

- **强指令防越权写入**：在系统提示词与底层逻辑中双重加固防线，设定【绝对红线】，严禁大模型在未经主动提问并获取用户明确（如“是”、“保存”）授权前，私自调用 `save_note` 执行写盘操作。

---



## [0.0.2] - 2026-03-06

### Added (新增)

- **接入 MCP Prompts 原语**：新增 `prompts/list` 和 `prompts/get` 接口，向大模型暴露静态思维框架模板，支持降低前置上下文长度。
- **多维静态思维框架库**：在 `src/models/frameworks/` 目录下新增 `5W3H`、`SCQA`、`SWOT`、`PESTLE` 等基于 JSON 格式的静态思维框架模板。
- **新增意图拆解工具**：开发 `generate_search_queries` 工具，支持将用户模糊的自然语言查询自动拆解为 3-5 个专业检索词，为后续文献检索提供广度解析。
- **输入参数严格校验**：在 `schemas.ts` 中基于 Zod 新增针对 `generate_search_queries` 工具及 Prompts 原语的强类型参数校验规则。
- **底层角色矩阵与输出规范**：建立多智能体角色矩阵 (Persona Matrix) 雏形，通过系统消息 (System Prompt) 及 Few-Shot 示例，**强制约束大模型输出标准的 Markdown 格式报告**。
- **测试与质量保障体系**：制定《Project Caffeine 项目测试规范指南》与《MCP Inspector 使用说明文档》，确立包含单元测试、协议集成、负载性能与安全审计的四级自动化测试体系。

### Changed (变更)

- **重构提示词服务**：将 `promptService.ts` 升级为多框架管理器，支持从本地静态 JSON 文件中动态加载思维框架库。
- **扩展工具控制器**：更新 `toolsController.ts`，新增对意图拆解服务的路由分发能力。
- **优化构建脚本**：在 `package.json` 的 `build` 脚本中引入跨平台构建工具 `copyfiles`，以确保在执行 `tsc` 编译时，静态 JSON 文件能够自动同步至 `dist/models/frameworks/` 目录 _(依据历史对话)_。

### Deprecated (废弃)

_(无)_

### Removed (移除)

_(无)_

### Fixed (修复)

- **静态资源编译丢失问题**：修复了因 TypeScript 原生编译器 (`tsc`) 不拷贝非 `.ts` 文件，导致运行时大模型发起 `prompts/get` 请求时抛出 `MCP error -32603: 获取框架失败` 的问题 _(依据历史对话)_。

### Security (安全)

- **非法参数防注入**：通过引入 Zod 模型层校验，在服务端自动拦截因客户端大模型未正确生成必填参数（如 SCQA 框架缺失 `situation` 字段）而导致的无效负载，并标准抛出 `JSON-RPC -32602` 错误机制。

---

## [0.0.1] - 2026-03-03

### Added (新增)

- **初始化本地基础设施**：基于 Node.js (v18+) 和 TypeScript 搭建底层架构，配置主入口 `src/app.ts` 实例化官方 MCP SDK。
- **零网络开销通信**：实现基于 `stdio` (标准输入输出) 传输层的本地环境工作流，支持 Cherry Studio 无缝挂载。
- **单点提示词策略引擎**：开发纯本地业务逻辑 `promptService.ts`，向客户端注册 `generate_5_whys` 工具，支持将查询主题拆解为 5 Whys 多层追问。
- **本地知识库集成**：内置数据适配器，暴露 `list_local_notes` 和 `read_local_note` 两个核心工具，支持大模型直接读取本地 Obsidian (.md) 文件夹内容。
- **知识库资源暴露**：新增被动资源读取协议 `obsidian-index` (`obsidian://vault/index`)，向客户端暴露本地知识库的完整目录结构。
- **源码级联调环境**：配置 `tsconfig.json` 生成 `sourceMap`，并在 `.vscode/launch.json` 中配置 `--inspect=9229` 端口映射，**实现基于底层 Node 进程的断点与日志监控**。

### Changed (变更)

_(无)_

### Deprecated (废弃)

_(无)_

### Removed (移除)

_(无)_

### Fixed (修复)

_(无)_

### Security (安全)

- **沙箱隔离与越权防御**：在 `read_local_note` 本地资源服务中实现**严格的路径防穿越（Path Traversal）安全校验**，将 AI 生成的指令视为不可信负载，直接拦截并阻断读取指定工作目录之外的恶意文件请求。
