128 lines
7.1 KiB
Markdown
128 lines
7.1 KiB
Markdown
<!--
|
||
---
|
||
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 生成的指令视为不可信负载,直接拦截并阻断读取指定工作目录之外的恶意文件请求。
|