cursor-feedback 1.2.0 → 2.0.1

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.
@@ -0,0 +1,43 @@
1
+ ---
2
+ name: releasing
3
+ description: 发布 cursor-feedback 新版本到 npm / Open VSX / VS Code Marketplace。当用户要发版、发布新版本、出包、上线、release、publish 时使用。
4
+ ---
5
+
6
+ # 发布 cursor-feedback 新版本
7
+
8
+ 发版用 `standard-version` 升级版本号,发布由 GitHub Actions(`.github/workflows/release.yml`,推送 `v*.*.*` tag 触发)自动完成三个渠道。**不要手动 `npm publish` / `vsce publish`。**
9
+
10
+ ## 发版步骤
11
+
12
+ ```
13
+ - [ ] 1. 改动已 commit,且遵循 conventional commits(feat: / fix: / chore:)
14
+ - [ ] 2. 升级版本:npm run release:patch(或 release:minor / release:major)
15
+ - [ ] 3. 推送:git push --follow-tags origin main
16
+ - [ ] 4. 验证三渠道发布成功
17
+ ```
18
+
19
+ - **第 2 步**:`standard-version` 自动升级 `package.json` 版本、按 commit 生成 CHANGELOG、打 `vX.Y.Z` tag。
20
+ - **第 3 步**:推送 tag 后 GitHub Actions 自动发布,去仓库 Actions 页看进度。
21
+
22
+ ## 两个发布渠道
23
+
24
+ | 渠道 | 认证 | 说明 |
25
+ | --- | --- | --- |
26
+ | npm | OIDC Trusted Publishing | 免 token、永不过期(已在 npmjs 配 trusted publisher)|
27
+ | Open VSX | `OVSX_PAT` secret | Cursor / Windsurf / VSCodium 用户从这装 |
28
+
29
+ `OVSX_PAT` 在 GitHub 仓库 `Settings → Secrets and variables → Actions` 配置。
30
+
31
+ ## 硬约束(踩过的坑,别再犯)
32
+
33
+ - **禁止给 `package.json` 加 `files` 字段**:会与 `.vscodeignore` 冲突,导致 `vsce package` 直接失败。npm 包瘦身只用 `.npmignore`,VS Code 打包只用 `.vscodeignore`,两者各管各的、互不影响。
34
+ - `pre-push` hook 会校验 `package.json` 的 version 已写入 `CHANGELOG.md`,没写会被拦下。
35
+
36
+ ## 验证发布
37
+
38
+ ```bash
39
+ npm view cursor-feedback version
40
+ curl -s https://open-vsx.org/api/jianger666/cursor-feedback | grep -o '"version":"[^"]*"'
41
+ ```
42
+
43
+ 两个版本号都应等于刚发的版本。
package/CHANGELOG.md CHANGED
@@ -2,6 +2,38 @@
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.0.1](https://github.com/jianger666/cursor-feedback-extension/compare/v2.0.0...v2.0.1) (2026-06-20)
6
+
7
+
8
+ ### Bug Fixes
9
+
10
+ * **feishu:** 卡片标题与引导语去掉 Cursor 绑定改为通用文案 ([07857fa](https://github.com/jianger666/cursor-feedback-extension/commit/07857fa07b972c2a7c621c76fadf33870ddbdb61))
11
+
12
+
13
+ ### Code Refactoring
14
+
15
+ * 发版指引从 rule 改为 skill ([5854980](https://github.com/jianger666/cursor-feedback-extension/commit/58549801b93c37262cca793ceb238d84d2806f2d))
16
+
17
+
18
+ ### Chores
19
+
20
+ * **ci:** 移除 VS Code Marketplace 发布渠道 ([d58fec1](https://github.com/jianger666/cursor-feedback-extension/commit/d58fec19f9285c6705cb3aebe3aae1e4fc595986))
21
+
22
+
23
+ ### Documentation
24
+
25
+ * **feishu:** 删掉与开头重复的结尾段 ([bdc9c61](https://github.com/jianger666/cursor-feedback-extension/commit/bdc9c61fa86c9a268d54d2b777ecc1b11cfb849b))
26
+ * **feishu:** 精简事件订阅步骤描述 ([770a486](https://github.com/jianger666/cursor-feedback-extension/commit/770a4869b475a2466c99357b2e8f146582d9e57d))
27
+ * **feishu:** 补充事件订阅(长连接)配置步骤 ([47f5656](https://github.com/jianger666/cursor-feedback-extension/commit/47f5656373bec44ff6d3274c7c46b7bc6fa105b3))
28
+ * 添加发版流程 rule 供后续 AI 参考 ([e6986a4](https://github.com/jianger666/cursor-feedback-extension/commit/e6986a49d54b279fe28e14d1733342b20b64bbf6))
29
+
30
+ ## [2.0.0](https://github.com/jianger666/cursor-feedback-extension/compare/v1.1.1...v2.0.0) (2026-06-20)
31
+
32
+
33
+ ### Features
34
+
35
+ * 飞书通知打通、通知设置重构与多窗口配置同步 ([fcd536e](https://github.com/jianger666/cursor-feedback-extension/commit/fcd536e295ea2a97250e2eb5c77dec6897e51d60))
36
+
5
37
  ## [1.2.0](https://github.com/jianger666/cursor-feedback-extension/compare/v1.1.1...v1.2.0) (2026-06-12)
6
38
 
7
39
 
package/README.md CHANGED
@@ -6,13 +6,13 @@
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 Cursor conversation, unlimited AI interactions** - Save your monthly request quota! An interactive feedback tool for Cursor that enables unlimited interactions within a single conversation through 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 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).
10
10
 
11
11
  ![Demo](./demo.gif)
12
12
 
13
13
  ## 💡 Why Cursor Feedback?
14
14
 
15
- If you're on Cursor's 500 requests/month plan, every conversation counts. With Cursor Feedback:
15
+ If you're on Cursor's 500 requests/month plan or another coding plan, every conversation counts. With Cursor Feedback:
16
16
 
17
17
  - **One conversation, unlimited interactions** - Keep chatting without consuming extra quota
18
18
  - **Human-in-the-loop workflow** - AI waits for your feedback before proceeding
@@ -26,6 +26,7 @@ If you're on Cursor's 500 requests/month plan, every conversation counts. With C
26
26
  - 📁 **File Support** - Select files/folders to share paths with AI
27
27
  - 📝 **Markdown Rendering** - Full Markdown support for AI summaries
28
28
  - ⏱️ **Auto-retry on Timeout** - 5-minute default timeout, AI automatically re-requests
29
+ - 🔔 **Feishu (Lark) Bridge** - When AI requests feedback, the summary is pushed to Feishu so you can reply right from your phone
29
30
  - 🌍 **Multi-language** - Supports English, Simplified Chinese, Traditional Chinese
30
31
  - 🔒 **Project Isolation** - Multiple windows work independently
31
32
 
@@ -115,7 +116,7 @@ Interactive feedback collection tool.
115
116
 
116
117
  | Parameter | Type | Default | Description |
117
118
  |-----------|------|---------|-------------|
118
- | `project_directory` | string | `.` | Absolute path of project directory (for multi-window isolation) |
119
+ | `project_directory` | string | required | Absolute path of the project workspace you are currently in (the open workspace; for multi-window isolation) |
119
120
  | `summary` | string | `I have completed the task you requested.` | AI work summary (supports Markdown) |
120
121
  | `timeout` | number | `300` | Timeout in seconds (default 5 minutes) |
121
122
 
@@ -150,13 +151,14 @@ Available languages:
150
151
  - `zh-CN` - Simplified Chinese (简体中文)
151
152
  - `en` - English
152
153
 
153
- ### System Notifications
154
+ ### Notification Settings
154
155
 
155
- When AI requests feedback while the IDE window is **not focused** (e.g. you switched to another app), the extension sends a native system notification (macOS / Windows / Linux), so you won't miss the request and let it time out.
156
+ Click the "Notification settings" icon at the top of the feedback panel to configure in-app and Feishu notifications, or adjust them in VS Code settings:
156
157
 
157
158
  | Setting | Type | Default | Description |
158
159
  |---------|------|---------|-------------|
159
- | `cursorFeedback.systemNotification` | boolean | `true` | Show a system notification when AI requests feedback and the IDE is not focused |
160
+ | `cursorFeedback.systemNotification` | boolean | `true` | In-app notifications (main switch): automatically show the feedback panel when AI requests feedback. When off, this window stays fully silent — no panel, no focus stealing, and nothing pushed here |
161
+ | `cursorFeedback.osNotification` | boolean | `true` | Notify when in background (sub-option): fire a native system notification only when the IDE window is not focused. When off, nothing pops even if you switch away (the panel still shows) |
160
162
  | `cursorFeedback.notificationSound` | boolean | `true` | Play a sound with the system notification |
161
163
 
162
164
  > macOS note: notifications are sent via `osascript`. If you don't see them, allow notifications for "Script Editor" in System Settings → Notifications.
@@ -195,7 +197,38 @@ Custom timeout (optional, default 5 minutes):
195
197
  | Environment Variable | Default | Description |
196
198
  |---------------------|---------|-------------|
197
199
  | `MCP_FEEDBACK_TIMEOUT` | `300` | Timeout in seconds (default 5 minutes) |
198
- | `MCP_AUTO_RETRY` | `true` | Whether AI should auto-retry on timeout. Set to `false` to disable |
200
+ | `MCP_AUTO_RETRY` | `true` | Whether AI should auto-retry on timeout. Set to `false` to disable. Also toggleable via the "Keep-waiting" switch in the panel (priority: panel > env > default) |
201
+
202
+ ### Feishu Notifications
203
+
204
+ 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):
205
+
206
+ - **On Cursor**: fill in Feishu credentials via the "Notification settings" icon at the top of the panel.
207
+ - **On other MCP hosts** (agent tools without this panel): configure through `env` in `mcp.json`:
208
+
209
+ ```json
210
+ {
211
+ "mcpServers": {
212
+ "cursor-feedback": {
213
+ "command": "npx",
214
+ "args": ["-y", "cursor-feedback@latest"],
215
+ "env": {
216
+ "FEISHU_APP_ID": "cli_xxxxxxxx",
217
+ "FEISHU_APP_SECRET": "your_app_secret"
218
+ }
219
+ }
220
+ }
221
+ }
222
+ ```
223
+
224
+ | Environment Variable | Default | Description |
225
+ |---------------------|---------|-------------|
226
+ | `FEISHU_APP_ID` | - | Feishu app App ID (e.g. `cli_xxxxxxxx`) |
227
+ | `FEISHU_APP_SECRET` | - | Feishu app App Secret |
228
+ | `FEISHU_ENABLED` | `true` | Whether to push feedback to Feishu. Set to `false` to disable |
229
+ | `FEISHU_ACK` | `true` | Whether to react with a "Get" emoji after you reply. Set to `false` to disable |
230
+
231
+ > 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.
199
232
 
200
233
  ## 🏗️ Architecture
201
234
 
package/README_CN.md CHANGED
@@ -6,13 +6,13 @@
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
- **一次 Cursor 对话,无限 AI 交互** - 节省你的月度请求配额!通过 MCP(Model Context Protocol)实现一次对话内无限交互的交互式反馈工具。
9
+ **一次对话,无限 AI 交互** - 如果你是按次计费的用户,它能帮你省下月度请求配额;还能把你的 Agent 工具和飞书打通——AI 请求反馈时推到飞书,你在手机上就能回。基于 MCP(Model Context Protocol)的交互式反馈工具。
10
10
 
11
11
  ![Demo](./demo.gif)
12
12
 
13
13
  ## 💡 为什么选择 Cursor Feedback?
14
14
 
15
- 如果你使用的是 Cursor 的 500次/月 计划,每次对话都很珍贵。使用 Cursor Feedback:
15
+ 如果你使用的是 Cursor 的 500次/月 计划或其它 coding plan,每次对话都很珍贵。使用 Cursor Feedback:
16
16
 
17
17
  - **一次对话,无限交互** - 持续聊天而不消耗额外配额
18
18
  - **人机协作工作流** - AI 等待你的反馈后再继续
@@ -28,6 +28,7 @@
28
28
  - 📁 **文件支持** - 支持选择文件/文件夹,将路径告诉 AI 让其读取
29
29
  - 📝 **Markdown 渲染** - AI 摘要支持完整的 Markdown 格式
30
30
  - ⏱️ **超时自动重试** - 默认 5 分钟超时,超时后 AI 会自动重新请求反馈
31
+ - 🔔 **飞书打通** - AI 请求反馈时把摘要推送到飞书,你直接在手机上回复,不用守在电脑前
31
32
  - 🌍 **多语言支持** - 支持简体中文、繁体中文和英文
32
33
  - 🔒 **项目隔离** - 多窗口同时使用时,各项目互不干扰
33
34
 
@@ -117,7 +118,7 @@ npm install -g cursor-feedback
117
118
 
118
119
  | 参数 | 类型 | 默认值 | 描述 |
119
120
  |------|------|--------|------|
120
- | `project_directory` | string | `.` | 项目目录的绝对路径(用于多窗口项目隔离) |
121
+ | `project_directory` | string | 必填 | 当前所在项目空间的根目录绝对路径(你打开的工作区;用于多窗口隔离) |
121
122
  | `summary` | string | `I have completed the task you requested.` | AI 工作摘要(支持 Markdown) |
122
123
  | `timeout` | number | `300` | 超时时间(秒),默认 5 分钟 |
123
124
 
@@ -152,13 +153,14 @@ npm install -g cursor-feedback
152
153
  - `zh-CN` - 简体中文
153
154
  - `en` - English
154
155
 
155
- ### 系统通知
156
+ ### 通知设置
156
157
 
157
- AI 请求反馈而 IDE 窗口**未聚焦**时(比如您切去做别的事了),插件会发送系统原生通知(macOS / Windows / Linux),避免错过反馈请求导致超时。
158
+ 在反馈面板顶部点「通知设置」图标即可配置插件通知与飞书通知,也可在 VS Code 设置里调整:
158
159
 
159
160
  | 设置 | 类型 | 默认值 | 描述 |
160
161
  |------|------|--------|------|
161
- | `cursorFeedback.systemNotification` | boolean | `true` | AI 请求反馈且 IDE 未聚焦时弹出系统通知 |
162
+ | `cursorFeedback.systemNotification` | boolean | `true` | 插件通知(主开关):AI 请求反馈时自动弹出反馈面板。关闭后本窗口完全静默——不弹面板、不抢焦点、也不推送消息到本窗口 |
163
+ | `cursorFeedback.osNotification` | boolean | `true` | 切到后台时提醒(子项):IDE 窗口未聚焦时才弹系统原生通知。关闭后即使切走也不弹(面板照常弹出) |
162
164
  | `cursorFeedback.notificationSound` | boolean | `true` | 系统通知附带提示音 |
163
165
 
164
166
  > macOS 说明:通知通过 `osascript` 发送。如果看不到通知,请在 系统设置 → 通知 中允许"脚本编辑器"(Script Editor)发送通知。
@@ -199,7 +201,38 @@ npm install -g cursor-feedback
199
201
  | `MCP_FEEDBACK_TIMEOUT` | `300` | 超时时间(秒),默认 5 分钟 |
200
202
  | `MCP_AUTO_RETRY` | `true` | 超时后是否提示 AI 自动重试。设为 `false` 可禁用自动重试指示 |
201
203
 
202
- > **超时机制**:如果用户在超时时间内没有响应,AI 会收到超时通知。默认情况下,返回消息会包含重试指示,AI 会自动重新调用 feedback 工具继续等待。如果您不希望 AI 自动重试,可以设置 `MCP_AUTO_RETRY=false`。
204
+ > **超时续期**:超时后默认返回续期提示,AI 会自动再次调用 feedback 继续等待;不想自动续期可设 `MCP_AUTO_RETRY=false`。也可在反馈面板顶部「超时续期」开关随时切换(优先级:面板 > env > 默认开)。
205
+
206
+ ### 飞书通知配置
207
+
208
+ 两种方式都行——但都要先在飞书后台把机器人配好:开启机器人能力、申请权限、配置**事件订阅**(长连接方式 + `im.message.receive_v1` 事件)。完整步骤见[飞书配置教程](./docs/feishu-setup.md):
209
+
210
+ - **用 Cursor**:在插件面板顶部「通知设置」图标里填飞书凭证。
211
+ - **用其他 MCP host**(没有这个插件面板的 Agent 工具):在 `mcp.json` 的 `env` 里配置:
212
+
213
+ ```json
214
+ {
215
+ "mcpServers": {
216
+ "cursor-feedback": {
217
+ "command": "npx",
218
+ "args": ["-y", "cursor-feedback@latest"],
219
+ "env": {
220
+ "FEISHU_APP_ID": "cli_xxxxxxxx",
221
+ "FEISHU_APP_SECRET": "your_app_secret"
222
+ }
223
+ }
224
+ }
225
+ }
226
+ ```
227
+
228
+ | 环境变量 | 默认值 | 描述 |
229
+ |---------|--------|------|
230
+ | `FEISHU_APP_ID` | - | 飞书应用 App ID(形如 `cli_xxxxxxxx`) |
231
+ | `FEISHU_APP_SECRET` | - | 飞书应用 App Secret |
232
+ | `FEISHU_ENABLED` | `true` | 是否推送反馈到飞书,设 `false` 关闭 |
233
+ | `FEISHU_ACK` | `true` | 收到你的回复后是否回「Get」表情回执,设 `false` 关闭 |
234
+
235
+ > 优先级:**插件面板(填了凭证)> 这里的 env > 默认**。面板里填了 App ID/Secret 就以面板为准;没填则回退到 env。首次仍需在飞书里给机器人发一条消息完成绑定。
203
236
 
204
237
  ## 🏗️ 架构
205
238