@zzp123/mcp-zentao 1.4.2 → 1.4.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +317 -0
- package/README.md +3 -3
- package/package.json +2 -1
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,317 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
## [1.4.3] - 2025-11-05
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
- 将 `CHANGELOG.md` 添加到 npm 包发布文件列表中
|
|
12
|
+
- 确保用户可以在安装包后查看完整的版本历史
|
|
13
|
+
|
|
14
|
+
## [1.4.2] - 2025-11-05
|
|
15
|
+
|
|
16
|
+
### Added
|
|
17
|
+
- 创建 `CHANGELOG.md` - 完整的版本更新历史文档
|
|
18
|
+
- 在 README.md 中添加版本历史章节和最新版本信息
|
|
19
|
+
- 添加 npm 版本徽章和 MIT 许可证徽章
|
|
20
|
+
|
|
21
|
+
### Changed
|
|
22
|
+
- 更新 README.md 中的包名从 `@bigtian/mcp-zentao` 到 `@zzp123/mcp-zentao`
|
|
23
|
+
- 更新 API 文档示例代码,使用最新的接口签名
|
|
24
|
+
- 添加版本标记到 API 方法说明(如 v1.4.0+, v1.2.0+)
|
|
25
|
+
- 完善类型定义文档,添加 `ResolveBugRequest`、`UploadFileRequest`、`FileUploadResponse` 等新接口
|
|
26
|
+
|
|
27
|
+
### Documentation
|
|
28
|
+
- 整理所有版本的更新内容到 CHANGELOG
|
|
29
|
+
- 记录从 v1.0.x 到 v1.4.2 的完整演进历史
|
|
30
|
+
- 提供清晰的版本规范说明
|
|
31
|
+
|
|
32
|
+
## [1.4.1] - 2025-11-05
|
|
33
|
+
|
|
34
|
+
### Fixed
|
|
35
|
+
- 修复 `uploadImageFromClipboard` 工具上传成功后没有返回内容的问题,该问题导致 AI 一直等待响应而卡住
|
|
36
|
+
- 改进返回数据结构,现在包含 `success` 标志位、文件大小、文件名等详细信息
|
|
37
|
+
- 增强错误处理,为每个平台(Windows/macOS/Linux)提供专门的错误处理和清晰的错误提示
|
|
38
|
+
- 添加完整的执行日志,方便调试和问题排查
|
|
39
|
+
|
|
40
|
+
### Changed
|
|
41
|
+
- 优化返回格式,统一成功和失败响应的数据结构
|
|
42
|
+
- 改进错误信息,包含堆栈跟踪和解决建议
|
|
43
|
+
|
|
44
|
+
## [1.4.0] - 2025-11-05
|
|
45
|
+
|
|
46
|
+
### Added
|
|
47
|
+
- **新增解决Bug接口** `resolveBug` - 根据最新的禅道API文档添加
|
|
48
|
+
- 接口路径:`POST /bugs/:id/resolve`
|
|
49
|
+
- 支持7种解决方案:fixed(已解决)、bydesign(设计如此)、duplicate(重复Bug)、external(外部原因)、notrepro(无法重现)、postponed(延期处理)、willnotfix(不予解决)
|
|
50
|
+
- 自动验证必填字段:fixed 需要 resolvedBuild,duplicate 需要 duplicateBug
|
|
51
|
+
- 支持备注和指派功能
|
|
52
|
+
- 新增 `ResolutionType` 类型定义
|
|
53
|
+
- 新增 `ResolveBugRequest` 接口定义
|
|
54
|
+
|
|
55
|
+
### Technical
|
|
56
|
+
- 在 `zentaoApi.ts` 中实现 `resolveBug()` 方法,包含参数验证逻辑
|
|
57
|
+
- 在 `index.ts` 中注册 `resolveBug` MCP 工具
|
|
58
|
+
- 完善类型系统,确保类型安全
|
|
59
|
+
|
|
60
|
+
## [1.3.2] - 2025-11-05
|
|
61
|
+
|
|
62
|
+
### Removed
|
|
63
|
+
- 移除 `resolveBug` API 方法(之前的实现与文档不符)
|
|
64
|
+
- 移除 `resolveBug` MCP 工具注册
|
|
65
|
+
- 移除 `BugResolution` 接口类型定义
|
|
66
|
+
|
|
67
|
+
### Reason
|
|
68
|
+
- 禅道REST API文档中的修改Bug接口(`PUT /bugs/:id`)不支持修改Bug状态
|
|
69
|
+
- 该接口只支持修改基本信息(标题、优先级、严重程度等),不能修改 status、resolution、resolvedBuild 等字段
|
|
70
|
+
- 这些字段只在返回数据中存在,不能作为请求参数
|
|
71
|
+
|
|
72
|
+
### Note
|
|
73
|
+
- 此版本移除的功能在 v1.4.0 中以正确的实现方式重新添加
|
|
74
|
+
|
|
75
|
+
## [1.3.1] - 2025-11-05
|
|
76
|
+
|
|
77
|
+
### Fixed
|
|
78
|
+
- **修复 Claude Code 中剪贴板图片无法上传的核心问题**
|
|
79
|
+
- 修改 `uploadImageFromClipboard` 工具,使其主动读取系统剪贴板,而不是期望 Claude Code 提供 base64Data
|
|
80
|
+
|
|
81
|
+
### Changed
|
|
82
|
+
- 工具现在直接使用操作系统原生方法读取剪贴板:
|
|
83
|
+
- Windows: PowerShell 的 `System.Windows.Forms.Clipboard`
|
|
84
|
+
- macOS: `pngpaste` 命令
|
|
85
|
+
- Linux: `xclip` 命令
|
|
86
|
+
- 移除 `base64Data` 必填参数,改为可选的 `filename` 和 `uid`
|
|
87
|
+
|
|
88
|
+
### Technical Details
|
|
89
|
+
- **问题根源**:Claude Code 输入框中粘贴的图片会上传到 Claude 服务器用于视觉分析,MCP 工具运行在本地只能访问系统剪贴板,这是两个完全独立的数据源
|
|
90
|
+
- **解决方案**:工具直接读取系统剪贴板,不依赖 Claude Code 传递图片数据
|
|
91
|
+
|
|
92
|
+
### Documentation
|
|
93
|
+
- 创建 `为什么读取不到剪贴板图片.md` - 详细解释技术原理
|
|
94
|
+
- 创建 `Claude-Code图片上传指南.md` - 提供正确的使用方法
|
|
95
|
+
- 创建 `scripts/get-clipboard-base64.js` - 辅助脚本
|
|
96
|
+
|
|
97
|
+
## [1.3.0] - 2025-11-05
|
|
98
|
+
|
|
99
|
+
### Added
|
|
100
|
+
- **命令行脚本支持** - 添加跨平台的剪贴板图片上传脚本
|
|
101
|
+
- `scripts/upload-clipboard-image.js` - Node.js 实现(跨平台)
|
|
102
|
+
- `scripts/upload-clipboard-image.ps1` - PowerShell 脚本(Windows)
|
|
103
|
+
- `scripts/upload-clipboard-image.py` - Python 实现(跨平台)
|
|
104
|
+
- 添加 npm 脚本命令:
|
|
105
|
+
- `npm run upload:clipboard` - 运行 Node.js 脚本
|
|
106
|
+
- `npm run upload:clipboard:py` - 运行 Python 脚本
|
|
107
|
+
- 创建 `upload.bat.example` 配置模板
|
|
108
|
+
|
|
109
|
+
### Documentation
|
|
110
|
+
- 创建 `scripts/README.md` - 详细的脚本使用文档
|
|
111
|
+
- 创建 `scripts/MCP-INTEGRATION.md` - MCP 集成说明
|
|
112
|
+
- 创建 `上传图片使用说明.md` - 中文快速开始指南
|
|
113
|
+
|
|
114
|
+
### Changed
|
|
115
|
+
- 更新 package.json,将 scripts 文件夹包含到发布包中
|
|
116
|
+
|
|
117
|
+
### Features
|
|
118
|
+
- 支持从系统剪贴板直接上传图片到禅道
|
|
119
|
+
- 100% 可靠的命令行方式(不依赖 MCP)
|
|
120
|
+
- 自动保存图片到本地 img 文件夹
|
|
121
|
+
- 返回文件 ID 和访问 URL
|
|
122
|
+
|
|
123
|
+
## [1.2.2] - 2025-11-05
|
|
124
|
+
|
|
125
|
+
### Added
|
|
126
|
+
- 创建专门的 `uploadImageFromClipboard` MCP 工具
|
|
127
|
+
- 工具接受 `base64Data`(必填)、`filename`(可选)、`uid`(可选)参数
|
|
128
|
+
|
|
129
|
+
### Changed
|
|
130
|
+
- 简化剪贴板图片上传流程
|
|
131
|
+
- 使工具更加明确和易用
|
|
132
|
+
|
|
133
|
+
### Note
|
|
134
|
+
- 此版本的实现在 v1.3.1 中被完全重写,以解决 Claude Code 集成问题
|
|
135
|
+
|
|
136
|
+
## [1.2.1] - 2025-11-05
|
|
137
|
+
|
|
138
|
+
### Added
|
|
139
|
+
- `uploadFile` 工具支持 `base64Data` 参数,可以直接上传 base64 编码的图片
|
|
140
|
+
- 自动创建 `img` 文件夹(如果不存在)
|
|
141
|
+
- 智能图片格式检测(从 data URL 中提取)
|
|
142
|
+
- 默认文件名生成(使用时间戳)
|
|
143
|
+
|
|
144
|
+
### Changed
|
|
145
|
+
- 增强 `uploadFile` 工具,同时支持 `filePath` 和 `base64Data` 两种方式
|
|
146
|
+
- 改进错误处理和参数验证
|
|
147
|
+
|
|
148
|
+
### Technical
|
|
149
|
+
- 添加 data URL 解析逻辑
|
|
150
|
+
- 支持 png、jpg、jpeg、gif 等常见图片格式
|
|
151
|
+
|
|
152
|
+
## [1.2.0] - 2025-11-05
|
|
153
|
+
|
|
154
|
+
### Added
|
|
155
|
+
- **文件上传接口** `uploadFile` - POST `/files`
|
|
156
|
+
- 支持 multipart/form-data 格式上传
|
|
157
|
+
- 支持 `uid` 参数(用于富文本编辑器关联)
|
|
158
|
+
- 支持多种文件格式(文档、图片、媒体、压缩包等)
|
|
159
|
+
- **文件下载接口** `downloadFile` - GET `/files/:id`
|
|
160
|
+
- 返回文件的二进制数据(Buffer)
|
|
161
|
+
- 支持将文件保存到指定路径
|
|
162
|
+
|
|
163
|
+
### Technical
|
|
164
|
+
- 添加 `FileUploadResponse` 接口类型
|
|
165
|
+
- 添加 `UploadFileRequest` 接口类型
|
|
166
|
+
- 实现 `zentaoApi.uploadFile()` 方法,使用 form-data 库
|
|
167
|
+
- 实现 `zentaoApi.downloadFile()` 方法,支持 arraybuffer 响应
|
|
168
|
+
- 安装依赖:`form-data` 和 `@types/form-data`
|
|
169
|
+
|
|
170
|
+
### MCP Tools
|
|
171
|
+
- 注册 `uploadFile` MCP 工具
|
|
172
|
+
- 注册 `downloadFile` MCP 工具
|
|
173
|
+
|
|
174
|
+
## [1.1.x] - 早期版本
|
|
175
|
+
|
|
176
|
+
### Added
|
|
177
|
+
- 模块管理接口 `getModules` - GET `/modules`
|
|
178
|
+
- 支持按类型和ID获取模块树
|
|
179
|
+
- 支持需求、任务、Bug、用例、反馈、产品等多种模块类型
|
|
180
|
+
|
|
181
|
+
## [1.0.x] - 初始版本
|
|
182
|
+
|
|
183
|
+
### Added
|
|
184
|
+
- **基础功能**
|
|
185
|
+
- 禅道 API 认证(Token 获取)
|
|
186
|
+
- 配置管理(本地配置文件)
|
|
187
|
+
- MCP 服务器初始化
|
|
188
|
+
|
|
189
|
+
- **任务管理**
|
|
190
|
+
- `getMyTasks` - 获取我的任务列表
|
|
191
|
+
- `getTaskDetail` - 获取任务详情
|
|
192
|
+
- `updateTask` - 更新任务
|
|
193
|
+
- `finishTask` - 完成任务
|
|
194
|
+
- `createTask` - 创建任务
|
|
195
|
+
|
|
196
|
+
- **Bug管理**
|
|
197
|
+
- `getMyBugs` - 获取我的Bug列表
|
|
198
|
+
- `getBugDetail` - 获取Bug详情
|
|
199
|
+
- `createBug` - 创建Bug
|
|
200
|
+
- `updateBug` - 修改Bug
|
|
201
|
+
- `deleteBug` - 删除Bug
|
|
202
|
+
|
|
203
|
+
- **产品管理**
|
|
204
|
+
- `getProducts` - 获取产品列表
|
|
205
|
+
- `getProductDetail` - 获取产品详情
|
|
206
|
+
- `createProduct` - 创建产品
|
|
207
|
+
- `updateProduct` - 更新产品
|
|
208
|
+
- `deleteProduct` - 删除产品
|
|
209
|
+
|
|
210
|
+
- **项目集管理**
|
|
211
|
+
- `getPrograms` - 获取项目集列表
|
|
212
|
+
- `getProgramDetail` - 获取项目集详情
|
|
213
|
+
- `createProgram` - 创建项目集
|
|
214
|
+
- `updateProgram` - 更新项目集
|
|
215
|
+
- `deleteProgram` - 删除项目集
|
|
216
|
+
|
|
217
|
+
- **项目管理**
|
|
218
|
+
- `getProjects` - 获取项目列表
|
|
219
|
+
- `getProjectDetail` - 获取项目详情
|
|
220
|
+
- `createProject` - 创建项目
|
|
221
|
+
- `updateProject` - 更新项目
|
|
222
|
+
- `deleteProject` - 删除项目
|
|
223
|
+
|
|
224
|
+
- **执行管理**
|
|
225
|
+
- `getExecutions` - 获取执行列表
|
|
226
|
+
- `getExecutionDetail` - 获取执行详情
|
|
227
|
+
- `createExecution` - 创建执行
|
|
228
|
+
- `updateExecution` - 更新执行
|
|
229
|
+
- `deleteExecution` - 删除执行
|
|
230
|
+
|
|
231
|
+
- **需求管理**
|
|
232
|
+
- `getStories` - 获取需求列表
|
|
233
|
+
- `getStoryDetail` - 获取需求详情
|
|
234
|
+
- `createStory` - 创建需求
|
|
235
|
+
- `updateStory` - 更新需求
|
|
236
|
+
- `deleteStory` - 删除需求
|
|
237
|
+
|
|
238
|
+
- **产品计划**
|
|
239
|
+
- `getPlans` - 获取计划列表
|
|
240
|
+
- `getPlanDetail` - 获取计划详情
|
|
241
|
+
- `createPlan` - 创建计划
|
|
242
|
+
- `updatePlan` - 更新计划
|
|
243
|
+
- `deletePlan` - 删除计划
|
|
244
|
+
- `linkBugsToPlan` - 关联Bug到计划
|
|
245
|
+
- `unlinkBugsFromPlan` - 取消关联Bug
|
|
246
|
+
|
|
247
|
+
- **版本管理**
|
|
248
|
+
- `getBuilds` - 获取版本列表
|
|
249
|
+
- `getBuildDetail` - 获取版本详情
|
|
250
|
+
- `createBuild` - 创建版本
|
|
251
|
+
- `updateBuild` - 更新版本
|
|
252
|
+
- `deleteBuild` - 删除版本
|
|
253
|
+
|
|
254
|
+
- **反馈管理**
|
|
255
|
+
- `getFeedbacks` - 获取反馈列表
|
|
256
|
+
- `getFeedbackDetail` - 获取反馈详情
|
|
257
|
+
- `createFeedback` - 创建反馈
|
|
258
|
+
- `updateFeedback` - 更新反馈
|
|
259
|
+
- `deleteFeedback` - 删除反馈
|
|
260
|
+
- `assignFeedback` - 指派反馈
|
|
261
|
+
- `closeFeedback` - 关闭反馈
|
|
262
|
+
|
|
263
|
+
- **测试用例**
|
|
264
|
+
- `getTestCases` - 获取用例列表
|
|
265
|
+
- `getTestCaseDetail` - 获取用例详情
|
|
266
|
+
- `createTestCase` - 创建用例
|
|
267
|
+
- `updateTestCase` - 更新用例
|
|
268
|
+
- `deleteTestCase` - 删除用例
|
|
269
|
+
|
|
270
|
+
- **工单管理**
|
|
271
|
+
- `getTickets` - 获取工单列表
|
|
272
|
+
- `getTicketDetail` - 获取工单详情
|
|
273
|
+
- `createTicket` - 创建工单
|
|
274
|
+
- `updateTicket` - 更新工单
|
|
275
|
+
- `deleteTicket` - 删除工单
|
|
276
|
+
|
|
277
|
+
- **用户管理**
|
|
278
|
+
- `getMyProfile` - 获取我的信息
|
|
279
|
+
- `getUsers` - 获取用户列表
|
|
280
|
+
- `getUserDetail` - 获取用户详情
|
|
281
|
+
- `createUser` - 创建用户
|
|
282
|
+
- `updateUser` - 更新用户
|
|
283
|
+
- `deleteUser` - 删除用户
|
|
284
|
+
|
|
285
|
+
- **发布管理**
|
|
286
|
+
- `getReleases` - 获取发布列表
|
|
287
|
+
- `getReleaseDetail` - 获取发布详情
|
|
288
|
+
|
|
289
|
+
### Technical
|
|
290
|
+
- TypeScript 实现,提供完整的类型定义
|
|
291
|
+
- 基于 Axios 的 HTTP 客户端
|
|
292
|
+
- MD5 密码加密
|
|
293
|
+
- 自动 Token 管理和刷新
|
|
294
|
+
- 配置文件支持(~/.zentao/config.json)
|
|
295
|
+
- MCP (Model Context Protocol) 集成
|
|
296
|
+
- Zod schema 验证
|
|
297
|
+
|
|
298
|
+
### Documentation
|
|
299
|
+
- README.md - 项目说明
|
|
300
|
+
- 禅道API文档.md - 完整的 API 文档
|
|
301
|
+
|
|
302
|
+
---
|
|
303
|
+
|
|
304
|
+
## 版本规范
|
|
305
|
+
|
|
306
|
+
- **主版本号 (Major)**: 不兼容的 API 变更
|
|
307
|
+
- **次版本号 (Minor)**: 向下兼容的功能新增
|
|
308
|
+
- **修订号 (Patch)**: 向下兼容的问题修正
|
|
309
|
+
|
|
310
|
+
## 链接
|
|
311
|
+
|
|
312
|
+
- [npm 包地址](https://www.npmjs.com/package/@zzp123/mcp-zentao)
|
|
313
|
+
- [GitHub 仓库](https://github.com/yourusername/mcp-zentao)(待更新)
|
|
314
|
+
|
|
315
|
+
## 贡献者
|
|
316
|
+
|
|
317
|
+
- [@zzp123](https://github.com/zzp123) - 项目维护者
|
package/README.md
CHANGED
|
@@ -15,9 +15,9 @@ npm install @zzp123/mcp-zentao -g
|
|
|
15
15
|
|
|
16
16
|
查看完整的版本更新历史,请访问 [CHANGELOG.md](./CHANGELOG.md)
|
|
17
17
|
|
|
18
|
-
**最新版本**: v1.4.
|
|
19
|
-
-
|
|
20
|
-
-
|
|
18
|
+
**最新版本**: v1.4.3
|
|
19
|
+
- 将 CHANGELOG.md 添加到 npm 包中,用户可直接查看版本历史
|
|
20
|
+
- 完整的文档更新和示例代码修正
|
|
21
21
|
- 修正包名和API签名
|
|
22
22
|
|
|
23
23
|
**主要版本**:
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zzp123/mcp-zentao",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.3",
|
|
4
4
|
"description": "禅道项目管理系统的高级API集成包,提供任务管理、Bug跟踪等功能的完整封装,专为Cursor IDE设计的MCP扩展",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"type": "module",
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
"files": [
|
|
12
12
|
"dist",
|
|
13
13
|
"README.md",
|
|
14
|
+
"CHANGELOG.md",
|
|
14
15
|
"json-args.js",
|
|
15
16
|
"scripts"
|
|
16
17
|
],
|