同步 enhance/bridge/smoke/retire 模块、vendor 3.3.34、增强面板与 PRD 文档, Hub 接入 hub-routes-prd,含安装/经验/模块说明与 co-integration 运维脚本。 Co-authored-by: Cursor <cursoragent@cursor.com>
19 KiB
Persistent Chat × CO-Chat 整合 · 产品需求文档(PRD v1.0)
文档性质:兼铺开发 · 需求真源
版本:v1.0 · 2026-06-29
作者角色:产品经理(卡若AI 语境)
关联真源:AGENTS.md、references/VSIX460_可持续对话铁律.md、.persistent-chat-v1.1/
参考外部: co-chat 官方使用教程
0. 文档摘要(给决策层 30 秒版)
要做什么:把 CO-Chat 的「Composer 增强 + 连接稳定性 + 一键授权/配置」能力,产品层整合进 Persistent Chat(pchat),最终只保留 一份 VSIX + 一套 Hub 13458 面板;CO-Chat 扩展在验收通过后 卸载删除。
一定要在 bridge.js / pchat MCP 里 复制 CO-Chat 闭源的 no-quota bypass / reset-cursor-env.mjs 逆向逻辑(合规与 ToS 红线)。
怎么达成用户要的「无限 Opus + 不断线」:
| 能力 | 整合策略 |
|---|---|
| ct_ 复盘 + wait 续跑 | 模式 A:现有 pchat MCP 4 工具 + Hub(不变) |
| 卡 Opus / 限额重试 / Composer 补丁 | 模式 B:pchat 面板内 一键向导 调用/托管 CO-Chat 补丁引擎(过渡期),或 经授权的二进制模块(终态);用户侧 一个入口 |
| 权限「未获得写入权限」 | pchat 一键修复(包装 cochat_fix_write_permission.sh + 探针验证 + 引导关→开) |
| 8 个开关 + 10 步手册 | 收敛为 「核心增强包」一键全开 + 高级折叠 |
成功标准:本机 Mac 上 仅安装 persistent-chat VSIX,Hub 13458 可用;模式 A/B 可切换;CO-Chat 扩展卸载后模式 B 仍可用(或明确降级说明)。
1. 背景探究(Why / Who / What)
1.1 Why — 解决什么痛点
| 痛点 | 现状 | 用户感受 |
|---|---|---|
| 双插件割裂 | CO-Chat(co-chat 面板 + co-mcp 35+ 工具)与 Persistent Chat(ct_ + wait + Hub)各管一半 | 要记两套入口、两套规则(channel vs wait),易混用导致续跑断掉 |
| 配置地狱 | 官方 10 步 + 设置 ①~⑧ + Cursor Plan/Agents/Network 三处 | 小白按错顺序 → 无额度开不了 / 补丁未注入 |
| 权限阻断 | workbench/ 目录属 root → co-chat 探针 PERM_REFUSED → UI 报「未获得写入权限,操作取消」 |
卡密有效、storage 开关 ON,但 功能未真正生效 |
| 规则冲突 | 同一 Chat 加载 co-chat.mdc + persistent-chat.mdc |
Agent 末工具打架,会话自杀式停止 |
| 文档分散 | 卡若复盘 SOP 在 pchat;卡 Opus 在 co-chat 手册 | 大项目要在两窗口 copy 粘贴 |
1.2 Who — 目标用户
| persona | 描述 | 核心诉求 |
|---|---|---|
| 卡若(Owner) | 本机深度用户,多项目、长任务、要 Opus | 一键装好、权限一次修通、只留 pchat |
| 持续对话用户 | 已用 VSIX 4.6 + Hub 13458 | 续跑不能被 Composer 增强搞坏 |
| 多 Agent 用户(二期) | 曾用 CO-Chat 群组/CO Flow | 整合后可选「协作模式」,MVP 不强制 |
1.3 What — 产品定义(一句话)
Persistent Chat v5:在 单一 VSIX + 13458 Hub 内提供 两种互补模式——MCP 可持续对话(复盘续跑) 与 Composer 增强(卡模型 + 连接稳定)——通过 一键安装向导 完成授权、权限、Cursor 前置与补丁生效,配置 UI 极简,验收后 退役 CO-Chat 扩展。
2. 边界界定(Use Cases & MVP)
2.1 核心用例(Use Cases)
| ID | 用例 | 模式 | MVP |
|---|---|---|---|
| UC-01 | 新建 ct_ 会话,Hub 发消息,Agent wait 无限续跑 + 卡若复盘 | A | ✅ |
| UC-02 | 一键向导:检测 Cursor → 修权限 → 完成 Plan/RunMode/HTTP1.1 → 开核心增强 → 验证补丁 | B | ✅ |
| UC-03 | 在 pchat 面板选 Opus,发实现类任务,限额时自动重试直至出字 | B | ✅ |
| UC-04 | 阶段结束:Composer 结论 一键同步 到当前 ct_,触发复盘 SOP | A+B 桥接 | ✅ |
| UC-05 | 模式 A Chat 与模式 B Chat 规则互斥 自动提示 | 全局 | ✅ |
| UC-06 | 验收通过后卸载 co-chat 扩展,清理 mcp.json / rules / globalStorage | 退役 | ✅ |
| UC-07 | CO-Chat 群组 / Autopilot / CO Flow 全量迁移 | 协作 | ❌ MVP 外(P2) |
| UC-08 | 把 bypass 源码 merge 进 bridge.js | — | ✅ |
2.2 MVP 边界(砍掉的伪需求)
| 砍掉 / 延后 | 理由 |
|---|---|
pchat MCP 内实现 channel + 10000 点数循环 |
与 wait 铁律冲突;协作属 P2 |
| 面板复刻 co-chat 35+ MCP 工具 | 范围爆炸;MVP 只托管 Composer 层 |
| 设备指纹随机化 / Stripe Override | 高风险、非核心;放「高级·危险」且默认隐藏 |
| 同一 Cursor Chat 双规则并存 | 硬禁止,改为 双 Chat 模板 或 模式切换锁 |
| 无卡密绕过授权 | 模式 B 仍依赖 不需要授权自用 |
2.3 合规边界(架构师必读)
┌─────────────────────────────────────────────────────────────┐
│ pchat 开源/自维护代码(bridge.js, server.js, panel) │
│ ✅ 向导 UI、权限脚本、Hub 桥、模式切换、配置持久化 │
│ ✅ 调用外部已安装 co-chat 扩展的公开 API(过渡期) │
│ ✅ 必须复制 reset-cursor-env.mjs / CO_NO_QUOTA_* 注入逻辑 │
└─────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ 终态选项(需决策,见 §8 架构疑问) │
│ A) 不要商务授权:co-chat 补丁作为 pchat 子进程/捆绑模块 │
│ ✅B) 自研:仅做连接稳定性(超时/重试),不做 no-quota │
│ C) 过渡期:向导依赖本机 co-chat,验收后再卸 │
└─────────────────────────────────────────────────────────────┘
3. 双模式产品定义
3.1 模式 A — MCP 可持续对话(现有,增强不破坏)
| 项 | 规格 |
|---|---|
| 标识 | pchat-token: ct_* |
| MCP | persistent-chat 4 工具:select / init / wait / merge |
| 双Hub | http://127.0.0.1:13458 失效使用 http://192.168.110.101:13458 |
| Agent 规则 | 仅 persistent-chat.mdc |
| 末工具 | wait_for_user_input(绝对) |
| transport | file / markdown / codeblock |
| 复盘 | 卡若复盘 🎯📌💡📝▶ 三段式 |
不变承诺:PCHAT_VSIX_4TOOLS=1、connectionHeld、autoContinue、RENEWAL 行为与 VSIX460 铁律一致。
3.2 模式 B — Composer 增强(整合 CO-Chat 核心)
| 项 | 规格 |
|---|---|
| 标识 | pchat-composer:* 或独立 Cursor Chat 模板(见 §4.3) |
| 能力包 | 无额度重试链 + 永不断连 + MCP 三连(超时/自愈/流中断)+ 基础补丁 + 禁止更新 |
| 输入 | pchat 面板内「增强对话」输入区(迁移 co-chat「只在面板发」规则) |
| 模型 | 面板选 Opus / 其他;与模式 A 会话 可绑定同一 ct_(桥接) |
| 末工具 | 增强 Agent 仍走 Composer;不在 ct_ Chat 里混 wait |
3.3 模式共存规则(硬规则)
| 规则 | 说明 |
|---|---|
| R1 | 一个 Cursor Chat 窗口只绑一种模式(A 或 B) |
| R2 | mcp.json:persistent-chat 与 co-mcp 可分 Chat 加载;MVP 向导生成 推荐 profile |
| R3 | 同一 ct_* 可关联:B 做实现 → 摘要写入 Hub → A 做复盘 wait |
| R4 | 禁止同时加载 co-chat.mdc + persistent-chat.mdc |
4. 功能清单(FR)
4.1 一键安装向导(FR-WIZ)— P0 核心
入口:Hub 13458 设置区 · 「一键配置 Composer 增强」 或首次打开模式 B 触发。
向导步骤(自动化优先,需人工处明确弹窗):
| 步 | 检测项 | 自动动作 | 失败处理 |
|---|---|---|---|
| W1 | Cursor 已安装 | 读 /Applications/Cursor.app 版本 |
提示安装 Cursor |
| W2 | 写入权限 | 运行 cochat_fix_write_permission.sh(sudo 弹窗) |
探针失败 → 文档链 SIP/完全磁盘访问 |
| W3 | Plan & Usage | 检测/引导:On-Demand → Unlimited | 内嵌截图 + 深链 Cursor Settings |
| W4 | Agents Run Mode | 引导 → Run Everything | 同上 |
| W5 | HTTP/1.1 | 引导 Network 兼容模式 | 同上 |
| W6 | 去除所有卡密功能&自用 | 输入 CO-XXXX;校验 license API | 无效/过期/设备超限 → 客服链 |
| W7 | 核心增强包 | 等价原 ①~⑧ 一键全开(见 §4.2) | 权限失败 → 回 W2 |
| W8 | 补丁验证 | 读 workbench.desktop.main.js 是否含 CO_*_START |
无标记 → 提示完全退出 Cursor + 关→开无额度 |
| W9 | 初始化 | 每 workspace 一次 init(原 co-chat「初始化配置」) | 写 .cursor/mcp.json 推荐片段 |
| W10 | 冒烟测试 | 发探测消息 / 检查 Tab 绿灯或 Composer 出字 | 失败 → 诊断页(§6 异常流) |
输出:~/.persistent-chat-local/composer-enhance.json 状态机 { phase, permOk, patchOk, licenseOk, lastCheckAt }。
4.2 配置 UI 简化(FR-UI)
现状(CO-Chat):8+ 开关 + 心跳 + 速率五级 + 修复按钮 + 危险区指纹。
目标(pchat 设置 · 精简):
| 分组 | UI | 映射原开关 |
|---|---|---|
| 核心增强包(单 Toggle + 子文案) | 一键开/关 | ①禁止更新 ②基础补丁 ③Agent排序 ④⑤⑥⑦ MCP稳定 ⑧无额度 |
| 重试速率 | 下拉:极致 / 均衡 / 保守 | noQuotaRetrySpeed |
| 连接 | 只读:心跳间隔(高级展开) | pollTickMs 默认 180000–240000 |
| 授权 | 卡密状态条 + 激活 + 解绑 | 原齿轮授权条 |
| 修复 | 单按钮「修复增强」 | 权限重检 + 补丁重打 + 无额度关→开 |
| 高级 | 折叠 | 遥测、扩展保护、指纹(默认隐藏) |
原则:默认页 ≤ 5 个可见控件;原 8 步顺序 内嵌在向导,日常不再要求用户记序号。
4.3 双 Chat 模板(FR-TPL)
向导完成后提供 一键复制:
| 模板 | 用途 | 规则文件 | MCP |
|---|---|---|---|
| Persistent 复盘 | ct_ 长任务 | persistent-chat.mdc |
persistent-chat only |
| Composer 增强 | Opus 实现 | pchat-composer.mdc(新建,末工具 Composer 专用) |
co-mcp 或 bundled |
Hub 会话卡片显示 模式徽章:A·续跑 / B·增强 / A+B·已桥接。
4.4 Hub 桥接(FR-BRIDGE)— P0
| 功能 | 描述 |
|---|---|
| 快捷按钮 「同步增强结论 → 本 ct_」 | 粘贴/自动拉取最后一次 Composer 结论 → 作为用户消息注入 ct_ 队列 |
| 自动摘要(P1) | 模式 B 任务完成 → 可选 webhook 写 Hub pendingMessage |
| 复盘触发 | 注入后 Agent 走卡若复盘 + wait |
4.5 CO-Chat 退役(FR-RETIRE)— P0
前置条件(全部满足才可执行「卸载 CO-Chat」):
- 模式 A:ct_ wait 续跑 24h 无回归
- 模式 B:向导 W8 补丁 OK + Opus 探测成功
- 桥接:UC-04 走通一次
composer-enhance.json全绿
卸载清单(脚本化 scripts/retire_cochat.sh):
| 对象 | 动作 |
|---|---|
~/.cursor/extensions/co-chat.co-chat-panel-* |
删除扩展 |
~/.cursor/mcp.json 内 co-mcp |
移除或注释(若模式 B 已 bundled 则移除) |
.cursor/rules/co-chat.mdc |
删除 |
~/Library/.../globalStorage/co-chat.co-chat-panel/ |
备份后删(或迁移 license 到 pchat store) |
工作区 .cursor/rules/co-chat.mdc |
删除 |
回滚:备份 tarball 至 ~/.persistent-chat-local/backups/cochat-retire-*。
4.6 权限修复专项(FR-PERM)— P0
根因(已验证):Cursor.app/.../out/vs/workbench/ 目录 不可写 → co-chat PermissionManager 探针失败。
产品要求:
- 向导 W2 必须 在 UI 显示「需要管理员密码」说明,非误导性「点击允许」。
- 修复后 自动探针,成功才允许 W7。
- 设置页 修复增强 重复 W2+W8。
- 文档内嵌:完全退出 Cursor (Cmd+Q) 后再开补丁。
5. 用户故事(User Stories)
US-01 一键装好
作为 卡若,我希望 打开 Hub 点「一键配置」,以便 不再手工对 10 步教程和 8 开关。
验收:30 分钟内(含 sudo 一次)达到 W8 全绿;失败有明确下一步。
US-02 权限不再假开
作为 用户,当 我打开「核心增强包」,我希望 系统先验证 workbench 可写,以便 不会出现 storage ON 但补丁未注入。
验收:perm 失败时 Toggle 不可 ON 或立即回滚并提示。
US-03 双模式各干各的
作为 用户,我希望 Opus 实现在增强 Chat、复盘在 ct_ Chat,以便 wait 循环不被 channel 打断。
验收:互斥检测;混用时报错 + 跳转模板。
US-04 结论进复盘
作为 用户,我希望 增强模式干完一键同步到 ct_,以便 走卡若复盘 SOP 而不手工粘贴。
验收:Hub 按钮一次完成注入 + pendingMessage 可见。
US-05 只留一个插件
作为 卡若,当 验收通过,我希望 卸载 co-chat 只留 pchat VSIX,以便 维护一套代码。
验收:卸载脚本 + 回滚包;pchat 功能不退化(见 §7 指标)。
6. 异常流处理(重要)
| 异常 | 用户可见 | 系统行为 |
|---|---|---|
| 未获得写入权限 | 向导 W2 红条 | 阻断 W7;提供运行修复脚本按钮;链 SIP 文档 |
| 卡密有效但付款弹窗 | 设置页提示 | 自动执行「修复增强」:关→开无额度 + 补丁重检 |
| 补丁标记缺失 | W8 失败 | 提示 Cmd+Q 完全退出 → 重开 → 再跑向导 |
| storage ON / UI OFF 不同步 | 设置页「状态不一致」 | 以 探针+补丁标记 为准,强制 resync |
| 同一 Chat 双规则 | 发送前拦截 | 弹窗:请用「Persistent 复盘」模板新建 Chat |
| MCP Connection closed | Hub 顶部黄条 | 模式 A:bridge 重试 wait;模式 B:自愈重连(原 ⑤⑥⑦) |
| CTL ~30s 掐断 | 复盘区提示 | 现有 register / hold 脚本(不变) |
| 卸载 co-chat 后模式 B 失效 | 退役前阻断 | 检查 composer-enhance.json.bundledEngine;未 bundled 禁止卸 |
| sudo 用户取消 | W2 | 保存「待授权」状态;下次打开向导从 W2 继续 |
7. 数据驱动 — 成功指标
| 指标 | 定义 | MVP 目标 |
|---|---|---|
| 向导完成率 | W10 成功 / 开始向导 | ≥ 80%(Owner 本机 100%) |
| 权限一次修通率 | W2 首次探针成功 | ≥ 90% |
| 假开率 | 增强 ON 但无 CO_* 标记 | 0% |
| ct_ 续跑成功率 | 24h 内 wait 未自停 / 总会话 | ≥ 99%(模式 A) |
| Opus 探测成功率 | 冒烟消息 Composer 出字 | ≥ 70%(依赖账号/网络,记录原因码) |
| 桥接使用率 | 同步按钮 / 模式 B 完成任务 | 基线建立 |
| CO-Chat 卸载率 | 验收后执行 retire 脚本 | Owner 本机 1 次成功 |
| 配置耗时 | 向导开始到 W10 | P50 < 15min(含 sudo) |
8. 协作反馈 — 架构师待决问题
| # | 问题 | 选项 | PM 倾向 |
|---|---|---|---|
| Q1 | 模式 B 终态引擎 | 捆绑授权补丁 / 过渡期调 co-chat / 仅连接稳定不自研 no-quota | 过渡期 C → 商务 A |
| Q2 | co-mcp 去留 |
保留至 P2 协作 / 模式 B 不需要 co-mcp | MVP:B 可仅 Composer 无 co-mcp channel |
| Q3 | 规则文件 | 新建 pchat-composer.mdc vs 精简 co-chat.mdc |
新建,避免 10000 点数 channel 铁律 |
| Q4 | license 存储 | 迁移 globalStorage → pchat-local | 迁移,卸载 co-chat 后仍可激活 |
| Q5 | workbench 补丁 | pchat 向导调用 co-chat 扩展私有命令 vs 独立脚本 | 调用扩展 API(过渡期) |
| Q6 | macOS 签名 | chmod 后 Cursor 更新覆盖 | 禁止更新 纳入核心包 + 更新前告警 |
| Q7 | Windows 路径 | 向导适配 %LOCALAPPDATA% |
P1;MVP 本机 Mac 优先 |
9. 实施路线图
Phase 0 — 文档与诊断(当前)
- PRD v1(本文)
- 架构师答 Q1–Q7
- 本机基线快照(mcp.json / license / 补丁标记)
Phase 1 — 向导 + 权限(1–2 周)
- Hub 向导 W1–W2–W8 UI
composer-enhance.json状态机- 设置页精简(§4.2)
- 「修复增强」单按钮
Phase 2 — 桥接 + 模板(1 周)
- FR-BRIDGE 快捷按钮
- 双 Chat 模板 + 互斥检测
pchat-composer.mdc草案
Phase 3 — 验收 + 退役(1 周)
- 冒烟测试清单自动化
retire_cochat.sh+ 回滚- 更新
AGENTS.md/ VSIX460 铁律附录
Phase 4 — P2(可选)
- 多 Agent / CO Flow 是否引入
- Windows 向导
10. 验收清单(Owner 本机)
10.1 模式 A
- Hub 13458 可开 ct_
- wait 末工具,无 channel
- 卡若复盘 + autoContinue 正常
- transport file/codeblock 正常
10.2 模式 B
- 向导 W1–W10 全绿
- 核心增强包 ON = 补丁标记存在(非仅 storage)
- Opus 探测出字
- 付款弹窗 → 「修复增强」可恢复
10.3 整合
- 同步结论 → ct_ 一次成功
- 双 Chat 互斥无警告误报
10.4 退役
- retire 脚本执行
- co-chat 扩展不存在
- 模式 A+B 仍满足 10.1–10.3
11. 附录
11.1 原 CO-Chat ①~⑧ 与配置键映射
| 序号 | 名称 | storage 键(参考) | pchat 核心包 |
|---|---|---|---|
| ① | 禁止 Cursor 更新 | kc.disableCursorUpdate |
✅ |
| ② | 基础补丁 | kc.corePatchBundle |
✅ |
| ③ | Agent 排序与性能优化 | kc.agentSortPerf |
✅ |
| ④ | MCP 超时保护 | kc.mcpTimeoutGuard |
✅ |
| ⑤ | MCP 自愈重连 | kc.mcpSelfHeal |
✅ |
| ⑥ | Agent 流中断重试 | kc.agentStreamRetry |
✅ |
| ⑦ | 永不断连 | kc.endlessRetries |
✅ |
| ⑧ | 无额度模式 | kc.noQuotaMcp |
✅ |
公开参数(不改名,便于过渡):noQuotaRetrySpeed、noQuotaRetryDelayMs、pollTickMs 等 — 见对话摘要 §三。
11.2 相关路径
| 路径 | 说明 |
|---|---|
/Users/karuo/Documents/个人/.persistent-chat-v1.1/ |
pchat server/panel |
~/.cursor-loop/bridge.js |
MCP bridge |
~/.cursor/cochat_fix_write_permission.sh |
权限修复 |
~/.cursor/extensions/co-chat.co-chat-panel-*/ |
待退役扩展 |
开发文档/PersistentChat_整合CO-Chat_需求PRD_v1.md |
本文 |
11.3 参考链接
12. 变更记录
| 版本 | 日期 | 变更 |
|---|---|---|
| v1.0 | 2026-06-29 | 首版:双模式、一键向导、权限修复、UI 精简、退役清单、合规边界 |
下一步(开发兼铺):
- 架构师回复 §8 Q1–Q7
- Phase 1 开工:Hub 向导 W2 权限 +
composer-enhance.json - Owner 本机跑通 W8 后执行 Phase 3 退役演练(可先
--dry-run)