@yeepay/coderocket-mcp 1.2.8 → 1.2.9
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/dist/logger.js
CHANGED
@@ -63,12 +63,12 @@ export class Logger {
|
|
63
63
|
context,
|
64
64
|
error,
|
65
65
|
};
|
66
|
-
//
|
66
|
+
// 输出到控制台(所有日志都输出到 stderr 以避免污染 MCP 协议的 stdout)
|
67
67
|
const levelName = LogLevel[level];
|
68
68
|
const contextStr = context ? ` ${JSON.stringify(context)}` : '';
|
69
69
|
const errorStr = error ? ` Error: ${error.message}` : '';
|
70
|
-
|
71
|
-
|
70
|
+
// 在 MCP 模式下,所有日志都应该输出到 stderr
|
71
|
+
console.error(`[${entry.timestamp}] ${levelName}: ${message}${contextStr}${errorStr}`);
|
72
72
|
// 写入日志文件
|
73
73
|
if (this.logFile) {
|
74
74
|
try {
|
package/dist/logger.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,UAAU,EAAS,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AAE5B;;GAEG;AACH,MAAM,CAAN,IAAY,QAKX;AALD,WAAY,QAAQ;IAClB,yCAAS,CAAA;IACT,uCAAQ,CAAA;IACR,uCAAQ,CAAA;IACR,yCAAS,CAAA;AACX,CAAC,EALW,QAAQ,KAAR,QAAQ,QAKnB;AAaD;;GAEG;AACH,MAAM,OAAO,MAAM;IACT,QAAQ,CAAW;IACnB,OAAO,CAAU;IAEzB,YAAY,QAAkB,QAAQ,CAAC,IAAI,EAAE,OAAgB;QAC3D,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAEvB,oBAAoB;QACpB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,oBAAoB,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAe,EAAE,OAA6B;QAClD,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED;;OAEG;IACH,IAAI,CAAC,OAAe,EAAE,OAA6B;QACjD,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,IAAI,CAAC,OAAe,EAAE,OAA6B;QACjD,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAe,EAAE,KAAa,EAAE,OAA6B;QACjE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IACpD,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,GAAG,CACf,KAAe,EACf,OAAe,EACf,OAA6B,EAC7B,KAAa;QAEb,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC1B,OAAO;QACT,CAAC;QAED,MAAM,KAAK,GAAa;YACtB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,KAAK;YACL,OAAO;YACP,OAAO;YACP,KAAK;SACN,CAAC;QAEF
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,UAAU,EAAS,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AAE5B;;GAEG;AACH,MAAM,CAAN,IAAY,QAKX;AALD,WAAY,QAAQ;IAClB,yCAAS,CAAA;IACT,uCAAQ,CAAA;IACR,uCAAQ,CAAA;IACR,yCAAS,CAAA;AACX,CAAC,EALW,QAAQ,KAAR,QAAQ,QAKnB;AAaD;;GAEG;AACH,MAAM,OAAO,MAAM;IACT,QAAQ,CAAW;IACnB,OAAO,CAAU;IAEzB,YAAY,QAAkB,QAAQ,CAAC,IAAI,EAAE,OAAgB;QAC3D,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAEvB,oBAAoB;QACpB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,oBAAoB,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAe,EAAE,OAA6B;QAClD,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED;;OAEG;IACH,IAAI,CAAC,OAAe,EAAE,OAA6B;QACjD,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,IAAI,CAAC,OAAe,EAAE,OAA6B;QACjD,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAe,EAAE,KAAa,EAAE,OAA6B;QACjE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IACpD,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,GAAG,CACf,KAAe,EACf,OAAe,EACf,OAA6B,EAC7B,KAAa;QAEb,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC1B,OAAO;QACT,CAAC;QAED,MAAM,KAAK,GAAa;YACtB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,KAAK;YACL,OAAO;YACP,OAAO;YACP,KAAK;SACN,CAAC;QAEF,+CAA+C;QAC/C,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;QAClC,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChE,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,WAAW,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAEzD,8BAA8B;QAC9B,OAAO,CAAC,KAAK,CACX,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,KAAK,OAAO,GAAG,UAAU,GAAG,QAAQ,EAAE,CACxE,CAAC;QAEF,SAAS;QACT,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,IAAI,CAAC;gBACH,qBAAqB;gBACrB,IAAI,QAAQ,GAAG,KAAK,CAAC;gBACrB,IAAI,KAAK,CAAC,KAAK,YAAY,KAAK,EAAE,CAAC;oBACjC,QAAQ,GAAG;wBACT,GAAG,KAAK;wBACR,KAAK,EAAE;4BACL,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI;4BACtB,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO;4BAC5B,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK;yBACzB;qBACF,CAAC;gBACJ,CAAC;gBACD,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;gBAChD,MAAM,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YACnD,CAAC;YAAC,OAAO,SAAS,EAAE,CAAC;gBACnB,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,SAAS,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACH,UAAU;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,KAAe;QACtB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACxB,CAAC;CACF;AAED,SAAS;AACT,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,MAAM,CAC9B,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CACxE,CAAC;AAEF;;GAEG;AACH,MAAM,OAAO,YAAY;IACf,MAAM,CAAS;IAEvB,YAAY,MAAc;QACxB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,KAAc,EAAE,OAAgB;QAC1C,IAAI,cAAqB,CAAC;QAE1B,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,cAAc,GAAG,KAAK,CAAC;QACzB,CAAC;aAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YACrC,cAAc,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC;aAAM,CAAC;YACN,cAAc,GAAG,IAAI,KAAK,CAAC,kBAAkB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACxE,CAAC;QAED,OAAO;QACP,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,cAAc,CAAC,OAAO,EAAE,EAC5D,cAAc,EACd,EAAE,OAAO,EAAE,CACZ,CAAC;QAEF,OAAO,cAAc,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,SAAS,CACP,EAA8B,EAC9B,OAAgB;QAEhB,OAAO,KAAK,EAAE,GAAG,IAAO,EAAc,EAAE;YACtC,IAAI,CAAC;gBACH,OAAO,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;YAC3B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YACzC,CAAC;QACH,CAAC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,uBAAuB,CACrB,KAAY,EACZ,WAAsB;QAMtB,qBAAqB;QACrB,IAAI,SAAS,GAAG,eAAe,CAAC;QAChC,IAAI,eAAe,GAAG,WAAW,IAAI,EAAE,CAAC;QAExC,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,CAAC;YACnD,SAAS,GAAG,qBAAqB,CAAC;YAClC,eAAe,GAAG;gBAChB,aAAa;gBACb,eAAe;gBACf,cAAc;gBACd,GAAG,eAAe;aACnB,CAAC;QACJ,CAAC;aAAM,IACL,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;YAC9B,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,EACpC,CAAC;YACD,SAAS,GAAG,kBAAkB,CAAC;YAC/B,eAAe,GAAG;gBAChB,UAAU;gBACV,aAAa;gBACb,UAAU;gBACV,aAAa;gBACb,GAAG,eAAe;aACnB,CAAC;QACJ,CAAC;aAAM,IACL,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;YAC5B,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAC9B,CAAC;YACD,SAAS,GAAG,YAAY,CAAC;YACzB,eAAe,GAAG;gBAChB,YAAY;gBACZ,WAAW;gBACX,QAAQ;gBACR,GAAG,eAAe;aACnB,CAAC;QACJ,CAAC;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1E,SAAS,GAAG,WAAW,CAAC;YACxB,eAAe,GAAG;gBAChB,aAAa;gBACb,WAAW;gBACX,YAAY;gBACZ,GAAG,eAAe;aACnB,CAAC;QACJ,CAAC;QAED,OAAO;YACL,KAAK,EAAE,KAAK,CAAC,OAAO;YACpB,UAAU,EAAE,SAAS;YACrB,WAAW,EAAE,eAAe;SAC7B,CAAC;IACJ,CAAC;CACF;AAED,YAAY;AACZ,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC"}
|
package/package.json
CHANGED
@@ -0,0 +1,58 @@
|
|
1
|
+
# Code Review Report for Commit `0f82c90f`
|
2
|
+
|
3
|
+
**Commit Author:** im47cn <dremabt@gmail.com>
|
4
|
+
**Commit Date:** Fri Aug 1 20:07:50 2025 +0800
|
5
|
+
**Commit Message:**
|
6
|
+
```
|
7
|
+
fix: 修复Logger输出到stdout的问题
|
8
|
+
|
9
|
+
- 将Logger的所有输出改为stderr,避免污染MCP协议的stdout
|
10
|
+
- 确保stdout只包含JSON-RPC协议消息
|
11
|
+
- 完全解决MCP Client无法正常启动的问题
|
12
|
+
```
|
13
|
+
|
14
|
+
---
|
15
|
+
|
16
|
+
## 审查摘要 (Review Summary)
|
17
|
+
|
18
|
+
这是一个高质量的修复提交。变更目标明确,成功地将所有日志输出重定向到 `stderr`,解决了因日志污染 `stdout` 而导致的 MCP 客户端启动失败的核心问题。代码修改简洁、注释清晰,并且提交包含了测试输出的验证结果,整体质量很高。
|
19
|
+
|
20
|
+
**评级: A (优秀)**
|
21
|
+
|
22
|
+
---
|
23
|
+
|
24
|
+
## 详细分析 (Detailed Analysis)
|
25
|
+
|
26
|
+
### 1. `src/logger.ts`
|
27
|
+
|
28
|
+
- **变更内容**: 将原先根据日志级别(`WARN` 及以上到 `console.error`,其他到 `console.log`)的逻辑,统一修改为所有级别的日志均使用 `console.error` 输出。
|
29
|
+
- **优点**:
|
30
|
+
- **问题解决**: 此项改动从根本上解决了问题。在 MCP 协议中,`stdout` 被用作标准的数据传输通道,必须保持“干净”,只包含 JSON-RPC 消息。将所有非协议日志(如启动信息、调试信息、错误信息)输出到 `stderr` 是正确的做法。
|
31
|
+
- **代码清晰**: 删除了条件判断逻辑,使代码更简单、意图更明确。
|
32
|
+
- **注释优秀**: 开发者同步更新了代码注释,明确解释了“所有日志都输出到 stderr 以避免污染 MCP 协议的 stdout”的原因,这对于后续维护者非常有帮助。
|
33
|
+
|
34
|
+
### 2. `package.json`
|
35
|
+
|
36
|
+
- **变更内容**: 版本号从 `1.2.8` 升级到 `1.2.9`。
|
37
|
+
- **评价**: 这是一个 `patch` 版本的升级,完全符合 `semver` 规范对于向后兼容的 bug 修复的定义。操作正确。
|
38
|
+
|
39
|
+
### 3. 测试输出文件 (`stderr.txt`, `stdout.txt`, etc.)
|
40
|
+
|
41
|
+
- **变更内容**: 新增和更新了用于记录标准输出和标准错误输出的文本文件。
|
42
|
+
- **评价**:
|
43
|
+
- **有效验证**: 这些文件是本次修复有效性的直接证据。可以看到 `stdout.txt` 和 `stdout_test.txt` 中只包含了纯净的 JSON-RPC 消息,而 `stderr.txt` 和 `stderr_test.txt` 则包含了所有之前会污染 `stdout` 的日志信息。
|
44
|
+
- **良好实践**: 将测试的输出结果包含在提交中(尤其是在这种场景下),是一种非常好的实践,它让审查者可以直观地看到变更带来的效果。
|
45
|
+
|
46
|
+
---
|
47
|
+
|
48
|
+
## 结论与建议 (Conclusion & Recommendations)
|
49
|
+
|
50
|
+
此次提交堪称一次小而美的修复典范。
|
51
|
+
|
52
|
+
- **优点**:
|
53
|
+
- **目标明确**: 准确地定位并修复了一个关键问题。
|
54
|
+
- **实现优雅**: 用最小的改动解决了问题。
|
55
|
+
- **验证充分**: 提供了清晰的验证结果。
|
56
|
+
- **文档清晰**: 提交信息和代码注释都非常到位。
|
57
|
+
|
58
|
+
**建议**: 无。此提交无需任何修改,可以直接合入。
|
@@ -0,0 +1,43 @@
|
|
1
|
+
### 代码审查报告
|
2
|
+
|
3
|
+
**Commit:** `9a2e75ce87c6b4ea357f381e46b3db5da9c1d409`
|
4
|
+
**作者:** im47cn
|
5
|
+
**日期:** 2025-08-01
|
6
|
+
|
7
|
+
**摘要:**
|
8
|
+
该提交旨在修复日志记录器(Logger)将输出写入 `stdout` 的问题。为了确保 `stdout` 只用于 MCP (Model Context Protocol) 的 JSON-RPC 消息,所有日志输出都被重定向到了 `stderr`。此更改还包括 `package.json` 中版本号的提升。
|
9
|
+
|
10
|
+
---
|
11
|
+
|
12
|
+
#### 审查详情
|
13
|
+
|
14
|
+
**1. 变更分析:**
|
15
|
+
|
16
|
+
* **`package.json`**:
|
17
|
+
* 版本从 `1.2.8` 更新为 `1.2.9`。
|
18
|
+
* **评估**: 合理。版本提升符合 `fix` 类型提交的语义。
|
19
|
+
|
20
|
+
* **`src/logger.ts`**:
|
21
|
+
* 移除了根据日志级别(`LogLevel`)选择 `console.log` 或 `console.error` 的逻辑。
|
22
|
+
* 所有日志现在统一使用 `console.error` 输出。
|
23
|
+
* **评估**: 正确且必要。根据提交信息,`stdout` 被用于协议通信,因此任何日志记录都可能污染输出流,导致客户端解析失败。将所有日志(包括 `INFO` 和 `DEBUG` 级别)重定向到 `stderr` 是解决此问题的标准做法。这大大增强了工具的稳定性和互操作性。
|
24
|
+
|
25
|
+
**2. `CRUSH.md` 指南遵从情况:**
|
26
|
+
|
27
|
+
* **代码风格与格式化**: 变更部分的代码风格与项目现有风格保持一致。
|
28
|
+
* **错误处理**: 此更改是对日志记录和错误处理机制的改进,完全符合 `CRUSH.md` 中关于健壮错误处理的要求。
|
29
|
+
* **总体原则**: 变更目标明确,代码修改范围小,精准地解决了一个关键问题,符合“保持函数小而专注”的原则。
|
30
|
+
|
31
|
+
**3. 结论:**
|
32
|
+
|
33
|
+
这是一个高质量的修复。
|
34
|
+
|
35
|
+
* **清晰度**: 提交信息清晰地解释了问题的原因和解决方案。
|
36
|
+
* **正确性**: 代码变更直接有效地解决了所述问题。
|
37
|
+
* **最佳实践**: 将应用程序日志与标准数据输出分离(`stderr` vs `stdout`)是命令行工具和后台服务的最佳实践,尤其是在需要进行进程间通信(IPC)的场景下。
|
38
|
+
|
39
|
+
**总体评价: :+1: 批准**
|
40
|
+
|
41
|
+
此提交解决了 MCP 客户端集成的关键障碍,代码质量高,建议合并。
|
42
|
+
|
43
|
+
---
|