cursor-feedback 2.7.0 → 2.7.2

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 CHANGED
@@ -2,6 +2,35 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
4
 
5
+ ### [2.7.2](https://github.com/jianger666/cursor-feedback-extension/compare/v2.7.1...v2.7.2) (2026-07-07)
6
+
7
+
8
+ ### Bug Fixes
9
+
10
+ * **cli:** 移除所有 Max Mode 限制——Cursor 新定价按 token 计费,不再需要强制 maxMode=false 和配置守护 ([6724230](https://github.com/jianger666/cursor-feedback-extension/commit/67242301436ce0953d6fff6a86bfec93ab928587))
11
+
12
+ ### [2.7.1](https://github.com/jianger666/cursor-feedback-extension/compare/v2.7.0...v2.7.1) (2026-07-07)
13
+
14
+
15
+ ### Features
16
+
17
+ * **cli:** 会话期配置守护——每秒监测 cli-config.json,Max 残留(maxMode=true 或 effort=max)一出现立即清除,兜住 CLI 断线重连等中途重读配置的路径 ([2fc4133](https://github.com/jianger666/cursor-feedback-extension/commit/2fc413388e1d7d230fc5b225ddbd45e094a95537))
18
+ * **cli:** 配置守护升级为 fs.watch 事件监听(毫秒级响应)+ 1s 轮询兜底,监听目录防原子写替换丢失目标 ([895387c](https://github.com/jianger666/cursor-feedback-extension/commit/895387ce4ad27bb8a344ed6e56fa01b851ee2729))
19
+
20
+
21
+ ### Bug Fixes
22
+
23
+ * **cli:** headless 会话 MCP 加载修复——spawn 带 --approve-mcps;mcp.json 非字符串 env 归一化(否则 CLI 静默忽略整个文件) ([1e24435](https://github.com/jianger666/cursor-feedback-extension/commit/1e2443536278a82912ab7557bc1aa52d69762e43))
24
+ * **cli:** 按用户反馈去掉 -max 模型告警文案(清理机制下 -max 也正常计 1 次);补充残留与 --model 优先级实验结论 ([cf9c520](https://github.com/jianger666/cursor-feedback-extension/commit/cf9c5203cce9a30e911399536de236b4edb26d7c))
25
+ * **cli:** 默认模型改为非 Max 变体 xhigh——-max 后缀模型 CLI 会强制按 Max 计费(maxMode=false 拦不住),并清除 selectedModel 残留、/model 设 -max 时告警 ([29516aa](https://github.com/jianger666/cursor-feedback-extension/commit/29516aaf27c6e0666e3beed7375dbf03a481810b))
26
+
27
+
28
+ ### Documentation
29
+
30
+ * **cli:** 修正 Max 计费根因注释——账单证实是 selectedModel(effort=max) 残留导致后续会话按 Max 跑,而非模型属性不可关 ([4d389cb](https://github.com/jianger666/cursor-feedback-extension/commit/4d389cb8882e192a38dd85b01cf4c4fe34592384))
31
+ * **cli:** 补充 Max 计费机制实测结论——CLI 启动约 5s 即持久化 selectedModel,计费档取决于启动前文件状态(文件监视实验验证) ([5a1710d](https://github.com/jianger666/cursor-feedback-extension/commit/5a1710db95d13d5971e6ff7dbfd0eb71699d05ac))
32
+ * 定位收敛为 Cursor 专属——移除「任意 MCP host」章节与相关表述 ([ef069ea](https://github.com/jianger666/cursor-feedback-extension/commit/ef069ea73607a7f5cbbce87a091ded6bdb442829))
33
+
5
34
  ## [2.7.0](https://github.com/jianger666/cursor-feedback-extension/compare/v2.6.0...v2.7.0) (2026-07-06)
6
35
 
7
36
 
package/README.md CHANGED
@@ -6,7 +6,7 @@
6
6
  [![Open VSX Downloads](https://img.shields.io/open-vsx/dt/jianger666/cursor-feedback)](https://open-vsx.org/extension/jianger666/cursor-feedback)
7
7
  [![npm](https://img.shields.io/npm/v/cursor-feedback)](https://www.npmjs.com/package/cursor-feedback)
8
8
 
9
- **One conversation, unlimited AI interactions** - If you're on a per-request plan, it saves your monthly quota; plus it bridges your agent tool with Feishu (Lark) — when AI asks for feedback, it's pushed to Feishu and you can reply from your phone. An interactive feedback tool built on MCP (Model Context Protocol).
9
+ **One conversation, unlimited AI interactions** - If you're on a per-request plan, it saves your monthly quota; plus it bridges Cursor with Feishu (Lark) — when AI asks for feedback, it's pushed to Feishu and you can reply from your phone, or even send `/new` to spawn a fresh session. An interactive feedback tool built for Cursor, on top of MCP.
10
10
 
11
11
  ![Demo](./demo.gif)
12
12
 
@@ -205,8 +205,8 @@ Custom timeout (optional, default 5 minutes):
205
205
 
206
206
  Either way works — but you first need to set up the bot in the Feishu console: enable the bot, grant permissions, and turn on **event subscription** (long-connection mode + the `im.message.receive_v1` event). Full walkthrough in the [Feishu setup guide](./docs/feishu-setup.md):
207
207
 
208
- - **On Cursor**: fill in Feishu credentials via the "Notification settings" icon at the top of the panel.
209
- - **On other MCP hosts** (agent tools without this panel): configure through `env` in `mcp.json`:
208
+ - **Panel config (recommended)**: fill in Feishu credentials via the "Notification settings" icon at the top of the panel.
209
+ - **Env config** (handy for pinning the config in `mcp.json` / rolling it out to a team):
210
210
 
211
211
  ```json
212
212
  {
@@ -233,34 +233,7 @@ Either way works — but you first need to set up the bot in the Feishu console:
233
233
 
234
234
  > Priority: **panel config (when credentials are filled) > env here > default**. The panel wins when App ID/Secret are filled; otherwise it falls back to env. You still need to send the bot one message in Feishu to complete binding.
235
235
 
236
- ### Feishu round-trip on any MCP host
237
-
238
- `cursor-feedback` is **not tied to Cursor**. The whole Feishu loop — long connection, card push, and reply routing — lives inside the MCP server process, so it works on **any MCP-capable agent host**: Cursor, Claude Desktop, Cline, command-line agents, or your own harness. No sidebar / VS Code panel required.
239
-
240
- Three steps to enable the round-trip:
241
-
242
- 1. **Register the MCP server** in the host's config with Feishu credentials in `env` (same `FEISHU_APP_ID` / `FEISHU_APP_SECRET` as above; `FEISHU_ENABLED` / `FEISHU_ACK` optional):
243
-
244
- ```json
245
- {
246
- "mcpServers": {
247
- "cursor-feedback": {
248
- "command": "npx",
249
- "args": ["-y", "cursor-feedback@latest"],
250
- "env": {
251
- "FEISHU_APP_ID": "cli_xxxxxxxx",
252
- "FEISHU_APP_SECRET": "your_app_secret"
253
- }
254
- }
255
- }
256
- }
257
- ```
258
-
259
- 2. **Bind the chat once** — send the bot any message in Feishu. The server records that chat as the push target (persisted to disk, shared across processes), so it knows where to deliver cards.
260
-
261
- 3. **Round-trip** — the agent calls `interactive_feedback` → a card is pushed to Feishu → you reply in Feishu → your reply is routed back to the agent as the tool result. Reply from your phone; no IDE needed.
262
-
263
- > **No idle-kill outside Cursor.** Only the Cursor extension keeps the server warm by polling. On every other host the server stays alive purely on the stdio connection: it exits on stdin EOF or parent-process death, and **never** on idle — and it always stays up while a feedback request is still waiting. So a reply that takes several minutes still makes it back.
236
+ Once configured, send the bot any message in Feishu to **bind the chat** — the server records it as the push target (persisted to disk, shared across processes). From then on: the agent calls `interactive_feedback` → a card is pushed to Feishu → you reply in Feishu → your reply is routed back to the agent as the tool result. Reply from your phone; no need to sit at the computer.
264
237
 
265
238
  ### Launch CLI sessions from Feishu (/new)
266
239
 
@@ -278,7 +251,7 @@ Send these directly in the bot chat:
278
251
  | `/model [modelId]` | Show / set the session model (persisted) |
279
252
  | `/help` | Show command usage |
280
253
 
281
- - Sessions run in **non-interactive mode** with `maxMode=false` force-written before spawn on request-based plans each session costs exactly 1 request, never Max billing.
254
+ - Sessions run in **non-interactive mode** with the model specified via `--model` flag.
282
255
  - The launched agent talks to you through this extension's feedback cards: confirmations and progress reports are pushed to Feishu; just reply to the cards.
283
256
  - Put custom rules in `~/.cursor-feedback/cli-rules.md` (e.g. "always reply in Chinese"); they are injected into every `/new` session.
284
257
  - When a session ends (done / error / `/stop` / 3-hour cap), a wrap-up message with the final output is sent to Feishu.
package/README_CN.md CHANGED
@@ -6,7 +6,7 @@
6
6
  [![Open VSX Downloads](https://img.shields.io/open-vsx/dt/jianger666/cursor-feedback)](https://open-vsx.org/extension/jianger666/cursor-feedback)
7
7
  [![npm](https://img.shields.io/npm/v/cursor-feedback)](https://www.npmjs.com/package/cursor-feedback)
8
8
 
9
- **一次对话,无限 AI 交互** - 如果你是按次计费的用户,它能帮你省下月度请求配额;还能把你的 Agent 工具和飞书打通——AI 请求反馈时推到飞书,你在手机上就能回。基于 MCP(Model Context Protocol)的交互式反馈工具。
9
+ **一次对话,无限 AI 交互** - 如果你是按次计费的用户,它能帮你省下月度请求配额;还能把 Cursor 和飞书打通——AI 请求反馈时推到飞书,你在手机上就能回,甚至发 `/new` 直接拉起新会话。为 Cursor 量身打造的交互式反馈工具(基于 MCP)。
10
10
 
11
11
  ![Demo](./demo.gif)
12
12
 
@@ -209,8 +209,8 @@ npm install -g cursor-feedback
209
209
 
210
210
  两种方式都行——但都要先在飞书后台把机器人配好:开启机器人能力、申请权限、配置**事件订阅**(长连接方式 + `im.message.receive_v1` 事件)。完整步骤见[飞书配置教程](./docs/feishu-setup.md):
211
211
 
212
- - **用 Cursor**:在插件面板顶部「通知设置」图标里填飞书凭证。
213
- - **用其他 MCP host**(没有这个插件面板的 Agent 工具):在 `mcp.json` `env` 里配置:
212
+ - **面板配置(推荐)**:在插件面板顶部「通知设置」图标里填飞书凭证。
213
+ - **env 配置**(适合把配置固化在 `mcp.json` / 团队统一分发):
214
214
 
215
215
  ```json
216
216
  {
@@ -237,34 +237,7 @@ npm install -g cursor-feedback
237
237
 
238
238
  > 优先级:**插件面板(填了凭证)> 这里的 env > 默认**。面板里填了 App ID/Secret 就以面板为准;没填则回退到 env。首次仍需在飞书里给机器人发一条消息完成绑定。
239
239
 
240
- ### 在任意 MCP host 上跑飞书往复
241
-
242
- `cursor-feedback` **不绑定 Cursor**。整条飞书链路——长连接、卡片推送、回复路由——都跑在 MCP server 进程内,所以它能在**任意支持 MCP 的 Agent host** 上工作:Cursor、Claude Desktop、Cline、命令行 Agent,或你自建的 harness,都不需要侧边栏 / VS Code 面板。
243
-
244
- 三步打通往复:
245
-
246
- 1. **注册 MCP server**:在 host 的配置里加上,并把飞书凭证写进 `env`(与上面相同的 `FEISHU_APP_ID` / `FEISHU_APP_SECRET`;`FEISHU_ENABLED` / `FEISHU_ACK` 可选):
247
-
248
- ```json
249
- {
250
- "mcpServers": {
251
- "cursor-feedback": {
252
- "command": "npx",
253
- "args": ["-y", "cursor-feedback@latest"],
254
- "env": {
255
- "FEISHU_APP_ID": "cli_xxxxxxxx",
256
- "FEISHU_APP_SECRET": "your_app_secret"
257
- }
258
- }
259
- }
260
- }
261
- ```
262
-
263
- 2. **首次绑定会话**:在飞书里给机器人发任意一条消息。server 会把这个会话记为推送目标(落盘、跨进程共享),之后就知道往哪推卡片。
264
-
265
- 3. **往复**:Agent 调 `interactive_feedback` → 卡片推到飞书 → 你在飞书回复 → 回复作为工具结果路由回 Agent。手机上就能回,不用守着 IDE。
266
-
267
- > **非 Cursor 环境不会因空闲被杀。** 只有 Cursor 插件会靠轮询给 server「续命」。在其他所有 host 上,server 完全依赖 stdio 连接存活:只在 stdin EOF 或父进程死亡时退出,**绝不**因空闲退出;而且只要还有反馈在等用户,任何环境都不会退。所以你回复花了好几分钟,结果照样能回到 Agent。
240
+ 配置好后,在飞书里给机器人发任意一条消息完成**首次绑定**——server 会把这个会话记为推送目标(落盘、跨进程共享)。之后:Agent `interactive_feedback` → 卡片推到飞书 → 你在飞书回复 → 回复作为工具结果路由回 Agent。手机上就能回,不用守着电脑。
268
241
 
269
242
  ### 手机飞书拉起 CLI 会话(/new)
270
243
 
@@ -282,7 +255,7 @@ npm install -g cursor-feedback
282
255
  | `/model [模型id]` | 查看 / 设置会话模型(持久化) |
283
256
  | `/help` | 查看命令用法 |
284
257
 
285
- - 会话以**非交互模式**运行,拉起前强制写入 `maxMode=false`——按次计费套餐固定只扣 1 次请求,永远不会走 Max 计费。
258
+ - 会话以**非交互模式**运行,通过 `--model` 参数指定模型。
286
259
  - 拉起的 Agent 也通过本插件的反馈卡片与你沟通:需要确认、汇报进展都会推到飞书,直接回复卡片即可。
287
260
  - 可在 `~/.cursor-feedback/cli-rules.md` 写自定义规则(如「永远用中文」),每次 `/new` 自动注入。
288
261
  - 会话结束(完成 / 异常 / `/stop` / 超 3 小时兜底终止)都会发飞书收尾消息附最终输出。
@@ -38,15 +38,20 @@ exports.CliLauncher = void 0;
38
38
  * CLI 会话拉起器:飞书 /new 命令 → 非交互模式 spawn cursor-agent。
39
39
  *
40
40
  * 关键设计(均来自实测结论,勿随意更改):
41
- * - 必须用非交互 print 模式(-p):交互式 TUI 会话对 Fable 5 会强制回到 Max Mode,
42
- * 次数计费的套餐一次对话被扣 10+ 次;非交互模式尊重 cli-config.json 的 maxMode=false,
43
- * 固定只扣 1 次请求。
44
- * - spawn 前每次都强制把 ~/.cursor/cli-config.json 写成 maxMode=false + 目标模型:
45
- * 交互式会话会把这个文件改回 max,不能信任上次的残留状态。
41
+ * - 必须用非交互 print 模式(-p):交互式 TUI 会持久改写 cli-config.json 的模型选择。
46
42
  * - CLI 不读 IDE 的全局 User Rules,用户的个人规则要显式注入到 prompt 里
47
43
  * (从 ~/.cursor-feedback/cli-rules.md 读取,没有则只注入 cursor-feedback 沟通协议)。
44
+ * - 必须带 --approve-mcps:MCP 批准状态按工作目录落盘,headless 会话无法弹批准框,
45
+ * 不带这个 flag 时 cursor-feedback 工具根本不加载,agent 会卡死。
46
+ * - mcp.json 的 env 值必须全是字符串:出现 boolean/number 时 CLI 会静默忽略整个
47
+ * mcp.json(IDE 却能容忍),spawn 前做一次归一化。
48
48
  * - 拉起的 agent 会通过全局注册的 cursor-feedback MCP 发飞书卡片,用户在手机上
49
49
  * 直接和这个会话对话——本模块只负责拉起和收尾,过程中的交互走既有反馈链路。
50
+ *
51
+ * 计费说明(2026-07 Cursor 新定价):
52
+ * - Cursor 已从按请求次数计费全面转向按 token 计费(个人/Teams 均是)。
53
+ * - Max Mode 只影响上下文窗口大小(token 消耗更多),不再有"固定 1 次 vs N 次"的区别。
54
+ * - 因此不再干预 cli-config.json 的 maxMode/selectedModel——用户自由选择模型和档位。
50
55
  */
51
56
  const child_process_1 = require("child_process");
52
57
  const fs = __importStar(require("fs"));
@@ -190,7 +195,7 @@ class CliLauncher {
190
195
  fs.mkdirSync(path.dirname(p), { recursive: true });
191
196
  fs.writeFileSync(p, JSON.stringify(merged, null, 2));
192
197
  }
193
- /** 当前生效模型:env 覆盖 > /model 持久化设置 > 默认。无论选什么模型,spawn 前都强制 maxMode=false */
198
+ /** 当前生效模型:env 覆盖 > /model 持久化设置 > 默认 */
194
199
  model() {
195
200
  return (process.env.CURSOR_FEEDBACK_CLI_MODEL ||
196
201
  this.readSettings().model ||
@@ -277,23 +282,32 @@ class CliLauncher {
277
282
  return 'cursor-agent'; // 最后交给 PATH 解析,spawn error 时报错提示
278
283
  }
279
284
  /**
280
- * spawn 前强制写 cli-config.json:maxMode=false + 目标模型。
281
- * 每次都写——交互式会话会把它改回 max,残留状态不可信。
285
+ * spawn 前把 ~/.cursor/mcp.json 里的非字符串 env 值归一化为字符串。
286
+ * 实测(2026-07):env 里出现 boolean/number(如 "FEISHU_ENABLED": true,IDE 能容忍)
287
+ * 会让 cursor-agent 校验失败并**静默忽略整个 mcp.json**——所有 MCP server 全部消失,
288
+ * headless 会话找不到 cursor-feedback 工具,卡死在「必须用它沟通」的指令上。
282
289
  */
283
- ensureMaxModeOff() {
284
- const p = path.join(os.homedir(), '.cursor', 'cli-config.json');
285
- let cfg = {};
290
+ normalizeMcpJsonEnv() {
286
291
  try {
287
- cfg = JSON.parse(fs.readFileSync(p, 'utf-8'));
292
+ const p = path.join(os.homedir(), '.cursor', 'mcp.json');
293
+ const j = JSON.parse(fs.readFileSync(p, 'utf-8'));
294
+ let changed = false;
295
+ for (const server of Object.values(j.mcpServers || {})) {
296
+ for (const [k, v] of Object.entries(server.env || {})) {
297
+ if (typeof v !== 'string') {
298
+ server.env[k] = String(v);
299
+ changed = true;
300
+ }
301
+ }
302
+ }
303
+ if (changed) {
304
+ fs.writeFileSync(p, JSON.stringify(j, null, 2));
305
+ clog('mcp.json 中的非字符串 env 已归一化为字符串(CLI 兼容性)');
306
+ }
288
307
  }
289
308
  catch {
290
- // 文件不存在或损坏时从空对象重建(cursor-agent 会补齐其余字段)
309
+ // mcp.json 不存在或损坏:不是本模块的职责,交给 cursor-agent 自己报错
291
310
  }
292
- cfg.maxMode = false;
293
- cfg.model = { modelId: this.model(), maxMode: false };
294
- cfg.hasChangedDefaultModel = true;
295
- fs.writeFileSync(p, JSON.stringify(cfg, null, 2));
296
- clog(`cli-config.json 已写入 maxMode=false, model=${this.model()}`);
297
311
  }
298
312
  /** 用户自定义注入规则:~/.cursor-feedback/cli-rules.md(可选) */
299
313
  readUserRules() {
@@ -337,13 +351,7 @@ class CliLauncher {
337
351
  if (!this.tryAcquireLock(task)) {
338
352
  return '已有一个 CLI 会话在运行:' + (this.describe() || '(另一个窗口实例刚刚抢先拉起)');
339
353
  }
340
- try {
341
- this.ensureMaxModeOff();
342
- }
343
- catch (e) {
344
- this.releaseLock();
345
- return '写入 cli-config.json 失败:' + e;
346
- }
354
+ this.normalizeMcpJsonEnv();
347
355
  const bin = this.findBinary();
348
356
  if (!bin) {
349
357
  this.releaseLock();
@@ -359,7 +367,10 @@ class CliLauncher {
359
367
  ? next.slice(next.length - CliLauncher.OUTPUT_TAIL_LIMIT)
360
368
  : next;
361
369
  };
362
- const args = ['-p', '--trust', '--model', this.model(), prompt];
370
+ // --approve-mcps 必带:headless 无法弹批准框,MCP 不批准就不加载,agent 会找不到
371
+ // cursor-feedback 工具而卡死。批准状态按工作目录存(~/.cursor/projects/<dir>/
372
+ // mcp-approvals.json),逐目录 enable 不现实,只有这个 flag 对任意 cwd 生效。
373
+ const args = ['-p', '--trust', '--approve-mcps', '--model', this.model(), prompt];
363
374
  const isWin = process.platform === 'win32';
364
375
  // Windows 上 .cmd/.ps1 不能直接 spawn(Node 18.20+ 禁止),需经 cmd.exe 转发
365
376
  const viaCmdShell = isWin && /\.(cmd|bat|ps1)$/i.test(bin);
@@ -511,8 +522,7 @@ class CliLauncher {
511
522
  }
512
523
  }
513
524
  exports.CliLauncher = CliLauncher;
514
- /** 默认模型:实测非交互模式下该模型 + maxMode=false 固定扣 1 次请求 */
515
- CliLauncher.DEFAULT_MODEL = 'claude-fable-5-thinking-max';
525
+ CliLauncher.DEFAULT_MODEL = 'claude-fable-5-thinking-xhigh';
516
526
  /** 会话时长兜底:防止无人回复的 headless 会话无限续期挂着 */
517
527
  CliLauncher.SESSION_MAX_MS = 3 * 60 * 60 * 1000;
518
528
  /** stdout/stderr 只保留尾部,防止长会话把内存吃爆 */
@@ -497,11 +497,11 @@ class McpFeedbackServer {
497
497
  }
498
498
  /**
499
499
  * 处理飞书斜杠命令。返回是否已消费该消息。
500
- * - /new [目录或项目名] 任务描述:拉起 headless CLI 会话(非交互 + maxMode=false,扣 1 次请求)。
500
+ * - /new [目录或项目名] 任务描述:拉起 headless CLI 会话(非交互模式)。
501
501
  * 工作目录刻意保持简单:显式指定 > 主目录,与当前开着哪些 IDE 窗口无关。
502
502
  * - /projects:列出 Cursor 打开过的项目路径(供手机上查路径 / 复制给 /new)
503
503
  * - /stop:终止运行中的 CLI 会话
504
- * - /model [模型id]:查看 / 设置 CLI 会话模型(持久化;无论选什么模型都强制 maxMode=false)
504
+ * - /model [模型id]:查看 / 设置 CLI 会话模型(持久化)
505
505
  */
506
506
  handleCliCommand(rawText, chatId) {
507
507
  // 输入容错:首尾空格(飞书入站已 trim,这里兜底;trim 同样覆盖全角空格 U+3000);
@@ -553,10 +553,10 @@ class McpFeedbackServer {
553
553
  if (mModel) {
554
554
  if (mModel[1]) {
555
555
  this.cliLauncher.writeSettings({ model: mModel[1] });
556
- this.feishu.replyText(chatId, `✅ CLI 模型已设为 ${mModel[1]}\n(无论什么模型,拉起前都会强制 maxMode=false,不会走 Max 计费)`);
556
+ this.feishu.replyText(chatId, `✅ CLI 模型已设为 ${mModel[1]}`);
557
557
  }
558
558
  else {
559
- this.feishu.replyText(chatId, `当前 CLI 模型:${this.cliLauncher.model()}\n设置:/model 模型id(例如 /model claude-fable-5-thinking-max)`);
559
+ this.feishu.replyText(chatId, `当前 CLI 模型:${this.cliLauncher.model()}\n设置:/model 模型id(例如 /model claude-fable-5-thinking-xhigh)`);
560
560
  }
561
561
  return true;
562
562
  }
@@ -620,7 +620,7 @@ class McpFeedbackServer {
620
620
  this.feishu.replyText(chatId, '❌ 拉起 CLI 会话失败:' + err);
621
621
  }
622
622
  else {
623
- this.feishu.replyText(chatId, '🚀 CLI 会话已拉起(非交互模式,已强制 maxMode=false,按 1 次请求计费)\n' +
623
+ this.feishu.replyText(chatId, '🚀 CLI 会话已拉起(非交互模式)\n' +
624
624
  `模型:${this.cliLauncher.model()}\n` +
625
625
  `工作目录:${cwd}\n` +
626
626
  `任务:${task.length > 100 ? task.slice(0, 100) + '…' : task}\n\n` +
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "cursor-feedback",
3
3
  "displayName": "Cursor Feedback",
4
4
  "description": "One Cursor conversation, unlimited AI interactions - Save your monthly request quota! Interactive feedback loop for AI chat via MCP",
5
- "version": "2.7.0",
5
+ "version": "2.7.2",
6
6
  "icon": "icon.png",
7
7
  "author": "jianger666",
8
8
  "license": "MIT",