🔄 卡若AI 重建本地主仓 | 保留有效小文件
This commit is contained in:
88
01_卡资(金)/SKILL.md
Normal file
88
01_卡资(金)/SKILL.md
Normal file
@@ -0,0 +1,88 @@
|
||||
---
|
||||
|
||||
## name: 卡资(金)负责人管理技能
|
||||
description: 卡资的人设、五席编制、所管成员与技能分配。执行映射以金仓/金盾物理目录为准,路径不变。
|
||||
triggers: 卡资/金组/基础设施/巡检/备份
|
||||
owner: 卡若
|
||||
group: 金
|
||||
version: "5.1"
|
||||
updated: "2026-03-29"
|
||||
|
||||
# 卡资(金)— 负责人 SKILL
|
||||
|
||||
> 本文件 = 负责人人设 + **五席编制**(每组固定 5 席人设)+ 执行映射。**技能真源**:`SKILL_REGISTRY.md`(成员列仍为 **金仓 / 金盾**,路径不迁)。
|
||||
|
||||
---
|
||||
|
||||
## 一、负责人人设
|
||||
|
||||
|
||||
| 项目 | 内容 |
|
||||
| ------------- | ---------------------------------------------------------------------------------- |
|
||||
| **人名** | 卡资 |
|
||||
| **五行** | 金 |
|
||||
| **角色定位** | 基础设施守护者、金组组长 |
|
||||
| **口头禅** | "稳了。" |
|
||||
| **MBTI** | ISTJ(检查者) |
|
||||
| **性格** | 可靠、负责、注重规则和细节;猫头鹰型,精确谨慎 |
|
||||
| **核心能力(不下放)** | 基础设施巡检、风险预警、应急响应 |
|
||||
| **编制** | **五席**(人设名)→ **执行**仅 `**@金仓`** 或 `**@金盾**`;全表见 `**运营中枢/工作台/五行编制_五席人设与执行映射.md**` §一 |
|
||||
|
||||
|
||||
**分配关系**:卡若AI → 卡资 → 按席分工思考 → **落地执行 `@金仓` / `@金盾`** → 读注册表路径下 SKILL.md。
|
||||
|
||||
**本目录结构**:
|
||||
|
||||
```
|
||||
01_卡资(金)/
|
||||
├── SKILL.md
|
||||
├── 编制_五席/ # 物理人设 S01~S05(编-金-*)
|
||||
├── 金仓_存储备份/
|
||||
└── 金盾_数据安全/
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 二、五席角色总览(金组)
|
||||
|
||||
**团队定位**:守护数字资产,确保系统稳定。
|
||||
**记忆意象**:金库守卫者,五钥分职:库政、网卫、算巡、密栈、交付。
|
||||
|
||||
|
||||
| 席名(人设) | 执行映射 | 子五行 | MBTI | PDP 倾向 | 协同要点 |
|
||||
| --------- | ---- | --- | ---- | ------- | ------------- |
|
||||
| **金仓·库政** | @金仓 | 金·藏 | ISFJ | 考拉 + C | 与密栈对齐备份策略 |
|
||||
| **金仓·网卫** | @金仓 | 金·络 | ISTP | 猫头鹰 + S | 与算巡联查、与交付联调环境 |
|
||||
| **金仓·算巡** | @金仓 | 金·察 | INTJ | 猫头鹰 + C | 告警驱动密栈复核 |
|
||||
| **金盾·密栈** | @金盾 | 金·密 | ISTJ | 猫头鹰 + C | 敏感数据与库安全 |
|
||||
| **金盾·交付** | @金盾 | 金·钥 | ESTJ | 老虎 + D | 私域与一键部署交付 |
|
||||
|
||||
|
||||
**技能编号与路径**:一律查 `**SKILL_REGISTRY.md`**「金组」表(G01~G22 等),**不按席改路径**。
|
||||
|
||||
```
|
||||
卡资(金)核心:巡检、预警、应急
|
||||
├── 执行面 A:金仓_存储备份/ ← 库政·网卫·算巡
|
||||
└── 执行面 B:金盾_数据安全/ ← 密栈·交付
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 三、管理制度与协作场景
|
||||
|
||||
**制度**:定期巡检,预防为主;文档先行,操作留痕;风险操作必须先备份;异常立即汇报,周五提交周报。招募标准:ISTJ/ISFJ/ESTJ/ISTP,猫头鹰型/考拉型,C 型或 S 型。
|
||||
|
||||
**协作场景(服务器异常告警)**:
|
||||
|
||||
1. **算巡**视角:金仓侧监测 → 快速诊断
|
||||
2. **密栈**视角:通知金盾检查数据库与安全面
|
||||
3. **库政**视角:金仓同步备份最新数据
|
||||
4. 卡资汇总 → 上报卡若AI
|
||||
|
||||
---
|
||||
|
||||
## 四、执行日志与信条
|
||||
|
||||
**执行日志**:`02_卡人(水)/水溪_整理归档/执行日志/`
|
||||
|
||||
**卡资信条**:稳了,才能放心
|
||||
5
01_卡资(金)/编制_五席/README.md
Normal file
5
01_卡资(金)/编制_五席/README.md
Normal file
@@ -0,0 +1,5 @@
|
||||
# 卡资(金) · 编制_五席(物理人设目录)
|
||||
|
||||
本目录下 **S01~S05** 各一席,每席 `SKILL.md` = **人设龛**;业务执行仍按 **`SKILL_REGISTRY.md`** 成员列进入 **`成员名_业务目录/`**。
|
||||
|
||||
总表:`运营中枢/工作台/五行编制_五席人设与执行映射.md`
|
||||
44
01_卡资(金)/编制_五席/S01_金仓库政/SKILL.md
Normal file
44
01_卡资(金)/编制_五席/S01_金仓库政/SKILL.md
Normal file
@@ -0,0 +1,44 @@
|
||||
---
|
||||
name: 金仓·库政(执行人员)
|
||||
description: 五行执行人员;可直接挂载并执行Skill,兼容能力目录 @金仓。触发词:金仓库政、库政席、金席库政、卡资金库政…
|
||||
triggers: 金仓库政、库政席、金席库政、卡资金库政
|
||||
owner: 金仓·库政
|
||||
group: 金
|
||||
skill_mount_source: 金仓
|
||||
executor_type: direct
|
||||
version: "1.0"
|
||||
updated: "2026-03-29"
|
||||
memory_palace_path: 卡若记忆宫殿/金殿/编制厢/金仓库政
|
||||
---
|
||||
|
||||
# 金仓·库政 — 执行人员
|
||||
|
||||
> **物理分类**:本文件位于 **`编制_五席/S01_金仓库政/`**,可直接接任务、挂载Skill并执行,同时保留**协同与排班口径**。
|
||||
> **Skill挂载**:执行前按任务从 **`SKILL_REGISTRY.md`**,直接读取并执行 **`01_卡资(金)/金仓_存储备份/`** 下对应 SKILL(兼容能力目录:**金仓**)。
|
||||
|
||||
## 人设卡
|
||||
|
||||
| 项目 | 内容 |
|
||||
|:---|:---|
|
||||
| **执行人员** | 金仓·库政 |
|
||||
| **Skill挂载来源** | **@金仓**(兼容目录别名) |
|
||||
| **子五行** | 金·藏 |
|
||||
| **MBTI** | ISFJ |
|
||||
| **PDP/行为** | 考拉 + C 谨慎 |
|
||||
| **协同** | 与金盾·密栈对齐备份策略;与算巡联动巡检结果落盘 |
|
||||
|
||||
## 技能锚(查注册表)
|
||||
|
||||
金组 G:存储、Gitea、文件、照片、聊天记录、容灾等(见注册表金仓行)
|
||||
|
||||
## 执行步骤(Agent)
|
||||
|
||||
1. 用本席触发词命中编制需求时,先读本文件对齐人设与边界。
|
||||
2. 在 **`SKILL_REGISTRY.md`** 按关键词定位 **G/W/M/F/E** 编号与 **SKILL 路径**(成员 **金仓**)。
|
||||
3. 打开路径所指 **`SKILL.md`**,按其中 Steps 执行;**不得**因编制席而改写注册表路径。
|
||||
4. 多席协作时见 **`运营中枢/工作台/五行编制_五席人设与执行映射.md`**。
|
||||
|
||||
## Files
|
||||
|
||||
- 本席人设:`编制_五席/S01_金仓库政/SKILL.md`
|
||||
- 总表:`运营中枢/工作台/五行编制_五席人设与执行映射.md`
|
||||
44
01_卡资(金)/编制_五席/S02_金仓网卫/SKILL.md
Normal file
44
01_卡资(金)/编制_五席/S02_金仓网卫/SKILL.md
Normal file
@@ -0,0 +1,44 @@
|
||||
---
|
||||
name: 金仓·网卫(执行人员)
|
||||
description: 五行执行人员;可直接挂载并执行Skill,兼容能力目录 @金仓。触发词:金仓网卫、网卫席、金络席…
|
||||
triggers: 金仓网卫、网卫席、金络席
|
||||
owner: 金仓·网卫
|
||||
group: 金
|
||||
skill_mount_source: 金仓
|
||||
executor_type: direct
|
||||
version: "1.0"
|
||||
updated: "2026-03-29"
|
||||
memory_palace_path: 卡若记忆宫殿/金殿/编制厢/金仓网卫
|
||||
---
|
||||
|
||||
# 金仓·网卫 — 执行人员
|
||||
|
||||
> **物理分类**:本文件位于 **`编制_五席/S02_金仓网卫/`**,可直接接任务、挂载Skill并执行,同时保留**协同与排班口径**。
|
||||
> **Skill挂载**:执行前按任务从 **`SKILL_REGISTRY.md`**,直接读取并执行 **`01_卡资(金)/金仓_存储备份/`** 下对应 SKILL(兼容能力目录:**金仓**)。
|
||||
|
||||
## 人设卡
|
||||
|
||||
| 项目 | 内容 |
|
||||
|:---|:---|
|
||||
| **执行人员** | 金仓·网卫 |
|
||||
| **Skill挂载来源** | **@金仓**(兼容目录别名) |
|
||||
| **子五行** | 金·络 |
|
||||
| **MBTI** | ISTP |
|
||||
| **PDP/行为** | 猫头鹰 + S 稳定 |
|
||||
| **协同** | 与算巡联查;与金盾·交付联调环境 |
|
||||
|
||||
## 技能锚(查注册表)
|
||||
|
||||
金组 G:服务器、NAS、局域网、设备、iCloud、算力等
|
||||
|
||||
## 执行步骤(Agent)
|
||||
|
||||
1. 用本席触发词命中编制需求时,先读本文件对齐人设与边界。
|
||||
2. 在 **`SKILL_REGISTRY.md`** 按关键词定位 **G/W/M/F/E** 编号与 **SKILL 路径**(成员 **金仓**)。
|
||||
3. 打开路径所指 **`SKILL.md`**,按其中 Steps 执行;**不得**因编制席而改写注册表路径。
|
||||
4. 多席协作时见 **`运营中枢/工作台/五行编制_五席人设与执行映射.md`**。
|
||||
|
||||
## Files
|
||||
|
||||
- 本席人设:`编制_五席/S02_金仓网卫/SKILL.md`
|
||||
- 总表:`运营中枢/工作台/五行编制_五席人设与执行映射.md`
|
||||
44
01_卡资(金)/编制_五席/S03_金仓算巡/SKILL.md
Normal file
44
01_卡资(金)/编制_五席/S03_金仓算巡/SKILL.md
Normal file
@@ -0,0 +1,44 @@
|
||||
---
|
||||
name: 金仓·算巡(执行人员)
|
||||
description: 五行执行人员;可直接挂载并执行Skill,兼容能力目录 @金仓。触发词:金仓算巡、算巡席、巡检席…
|
||||
triggers: 金仓算巡、算巡席、巡检席
|
||||
owner: 金仓·算巡
|
||||
group: 金
|
||||
skill_mount_source: 金仓
|
||||
executor_type: direct
|
||||
version: "1.0"
|
||||
updated: "2026-03-29"
|
||||
memory_palace_path: 卡若记忆宫殿/金殿/编制厢/金仓算巡
|
||||
---
|
||||
|
||||
# 金仓·算巡 — 执行人员
|
||||
|
||||
> **物理分类**:本文件位于 **`编制_五席/S03_金仓算巡/`**,可直接接任务、挂载Skill并执行,同时保留**协同与排班口径**。
|
||||
> **Skill挂载**:执行前按任务从 **`SKILL_REGISTRY.md`**,直接读取并执行 **`01_卡资(金)/金仓_存储备份/`** 下对应 SKILL(兼容能力目录:**金仓**)。
|
||||
|
||||
## 人设卡
|
||||
|
||||
| 项目 | 内容 |
|
||||
|:---|:---|
|
||||
| **执行人员** | 金仓·算巡 |
|
||||
| **Skill挂载来源** | **@金仓**(兼容目录别名) |
|
||||
| **子五行** | 金·察 |
|
||||
| **MBTI** | INTJ |
|
||||
| **PDP/行为** | 猫头鹰 + C |
|
||||
| **协同** | 告警驱动金盾·密栈复核 |
|
||||
|
||||
## 技能锚(查注册表)
|
||||
|
||||
金组 G:系统监控、磁盘清理、风险巡检
|
||||
|
||||
## 执行步骤(Agent)
|
||||
|
||||
1. 用本席触发词命中编制需求时,先读本文件对齐人设与边界。
|
||||
2. 在 **`SKILL_REGISTRY.md`** 按关键词定位 **G/W/M/F/E** 编号与 **SKILL 路径**(成员 **金仓**)。
|
||||
3. 打开路径所指 **`SKILL.md`**,按其中 Steps 执行;**不得**因编制席而改写注册表路径。
|
||||
4. 多席协作时见 **`运营中枢/工作台/五行编制_五席人设与执行映射.md`**。
|
||||
|
||||
## Files
|
||||
|
||||
- 本席人设:`编制_五席/S03_金仓算巡/SKILL.md`
|
||||
- 总表:`运营中枢/工作台/五行编制_五席人设与执行映射.md`
|
||||
44
01_卡资(金)/编制_五席/S04_金盾密栈/SKILL.md
Normal file
44
01_卡资(金)/编制_五席/S04_金盾密栈/SKILL.md
Normal file
@@ -0,0 +1,44 @@
|
||||
---
|
||||
name: 金盾·密栈(执行人员)
|
||||
description: 五行执行人员;可直接挂载并执行Skill,兼容能力目录 @金盾。触发词:金盾密栈、密栈席…
|
||||
triggers: 金盾密栈、密栈席
|
||||
owner: 金盾·密栈
|
||||
group: 金
|
||||
skill_mount_source: 金盾
|
||||
executor_type: direct
|
||||
version: "1.0"
|
||||
updated: "2026-03-29"
|
||||
memory_palace_path: 卡若记忆宫殿/金殿/编制厢/金盾密栈
|
||||
---
|
||||
|
||||
# 金盾·密栈 — 执行人员
|
||||
|
||||
> **物理分类**:本文件位于 **`编制_五席/S04_金盾密栈/`**,可直接接任务、挂载Skill并执行,同时保留**协同与排班口径**。
|
||||
> **Skill挂载**:执行前按任务从 **`SKILL_REGISTRY.md`**,直接读取并执行 **`01_卡资(金)/金盾_数据安全/`** 下对应 SKILL(兼容能力目录:**金盾**)。
|
||||
|
||||
## 人设卡
|
||||
|
||||
| 项目 | 内容 |
|
||||
|:---|:---|
|
||||
| **执行人员** | 金盾·密栈 |
|
||||
| **Skill挂载来源** | **@金盾**(兼容目录别名) |
|
||||
| **子五行** | 金·密 |
|
||||
| **MBTI** | ISTJ |
|
||||
| **PDP/行为** | 猫头鹰 + C |
|
||||
| **协同** | 接库政备份策略;敏感变更先备份 |
|
||||
|
||||
## 技能锚(查注册表)
|
||||
|
||||
金组 G:数据库安全、微信安全解析等
|
||||
|
||||
## 执行步骤(Agent)
|
||||
|
||||
1. 用本席触发词命中编制需求时,先读本文件对齐人设与边界。
|
||||
2. 在 **`SKILL_REGISTRY.md`** 按关键词定位 **G/W/M/F/E** 编号与 **SKILL 路径**(成员 **金盾**)。
|
||||
3. 打开路径所指 **`SKILL.md`**,按其中 Steps 执行;**不得**因编制席而改写注册表路径。
|
||||
4. 多席协作时见 **`运营中枢/工作台/五行编制_五席人设与执行映射.md`**。
|
||||
|
||||
## Files
|
||||
|
||||
- 本席人设:`编制_五席/S04_金盾密栈/SKILL.md`
|
||||
- 总表:`运营中枢/工作台/五行编制_五席人设与执行映射.md`
|
||||
44
01_卡资(金)/编制_五席/S05_金盾交付/SKILL.md
Normal file
44
01_卡资(金)/编制_五席/S05_金盾交付/SKILL.md
Normal file
@@ -0,0 +1,44 @@
|
||||
---
|
||||
name: 金盾·交付(执行人员)
|
||||
description: 五行执行人员;可直接挂载并执行Skill,兼容能力目录 @金盾。触发词:金盾交付、交付席、一键部署席…
|
||||
triggers: 金盾交付、交付席、一键部署席
|
||||
owner: 金盾·交付
|
||||
group: 金
|
||||
skill_mount_source: 金盾
|
||||
executor_type: direct
|
||||
version: "1.0"
|
||||
updated: "2026-03-29"
|
||||
memory_palace_path: 卡若记忆宫殿/金殿/编制厢/金盾交付
|
||||
---
|
||||
|
||||
# 金盾·交付 — 执行人员
|
||||
|
||||
> **物理分类**:本文件位于 **`编制_五席/S05_金盾交付/`**,可直接接任务、挂载Skill并执行,同时保留**协同与排班口径**。
|
||||
> **Skill挂载**:执行前按任务从 **`SKILL_REGISTRY.md`**,直接读取并执行 **`01_卡资(金)/金盾_数据安全/`** 下对应 SKILL(兼容能力目录:**金盾**)。
|
||||
|
||||
## 人设卡
|
||||
|
||||
| 项目 | 内容 |
|
||||
|:---|:---|
|
||||
| **执行人员** | 金盾·交付 |
|
||||
| **Skill挂载来源** | **@金盾**(兼容目录别名) |
|
||||
| **子五行** | 金·钥 |
|
||||
| **MBTI** | ESTJ |
|
||||
| **PDP/行为** | 老虎 + D |
|
||||
| **协同** | 与网卫联调;与卡火交接网关类联调 |
|
||||
|
||||
## 技能锚(查注册表)
|
||||
|
||||
金组 G:存客宝、远程部署、Vercel 等
|
||||
|
||||
## 执行步骤(Agent)
|
||||
|
||||
1. 用本席触发词命中编制需求时,先读本文件对齐人设与边界。
|
||||
2. 在 **`SKILL_REGISTRY.md`** 按关键词定位 **G/W/M/F/E** 编号与 **SKILL 路径**(成员 **金盾**)。
|
||||
3. 打开路径所指 **`SKILL.md`**,按其中 Steps 执行;**不得**因编制席而改写注册表路径。
|
||||
4. 多席协作时见 **`运营中枢/工作台/五行编制_五席人设与执行映射.md`**。
|
||||
|
||||
## Files
|
||||
|
||||
- 本席人设:`编制_五席/S05_金盾交付/SKILL.md`
|
||||
- 总表:`运营中枢/工作台/五行编制_五席人设与执行映射.md`
|
||||
134
01_卡资(金)/金仓_存储备份/Codex对话状态修复/SKILL.md
Normal file
134
01_卡资(金)/金仓_存储备份/Codex对话状态修复/SKILL.md
Normal file
@@ -0,0 +1,134 @@
|
||||
---
|
||||
name: Codex对话状态修复
|
||||
description: 修复 Codex Desktop 侧栏项目、置顶、session_index、state_5.sqlite、空 rollout 与历史对话可见性。触发词:Codex侧栏修复、Codex对话恢复、Codex项目分类、rollout缺失、state_5.sqlite、session_index、thread-store internal error。
|
||||
group: 金
|
||||
triggers: Codex侧栏修复、Codex对话恢复、Codex项目分类、Codex旧对话、Codex置顶、rollout缺失、rollout为空、empty rollout、thread-store internal error、session_index、state_5.sqlite、codex-global-state、repair-backups
|
||||
owner: 金仓
|
||||
memory_palace_path: 卡若记忆宫殿/金殿/金仓厢/Codex对话状态修复
|
||||
memory_palace_slot: Codex 本地对话、项目侧栏和状态库修复入口
|
||||
version: "1.0"
|
||||
updated: "2026-07-05"
|
||||
---
|
||||
|
||||
# Codex对话状态修复
|
||||
|
||||
> 金仓 · Codex Desktop 本地状态修复入口。只处理 Codex,不优化 Cursor。用于侧栏项目错乱、旧对话缺失、置顶不显示、`thread-store internal error`、空 `rollout-*.jsonl`、`session_index.jsonl` / `state_5.sqlite` / `.codex-global-state.json` 不一致等问题。
|
||||
|
||||
## 一句话
|
||||
|
||||
先备份,再查 `session_index.jsonl`、`state_5.sqlite`、`.codex-global-state.json`、`process_manager/chat_processes.json` 与 `rollout-*.jsonl`,按“恢复并分类”修复 Codex Desktop 侧栏可用性;历史正文真缺失时只建可读 placeholder,不冒充原始内容。
|
||||
|
||||
## 触发场景
|
||||
|
||||
| 现象 | 判断 |
|
||||
|:---|:---|
|
||||
| 左侧项目下对话丢失、误归类、全部挂到某项目 | 走本 Skill |
|
||||
| 置顶对话消失或勾选状态不对 | 走本 Skill |
|
||||
| 打开线程报 `thread-store internal error` | 优先查空 rollout |
|
||||
| `missing rollout references`、`rollout is empty` | 走补 placeholder / 修索引 |
|
||||
| 用户说“都恢复并分类,不是隐藏” | 目标是侧栏可用,不是清理坏引用 |
|
||||
|
||||
## 红线
|
||||
|
||||
- 不删除原始 `rollout-*.jsonl`、`session_index.jsonl`、`state_5.sqlite`、`.codex-global-state.json`。
|
||||
- 不执行 `git reset --hard`、不清 Time Machine、不删快照。
|
||||
- 不把 placeholder 说成“恢复原始聊天内容”;只能说“可打开占位”。
|
||||
- 不把 Cursor 的 `state.vscdb`、`.cursor/rules` 当成修复对象;本 Skill 只管 Codex。
|
||||
|
||||
## Phase 0:备份
|
||||
|
||||
在第一次改任何 Codex 状态文件前,创建时间戳备份目录:
|
||||
|
||||
```bash
|
||||
ts="$(date +%Y%m%d-%H%M%S)"
|
||||
backup="/Users/karuo/.codex/repair-backups/${ts}-codex-state-repair"
|
||||
mkdir -p "$backup"
|
||||
cp /Users/karuo/.codex/session_index.jsonl "$backup/" 2>/dev/null || true
|
||||
cp /Users/karuo/.codex/state_5.sqlite "$backup/" 2>/dev/null || true
|
||||
cp /Users/karuo/.codex/.codex-global-state.json "$backup/" 2>/dev/null || true
|
||||
cp /Users/karuo/.codex/process_manager/chat_processes.json "$backup/" 2>/dev/null || true
|
||||
```
|
||||
|
||||
## Phase 1:定位真实状态
|
||||
|
||||
1. 统计 `session_index.jsonl` 记录数、重复 thread、缺失 rollout、空 rollout。
|
||||
2. 查 `state_5.sqlite` 里线程、项目、置顶状态与 `session_index.jsonl` 是否一致。
|
||||
3. 查 `.codex-global-state.json` 是否仍保留旧项目挂载。
|
||||
4. 查 `process_manager/chat_processes.json` 是否引用已不存在或空 rollout。
|
||||
5. 写一份报告到备份目录,例如 `codex-state-repair-report.json`。
|
||||
|
||||
## Phase 2:修复策略
|
||||
|
||||
| 问题 | 动作 |
|
||||
|:---|:---|
|
||||
| 缺失 rollout 引用 | 若能从索引或记忆找到摘要,生成 readable placeholder;否则标记不可恢复 |
|
||||
| 空 `rollout-*.jsonl` | 写入最小有效 JSONL 占位,避免 Desktop 读线程报错 |
|
||||
| 项目误分类 | 按标题、cwd、首条用户消息、记忆摘要重新分桶 |
|
||||
| 置顶丢失 | 同步修 `state_5.sqlite` 与 global state 的 pinned/top 字段 |
|
||||
| 修完仍不显示 | 把重启 Codex Desktop / reload state 作为验收步骤 |
|
||||
|
||||
## Phase 3:项目分类建议
|
||||
|
||||
优先保留用户真实业务桶:
|
||||
|
||||
- 卡若AI / Codex管理
|
||||
- Soul / SOUL创业派对
|
||||
- 私域银行 / 存客宝 / 工作手机
|
||||
- 厦门房产
|
||||
- 域名注册
|
||||
- MBTI
|
||||
- 玩值电竞
|
||||
- 服务器管理 / NAS
|
||||
- 个人项目
|
||||
|
||||
分类证据优先级:
|
||||
|
||||
1. 当前 `cwd`
|
||||
2. 会话标题
|
||||
3. 首条用户消息
|
||||
4. rollout 摘要
|
||||
5. memory / repair report 中的旧分类记录
|
||||
|
||||
## Phase 4:验收
|
||||
|
||||
必须至少验证:
|
||||
|
||||
- `missing rollout references = 0`
|
||||
- 空 rollout 已处理或已列入不可恢复清单
|
||||
- 误挂大项目的对话数量回落到合理范围
|
||||
- 关键项目侧栏能打开
|
||||
- 修复报告写入 `/Users/karuo/.codex/repair-backups/`
|
||||
- 若 Desktop 仍缓存旧状态,明确提示重启 Codex Desktop 再验
|
||||
|
||||
## 常用证据入口
|
||||
|
||||
| 文件/目录 | 用途 |
|
||||
|:---|:---|
|
||||
| `/Users/karuo/.codex/session_index.jsonl` | 线程索引 |
|
||||
| `/Users/karuo/.codex/state_5.sqlite` | Desktop 状态库 |
|
||||
| `/Users/karuo/.codex/.codex-global-state.json` | 全局侧栏/项目状态 |
|
||||
| `/Users/karuo/.codex/process_manager/chat_processes.json` | 进程/线程引用 |
|
||||
| `/Users/karuo/.codex/sessions/` | rollout 真源 |
|
||||
| `/Users/karuo/.codex/repair-backups/` | 备份与修复报告 |
|
||||
|
||||
## 复用过的历史证据
|
||||
|
||||
- 2026-07-04:从隐藏缺失 rollout 改为“恢复并分类旧对话”。
|
||||
- 2026-07-04:空 rollout 引发 `thread-store internal error`。
|
||||
- 2026-07-05:把误挂在“厦门房产”的约 70 个对话重新拆回 Soul、私域银行、工作手机、域名注册、MBTI、玩值电竞、服务器管理、个人项目等桶。
|
||||
|
||||
## 输出格式
|
||||
|
||||
交付时用卡若复盘:
|
||||
|
||||
- 🎯 目标&结果:修复范围、达成率
|
||||
- 📌 过程:备份、扫描、修复、验收
|
||||
- 💡 反思:哪里是不可恢复或需重启
|
||||
- 📝 总结:修复报告路径
|
||||
- ▶ 下一步执行:是否需要重启 Desktop、是否需补 Mongo/记忆
|
||||
|
||||
## 变更记录
|
||||
|
||||
| 日期 | 说明 |
|
||||
|:---|:---|
|
||||
| 2026-07-05 | 初版:从近30天 Codex Desktop 侧栏/rollout 修复高复发流程沉淀 |
|
||||
70
01_卡资(金)/金仓_存储备份/Codex版本锁定/开发文档/Codex降级锁定_20260617.md
Normal file
70
01_卡资(金)/金仓_存储备份/Codex版本锁定/开发文档/Codex降级锁定_20260617.md
Normal file
@@ -0,0 +1,70 @@
|
||||
# Codex 降级锁定(2026-06-17)
|
||||
|
||||
## 目标
|
||||
|
||||
从 GitHub 安装 **2026 年 6 月以前** 的 Codex,并禁止自动升级。
|
||||
|
||||
## 已执行版本
|
||||
|
||||
| 组件 | 版本 | 来源 |
|
||||
|:---|:---|:---|
|
||||
| Codex.app | `26.519.81530` | 本机 2026-05-28 备份 |
|
||||
| codex CLI | `0.135.0` | [rust-v0.135.0](https://github.com/openai/codex/releases/tag/rust-v0.135.0) |
|
||||
| 发布日期 | 2026-05-28 | 6 月前稳定版 |
|
||||
|
||||
## 防升级措施(四层)
|
||||
|
||||
1. **CLI**:`~/.codex/config.toml` 顶层 `check_for_update_on_startup = false`
|
||||
2. **Sparkle(桌面 App)**:`defaults write com.openai.codex SUEnableAutomaticChecks -bool false`
|
||||
3. **文件锁**:`chflags uchg` 锁定 `/Applications/Codex.app`
|
||||
4. **hosts 阻断**:`persistent.oaistatic.com`、`downloads.openai.com` → `0.0.0.0`
|
||||
|
||||
一键启用:
|
||||
|
||||
```bash
|
||||
bash "…/Codex版本锁定/脚本/codex_block_updates.sh" on
|
||||
```
|
||||
|
||||
关闭(恢复可升级):
|
||||
|
||||
```bash
|
||||
bash "…/Codex版本锁定/脚本/codex_block_updates.sh" off
|
||||
```
|
||||
|
||||
## 一键重装脚本
|
||||
|
||||
```bash
|
||||
bash "/Users/karuo/Documents/个人/卡若AI/01_卡资(金)/金仓_存储备份/Codex版本锁定/脚本/codex_pin_version.sh"
|
||||
```
|
||||
|
||||
换其它 5 月 tag:
|
||||
|
||||
```bash
|
||||
bash …/codex_pin_version.sh rust-v0.134.0
|
||||
```
|
||||
|
||||
## 解锁升级
|
||||
|
||||
```bash
|
||||
chflags -R nouchg /Applications/Codex.app
|
||||
chflags nouchg /usr/local/bin/codex
|
||||
```
|
||||
|
||||
## 备份位置
|
||||
|
||||
- 降级前新版:`~/Documents/卡若Ai的文件夹/1、金_资产存储/备份/系统/codex_pin_0.135.0/Codex.app.before_downgrade`
|
||||
- GitHub 包:`…/codex_pin_0.135.0/codex-aarch64-apple-darwin.tar.gz`
|
||||
|
||||
## 注意
|
||||
|
||||
- 从备份/GitHub 恢复的 App 可能弹 **「已损坏」**:执行 `xattr -cr /Applications/Codex.app && codesign --force --deep --sign - /Applications/Codex.app`(脚本已内置)。
|
||||
- 桌面 App 的「更新」按钮不受 `check_for_update_on_startup` 控制(仅 CLI/TUI);靠 **uchg 文件锁** 防覆盖。
|
||||
- 若需其它 5 月 App 构建,可换用 `codex_full_reset_20260528` 同期备份或带 `.dmg` 的较新 pre-release(如 0.138.0-alpha.6)。
|
||||
|
||||
## 进度
|
||||
|
||||
- [x] GitHub 下载 0.135.0 CLI
|
||||
- [x] 恢复 5 月 Codex.app
|
||||
- [x] config 关更新检查
|
||||
- [x] uchg 锁定
|
||||
- [x] 脚本 + 开发文档
|
||||
105
01_卡资(金)/金仓_存储备份/Codex版本锁定/脚本/codex_block_updates.sh
Executable file
105
01_卡资(金)/金仓_存储备份/Codex版本锁定/脚本/codex_block_updates.sh
Executable file
@@ -0,0 +1,105 @@
|
||||
#!/usr/bin/env bash
|
||||
# Codex 禁止更新:CLI 配置 + Sparkle 关检查 + 文件锁 + hosts 阻断 CDN
|
||||
# 用法: bash codex_block_updates.sh [on|off] 默认 on
|
||||
set -euo pipefail
|
||||
|
||||
MODE="${1:-on}"
|
||||
CONFIG="${HOME}/.codex/config.toml"
|
||||
APP="/Applications/Codex.app"
|
||||
CLI="${APP}/Contents/Resources/codex"
|
||||
HOSTS_MARKER="# karuo-codex-no-update"
|
||||
HOSTS_FILE="/etc/hosts"
|
||||
HOSTS_BLOCK=(
|
||||
"0.0.0.0 persistent.oaistatic.com"
|
||||
"0.0.0.0 downloads.openai.com"
|
||||
)
|
||||
|
||||
ensure_config_off() {
|
||||
if [[ ! -f "${CONFIG}" ]]; then
|
||||
mkdir -p "$(dirname "${CONFIG}")"
|
||||
printf 'check_for_update_on_startup = false\n' > "${CONFIG}"
|
||||
return
|
||||
fi
|
||||
if grep -q '^check_for_update_on_startup' "${CONFIG}"; then
|
||||
sed -i '' 's/^check_for_update_on_startup.*/check_for_update_on_startup = false/' "${CONFIG}"
|
||||
else
|
||||
printf 'check_for_update_on_startup = false\n\n' | cat - "${CONFIG}" > "${CONFIG}.tmp" && mv "${CONFIG}.tmp" "${CONFIG}"
|
||||
fi
|
||||
}
|
||||
|
||||
sparkle_off() {
|
||||
defaults write com.openai.codex SUEnableAutomaticChecks -bool false
|
||||
defaults write com.openai.codex SUAutomaticallyUpdate -bool false
|
||||
}
|
||||
|
||||
sparkle_on() {
|
||||
defaults write com.openai.codex SUEnableAutomaticChecks -bool true
|
||||
}
|
||||
|
||||
lock_app() {
|
||||
[[ -d "${APP}" ]] || { echo "未找到 ${APP}" >&2; exit 1; }
|
||||
chflags -R uchg "${APP}"
|
||||
if [[ -f "${CLI}" ]]; then
|
||||
chflags uchg "${CLI}" 2>/dev/null || true
|
||||
fi
|
||||
if [[ -f /usr/local/bin/codex ]] && [[ ! -L /usr/local/bin/codex ]]; then
|
||||
chflags uchg /usr/local/bin/codex 2>/dev/null || true
|
||||
fi
|
||||
}
|
||||
|
||||
unlock_app() {
|
||||
chflags -R nouchg "${APP}" 2>/dev/null || true
|
||||
chflags nouchg /usr/local/bin/codex 2>/dev/null || true
|
||||
}
|
||||
|
||||
hosts_block() {
|
||||
if grep -q "${HOSTS_MARKER}" "${HOSTS_FILE}" 2>/dev/null; then
|
||||
echo "hosts 阻断已存在"
|
||||
return
|
||||
fi
|
||||
local tmp
|
||||
tmp="$(mktemp)"
|
||||
{
|
||||
echo ""
|
||||
echo "${HOSTS_MARKER}"
|
||||
for line in "${HOSTS_BLOCK[@]}"; do echo "${line}"; done
|
||||
} | sudo tee -a "${HOSTS_FILE}" >/dev/null
|
||||
echo "已写入 /etc/hosts 阻断 Codex 更新 CDN"
|
||||
}
|
||||
|
||||
hosts_unblock() {
|
||||
if ! grep -q "${HOSTS_MARKER}" "${HOSTS_FILE}" 2>/dev/null; then
|
||||
echo "hosts 无 Codex 阻断条目"
|
||||
return
|
||||
fi
|
||||
sudo sed -i '' "/${HOSTS_MARKER}/,/^0\.0\.0\.0 downloads\.openai\.com/d" "${HOSTS_FILE}"
|
||||
echo "已移除 hosts 阻断"
|
||||
}
|
||||
|
||||
case "${MODE}" in
|
||||
on)
|
||||
ensure_config_off
|
||||
sparkle_off
|
||||
lock_app
|
||||
hosts_block || echo "⚠️ hosts 阻断需 sudo,可稍后手动: sudo bash $0 on"
|
||||
echo "✅ Codex 禁止更新已启用"
|
||||
;;
|
||||
off)
|
||||
unlock_app
|
||||
sparkle_on
|
||||
hosts_unblock || true
|
||||
sed -i '' 's/^check_for_update_on_startup.*/check_for_update_on_startup = true/' "${CONFIG}" 2>/dev/null || true
|
||||
echo "✅ Codex 禁止更新已关闭(可正常升级)"
|
||||
;;
|
||||
*)
|
||||
echo "用法: $0 [on|off]" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
echo "--- 状态 ---"
|
||||
grep '^check_for_update_on_startup' "${CONFIG}" 2>/dev/null || true
|
||||
defaults read com.openai.codex SUEnableAutomaticChecks SUAutomaticallyUpdate 2>/dev/null || true
|
||||
ls -lO "${APP}" 2>/dev/null | head -2 || true
|
||||
grep -A3 "${HOSTS_MARKER}" "${HOSTS_FILE}" 2>/dev/null || echo "hosts: 未阻断"
|
||||
codex --version 2>/dev/null || true
|
||||
84
01_卡资(金)/金仓_存储备份/Codex版本锁定/脚本/codex_pin_version.sh
Executable file
84
01_卡资(金)/金仓_存储备份/Codex版本锁定/脚本/codex_pin_version.sh
Executable file
@@ -0,0 +1,84 @@
|
||||
#!/usr/bin/env bash
|
||||
# Codex 版本锁定:从 GitHub 下载指定旧版并禁止自动升级
|
||||
# 用法: bash codex_pin_version.sh [版本tag,默认 rust-v0.135.0]
|
||||
set -euo pipefail
|
||||
|
||||
TAG="${1:-rust-v0.135.0}"
|
||||
ARCH="$(uname -m)"
|
||||
PIN_ROOT="${HOME}/Documents/卡若Ai的文件夹/1、金_资产存储/备份/系统"
|
||||
PIN_DIR="${PIN_ROOT}/codex_pin_${TAG#rust-v}"
|
||||
BACKUP_APP="${PIN_ROOT}/codex_full_reset_20260528/Codex.app"
|
||||
CONFIG="${HOME}/.codex/config.toml"
|
||||
|
||||
if [[ "${ARCH}" != "arm64" ]]; then
|
||||
echo "当前脚本仅验证过 Apple Silicon (arm64)" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
mkdir -p "${PIN_DIR}"
|
||||
cd "${PIN_DIR}"
|
||||
|
||||
if [[ ! -f codex-aarch64-apple-darwin.tar.gz ]]; then
|
||||
echo "▸ 从 GitHub 下载 ${TAG} ..."
|
||||
gh release download "${TAG}" -R openai/codex \
|
||||
-p 'codex-aarch64-apple-darwin.tar.gz' \
|
||||
-p 'codex-package-aarch64-apple-darwin.tar.gz' \
|
||||
--clobber
|
||||
fi
|
||||
|
||||
tar -xzf codex-aarch64-apple-darwin.tar.gz
|
||||
|
||||
echo "▸ 退出 Codex ..."
|
||||
osascript -e 'tell application "Codex" to quit' 2>/dev/null || true
|
||||
sleep 3
|
||||
pgrep -x Codex >/dev/null && killall Codex 2>/dev/null || true
|
||||
sleep 2
|
||||
|
||||
echo "▸ 备份当前安装 ..."
|
||||
rm -rf "${PIN_DIR}/Codex.app.before_downgrade"
|
||||
[[ -d /Applications/Codex.app ]] && cp -a /Applications/Codex.app "${PIN_DIR}/Codex.app.before_downgrade"
|
||||
[[ -f /usr/local/bin/codex ]] && cp -a /usr/local/bin/codex "${PIN_DIR}/codex.before_downgrade" || true
|
||||
|
||||
echo "▸ 安装桌面版(5 月备份包,与 0.135.0 同期)..."
|
||||
chflags -R nouchg /Applications/Codex.app 2>/dev/null || true
|
||||
chflags nouchg /usr/local/bin/codex 2>/dev/null || true
|
||||
rm -rf /Applications/Codex.app
|
||||
cp -a "${BACKUP_APP}" /Applications/Codex.app
|
||||
|
||||
echo "▸ 修复 Gatekeeper(清除隔离 + 重签名)..."
|
||||
xattr -cr /Applications/Codex.app
|
||||
codesign --force --deep --sign - /Applications/Codex.app >/dev/null
|
||||
|
||||
echo "▸ 安装 CLI(随 App 内嵌,/usr/local/bin/codex 为符号链接)..."
|
||||
# App 内已含匹配版本 CLI;仅当 /usr/local/bin/codex 为独立文件时才覆盖
|
||||
if [[ -L /usr/local/bin/codex ]] || [[ ! -f /usr/local/bin/codex ]]; then
|
||||
ln -sf /Applications/Codex.app/Contents/Resources/codex /usr/local/bin/codex
|
||||
else
|
||||
cp -a "${PIN_DIR}/codex-aarch64-apple-darwin" /usr/local/bin/codex
|
||||
chmod +x /usr/local/bin/codex
|
||||
chflags uchg /usr/local/bin/codex
|
||||
fi
|
||||
|
||||
echo "▸ 锁定 App 防覆盖升级 ..."
|
||||
chflags -R uchg /Applications/Codex.app
|
||||
|
||||
echo "▸ 关闭 CLI 启动更新检查 ..."
|
||||
BLOCK_SCRIPT="$(dirname "$0")/codex_block_updates.sh"
|
||||
if [[ -x "${BLOCK_SCRIPT}" ]]; then
|
||||
# 仅 config + Sparkle + 锁;hosts 需本机 sudo
|
||||
bash "${BLOCK_SCRIPT}" on 2>/dev/null || true
|
||||
else
|
||||
if ! grep -q '^check_for_update_on_startup' "${CONFIG}" 2>/dev/null; then
|
||||
printf 'check_for_update_on_startup = false\n\n' | cat - "${CONFIG}" > "${CONFIG}.tmp" && mv "${CONFIG}.tmp" "${CONFIG}"
|
||||
else
|
||||
sed -i '' 's/^check_for_update_on_startup.*/check_for_update_on_startup = false/' "${CONFIG}"
|
||||
fi
|
||||
defaults write com.openai.codex SUEnableAutomaticChecks -bool false 2>/dev/null || true
|
||||
defaults write com.openai.codex SUAutomaticallyUpdate -bool false 2>/dev/null || true
|
||||
chflags -R uchg /Applications/Codex.app
|
||||
fi
|
||||
|
||||
echo "✅ 完成"
|
||||
defaults read /Applications/Codex.app/Contents/Info.plist CFBundleShortVersionString
|
||||
codex --version
|
||||
echo "解锁升级: chflags -R nouchg /Applications/Codex.app && chflags nouchg /usr/local/bin/codex"
|
||||
67
01_卡资(金)/金仓_存储备份/Cursor持久对话/MANUS_使用说明.md
Normal file
67
01_卡资(金)/金仓_存储备份/Cursor持久对话/MANUS_使用说明.md
Normal file
@@ -0,0 +1,67 @@
|
||||
# 可持续对话 MCP · Manus 直接使用说明
|
||||
|
||||
> **给 Manus**:解压本 zip 后,按下面步骤在本机 macOS 执行即可,无需卡密、无需联网 API。
|
||||
|
||||
## 一、包里有什么
|
||||
|
||||
| 路径 | 用途 |
|
||||
|:---|:---|
|
||||
| `install.sh` | 一键安装(写 MCP + 启动 Hub) |
|
||||
| `package/` | hub.js、server.js、panel.html、规则模板 |
|
||||
| `check-mcp.sh` | 安装后验收 |
|
||||
| `SKILL.md` | 完整 Skill 文档(G22b) |
|
||||
| `图文教程/` | 零基础安装 + MCP 三张产品图 |
|
||||
| `脚本/sync-runtime.sh` | 仅同步运行时(已装过时用) |
|
||||
|
||||
## 二、Manus 执行清单(复制即用)
|
||||
|
||||
```bash
|
||||
# 1) 解压后进入目录(文件夹名以 zip 内为准)
|
||||
cd "解压后的/Cursor可持续对话-安装包-v*"
|
||||
|
||||
# 2) 安装到本机 + 绑定当前项目(把路径换成实际工作区)
|
||||
bash install.sh --project "/你的/项目/根目录"
|
||||
|
||||
# 3) 验收
|
||||
bash check-mcp.sh
|
||||
|
||||
# 4) 打开面板确认
|
||||
open "http://127.0.0.1:13458"
|
||||
```
|
||||
|
||||
**安装成功后必须**:用户 **Cmd+Q 完全退出 Cursor 再打开**,Settings → MCP 里 `persistent-chat` 显示绿点。
|
||||
|
||||
## 三、Manus 接任务后的 Agent 流程
|
||||
|
||||
每轮开发循环(不要停):
|
||||
|
||||
1. `select_conversation`(传 `cursorTitle`=当前对话标签名)
|
||||
2. 无会话 → `init_conversation`
|
||||
3. `verify_karuo_ai_gate`(带 `pchat-token`)→ 须 `PASS`
|
||||
4. 执行用户任务
|
||||
5. 写 **[卡若复盘]** 五块
|
||||
6. `wait_for_user_input`(同一 `pchat-token` + `title`)
|
||||
7. 收到 `[RENEWAL]` → 立刻再 `wait`,不展示给用户
|
||||
8. 仅用户说 **「结束持久对话」** 才可停止 wait
|
||||
|
||||
面板 http://127.0.0.1:13458 可开 **自动续跑**,模式选 **直通**(连续开发)或 **复盘**(追问→检索→执行)。
|
||||
|
||||
## 四、常见问题
|
||||
|
||||
| 现象 | 处理 |
|
||||
|:---|:---|
|
||||
| 面板「连接中…」 | `bash 脚本/sync-runtime.sh` 后刷新面板 |
|
||||
| MCP 不绿 | Cmd+Q 重启 Cursor;`bash 脚本/清理重复MCP.sh` |
|
||||
| 多标签串线 | 每个标签用中文名;`init` 必须传 `cursorTitle` |
|
||||
| interrupted | 单轮少跑长命令;末 tool 必须是 `wait` |
|
||||
|
||||
## 五、环境要求
|
||||
|
||||
- macOS + Node.js 18+(推荐 22:`brew install node@22`)
|
||||
- Cursor IDE(Auto 或 Agent 模式,非 Plan/Ask)
|
||||
- 本机端口 **13458** 未被占用
|
||||
|
||||
---
|
||||
|
||||
**版本**:见 `package/panel.html` 内 `PANEL_VERSION`
|
||||
**Skill 真源**:卡若AI `01_卡资(金)/金仓_存储备份/Cursor持久对话/SKILL.md`
|
||||
48
01_卡资(金)/金仓_存储备份/Cursor持久对话/README.md
Normal file
48
01_卡资(金)/金仓_存储备份/Cursor持久对话/README.md
Normal file
@@ -0,0 +1,48 @@
|
||||
# 可持续对话(Cursor / Codex)· v1.4
|
||||
|
||||
> Agent 卡住续跑 · 本地免费 · **MCP 全局只配 1 条** · Cursor/Codex 共用同一 Hub
|
||||
|
||||
## 安装(3 步)
|
||||
|
||||
```bash
|
||||
unzip Cursor持久对话-安装包-v1.3.zip
|
||||
cd Cursor持久对话
|
||||
bash install.sh --project "/你的项目路径"
|
||||
bash check-mcp.sh # 必须全绿
|
||||
```
|
||||
|
||||
或双击 `一键安装.command` → Cmd+Q 重启 Cursor。
|
||||
|
||||
## v1.4 修复了什么
|
||||
|
||||
- **Hub 独立进程**:13458 只有一个,多工作区不再抢端口
|
||||
- **MCP 不重复**:只在 `~/.cursor/mcp.json` 配 1 条(Settings 不会出现两个)
|
||||
- **面板输入不闪退**:打字时暂停刷新
|
||||
- **发错会话提示**:自动对齐 Cursor 正在等的 `ct_` token
|
||||
- **Codex 同步支持**:`~/.codex/config.toml` 也写入同一套 `persistent-chat`,与 Cursor 共享同一 Hub / 规则 / 复盘流程
|
||||
|
||||
## 验收
|
||||
|
||||
| 命令 | 作用 |
|
||||
|:---|:---|
|
||||
| `bash check-mcp.sh` | 深度检查(无重复 MCP + 4 tools + Hub) |
|
||||
| `bash verify.sh` | 基础文件/Hub/Mongo/Codex 检查 |
|
||||
| `bash 脚本/清理重复MCP.sh` | 清项目级重复 MCP |
|
||||
|
||||
## 成功标准
|
||||
|
||||
Settings → **1 个** persistent-chat · 绿点 · **4 tools enabled**
|
||||
Codex 配置里也应能看到同一 `persistent-chat` 指向本地 Hub
|
||||
|
||||
面板发送后变「已发送·处理中」,Cursor 里 `Wait For User Input` 结束并继续。
|
||||
|
||||
## 文件
|
||||
|
||||
| 文件 | 说明 |
|
||||
|:---|:---|
|
||||
| `install.sh` | 一键安装 |
|
||||
| `check-mcp.sh` | 深度验收 |
|
||||
| `verify.sh` | 基础验收 |
|
||||
| `一键安装.command` | 双击安装 |
|
||||
| `图文教程/` | 8 张步骤图 |
|
||||
| `package/` | hub / server / panel 源码 |
|
||||
459
01_卡资(金)/金仓_存储备份/Cursor持久对话/SKILL.md
Normal file
459
01_卡资(金)/金仓_存储备份/Cursor持久对话/SKILL.md
Normal file
@@ -0,0 +1,459 @@
|
||||
# 可持续对话(本地 MCP · 长连接)
|
||||
|
||||
```yaml
|
||||
id: G22b
|
||||
name: 可持续对话
|
||||
member: 金仓
|
||||
trigger:
|
||||
- 可持续对话
|
||||
- persistent chat
|
||||
- 卡住续跑
|
||||
- wait_for_user_input
|
||||
- 13458
|
||||
- Cursor持久对话
|
||||
- 安装持久对话
|
||||
- 长连接
|
||||
- 自动续跑
|
||||
- 优化续跑
|
||||
- Auto模式
|
||||
- Cursor Auto
|
||||
- Agent模式
|
||||
- 不间断
|
||||
- 持续运作
|
||||
- 长时间对话
|
||||
- 持续对话
|
||||
- persistent MCP
|
||||
version: 1.6.51
|
||||
updated: 2026-06-14
|
||||
heat: 🔴 热
|
||||
related:
|
||||
- 02_卡人(水)/水桥_平台对接/MCP管理/SKILL.md
|
||||
- 04_卡火(火)/火炬_全栈消息/持续执行闭环/SKILL.md
|
||||
- 04_卡火(火)/火炬_全栈消息/前端开发/私域银行统一前端模块/README.md
|
||||
```
|
||||
|
||||
## 一句话
|
||||
|
||||
**Cursor Agent 永不中断**:本地 MCP + Hub 长轮询 + 浏览器面板 `http://127.0.0.1:13458`;单对话可配 **复盘 / 直通 / 优化** 三模式;UI 对齐 **卡若AI Glass UI Kit**;无卡密、无第三方 API。
|
||||
|
||||
**与 G26 持续执行闭环**:用户要 **把需求/代码做到验收**(不限挂起)→ 先读 `04_卡火/火炬_全栈消息/持续执行闭环/SKILL.md`;本 Skill 只管 **wait 循环与 13458 面板**。
|
||||
|
||||
---
|
||||
|
||||
## Cursor Auto / Agent + persistent-chat(默认不间断)
|
||||
|
||||
**用户不必每次粘贴提示词。** `install.sh` 会在项目写入 `.cursor/rules/persistent-chat.mdc`(`alwaysApply: true`)。
|
||||
|
||||
| 步骤 | 操作 |
|
||||
|:---|:---|
|
||||
| 1 | 对话模式选 **Auto**、**Agent** 或 **Composer**(本机 Cursor 任意 Agent 类模式;**不限制 LLM 模型**) |
|
||||
| 2 | MCP `persistent-chat` 绿点;面板 http://127.0.0.1:13458 **自动续跑** 开 |
|
||||
| 3 | 详情区模式:**直通**(连续 ▶下一步)或 **优化**(总结→检索→开发) |
|
||||
| 4 | 第一条消息直接写任务;Agent 自动 `select_conversation` → `verify_karuo_ai_gate` → 执行 → `wait_for_user_input` |
|
||||
|
||||
**完整说明 + 可粘贴启动词(仅换机/规则未生效时)**:`references/Cursor_Auto与持久MCP不间断.md`
|
||||
|
||||
**禁止**:因「任务已完成」停止 `wait`;`wait` 只是挂起传输,不是终点;仅用户明确 **「结束持久对话」** 可停。
|
||||
|
||||
---
|
||||
|
||||
## 模型无关(v1.6.50 · 不限制)
|
||||
|
||||
| 层 | 是否限制模型 |
|
||||
|:---|:---|
|
||||
| **MCP server.js** | ❌ 无 model 参数、无白名单 |
|
||||
| **Hub hub.js** | ❌ 只认 ct_ / composerId,不认 LLM |
|
||||
| **13458 面板** | ❌ |
|
||||
| **Cursor 侧** | 你选 Auto / Agent / Composer / Claude / GPT … **均可** |
|
||||
| **不可用** | Plan / Ask(无 Agent 工具,调不了 wait) |
|
||||
|
||||
**composerId** = Cursor **对话框 ID**(防串线),≠ Composer 模型产品;任意模型对话框都有 composerId。
|
||||
|
||||
---
|
||||
|
||||
## 文档索引
|
||||
|
||||
| 文档 | 用途 |
|
||||
|:---|:---|
|
||||
| **本文件 SKILL.md** | 安装、用法、三模式、MCP 工具 |
|
||||
| **references/Cursor_Auto与持久MCP不间断.md** | **Cursor Auto/Agent + persistent-chat 默认不间断**(提示词、配置、与 G26 叠加) |
|
||||
| **references/不间断开发_G22b叠加G26.md** | **九条铁律**:每轮读需求 + 开发至验收 + 边打勾 + 优化沉淀(与 G26 叠加真源) |
|
||||
| **开发需求_不间断开发叠加_20260605.md** | 本 Skill 自身进行中需求(每轮循环 Read 入口) |
|
||||
| **部署与长连接接入.md** | 跨科室部署、HTTP API、长轮询时序、踩坑 |
|
||||
| **图文教程/零基础安装指南.md** | 新手图文 |
|
||||
| **package/故障排查_输入闪退与发送状态.md** | 面板异常 |
|
||||
| **package/故障排查_工具中断interrupted.md** | Read/GenerateImage/MCP 误报 interrupted |
|
||||
| **图文教程/功能说明图/** | MCP 产品三张图(概念/落地/形态代价 PNG + 说明 MD) |
|
||||
|
||||
---
|
||||
|
||||
## 架构(长连接)
|
||||
|
||||
```
|
||||
┌─────────────┐ stdio ┌──────────────┐ HTTP ┌─────────────────┐
|
||||
│ Cursor Agent│◄──────────►│ server.js │◄─────────►│ hub.js :13458 │
|
||||
│ MCP 工具 │ │ (MCP 客户端) │ │ 唯一 HTTP 进程 │
|
||||
└─────────────┘ └──────────────┘ └────────┬────────┘
|
||||
│
|
||||
┌──────────────────────────────────────────┤
|
||||
│ panel.html(浏览器) │
|
||||
│ /api/wait/poll 28s 长轮询 renewal │
|
||||
│ /api/reply 用户回复 │
|
||||
└──────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
**长连接本质**:MCP 侧对 `/api/wait/poll` 循环长轮询;面板 2s 拉 `/api/state`;用户回复经 `/api/reply` 唤醒 poll。
|
||||
|
||||
---
|
||||
|
||||
## 一键安装
|
||||
|
||||
```bash
|
||||
bash "/Users/karuo/Documents/个人/卡若AI/01_卡资(金)/金仓_存储备份/Cursor持久对话/install.sh"
|
||||
bash install.sh --project "/path/to/repo" # 指定项目
|
||||
bash install.sh --all-karuo # 卡若多根工作区
|
||||
|
||||
# 改 package 后同步运行时
|
||||
bash "脚本/sync-runtime.sh"
|
||||
|
||||
# 打可分发安装包(插件 + 网站桥接 zip)
|
||||
bash "脚本/build_package.sh"
|
||||
```
|
||||
|
||||
安装后 **Cmd+Q 退出 Cursor 再开** → Settings → MCP → `persistent-chat` 绿点 → 打开 http://127.0.0.1:13458
|
||||
|
||||
---
|
||||
|
||||
## 验收
|
||||
|
||||
```bash
|
||||
bash check-mcp.sh
|
||||
bash "脚本/check-mcp-link.sh" ct_xxx # v1.6.51 MCP↔Hub 链接 + verify_mcp_status
|
||||
bash "脚本/check-continuous-loop.sh" ct_xxx # 发消息+续跑不停(v1.6.40)
|
||||
bash "脚本/check-optimize-fullchain.sh" ct_xxx # 优化模式四步 Hub 验收(v1.6.47)
|
||||
curl -s http://127.0.0.1:13458/api/health # panelVersion ≥ 1.6.17
|
||||
curl -s "http://127.0.0.1:13458/api/link/status?token=ct_xxx" # pendingWait/linked
|
||||
```
|
||||
|
||||
### MCP 链路检测(v1.6.51 · wait 前必调)
|
||||
|
||||
| 工具 / API | 用途 |
|
||||
|:---|:---|
|
||||
| **`verify_mcp_status`** | MCP 工具:Hub 在线 + ct_ 链接;须 `[MCP_LINK] PASS` |
|
||||
| **`/api/link/status`** | `pendingWait` / `connectionHeld` / `linked` / `cursorOccupied` |
|
||||
| **占用态铁律** | 每 turn **最后 tool = wait**;`[RENEWAL]` 同 turn 零正文再 wait |
|
||||
|
||||
### 单轮 REQ 与 renewal 链(v1.6.71 · 防 interrupted)
|
||||
|
||||
| 铁律 | 说明 |
|
||||
|:---|:---|
|
||||
| **单轮少 REQ** | 先执行后 wait;禁止 wait 前堆砌 Shell/Read/并行 tool |
|
||||
| **MCP 预算** | select + gate + **一次** wait;gate 10min 缓存;勿与改码/生图/Shell 同批并行 |
|
||||
| **RENEWAL 零工** | `[RENEWAL]` → 立刻 renewalOnly 再 wait;**禁止** 其间任何 Read/Shell/verify |
|
||||
| **禁止多级 renewal 工** | 同 turn:wait →(RENEWAL)→ renewalOnly wait → 收 turn;禁止 RENEWAL 后再执行又第三次 wait |
|
||||
| **大任务拆轮** | 单轮 ~25s 可完成量;超出则复盘+wait,下轮续跑 ▶ |
|
||||
|
||||
### 多标签并行(v1.6.72 · Cursor/Codex/VS Code 通用)
|
||||
|
||||
| 项 | 说明 |
|
||||
|:---|:---|
|
||||
| **一套 Hub** | 所有客户端共用 `:13458`;每标签独立 ct_,可并行多项目 |
|
||||
| **三开三 wait** | 每窗口末 tool 必须各自 `wait`;A 挂起不能代替 B |
|
||||
| **断链诊断** | `bash 脚本/check-multi-tabs.sh` → `dialogueState=OFF` = Agent 未 wait |
|
||||
| **OFF 一键排队** | `bash 脚本/repair-off-tabs.sh` → 开 turbo+保活并为 OFF 会话排队续跑 |
|
||||
| **composer 防串** | rebuild 只取最新 thread;禁止验收脚本污染 composer 绑定 |
|
||||
|
||||
### 发消息后不停(v1.6.40 · 科室必验)
|
||||
|
||||
| 步骤 | 预期 |
|
||||
|:---|:---|
|
||||
| 面板发消息 / `/api/reply` | 未 wait 时 **queued**,`connectionHeld` **仍为 true** |
|
||||
| `/api/continue` | 未 wait 时排队续跑,**不** 404 |
|
||||
| Hub `postDeliverWatchdog` | 消息送达后 10s 内 Agent 未 re-wait → 再排队续跑 |
|
||||
| Agent 每轮 | 处理完面板消息 → **必须再 `wait_for_user_input`** |
|
||||
|
||||
```bash
|
||||
bash "脚本/check-continuous-loop.sh" ct_ca405c05
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 单对话三模式(v1.6.13+ · 默认自动续跑开)
|
||||
|
||||
在面板**选中对话 → 详情区顶部**配置(非全局):
|
||||
|
||||
| 模式 | 值 | 行为 |
|
||||
|:---|:---|:---|
|
||||
| **复盘** | `standard` | 挂起后:追问 → 检索 → 执行;需 **[卡若复盘]** 五块 |
|
||||
| **直通** | `turbo` | 不等复盘,Hub 直推 `▶下一步` 直到目标完成 |
|
||||
| **优化** | `optimize` | 自动四步:①总结聊天 → ②WebSearch+GitHub → ③补开发文档 → ④按文档开发 |
|
||||
|
||||
API:
|
||||
|
||||
```bash
|
||||
curl -X POST http://127.0.0.1:13458/api/session/config \
|
||||
-H 'Content-Type: application/json' \
|
||||
-d '{"token":"ct_xxx","continueMode":"optimize","sessionAutoContinue":true}'
|
||||
```
|
||||
|
||||
## 定时回复(v1.6.17+ · 默认「自动」)
|
||||
|
||||
| 项 | 默认 |
|
||||
|:---|:---|
|
||||
| 自动续跑延迟 | **10 秒** |
|
||||
| 间隔 | **自动**(仅走续跑规则) |
|
||||
| 固定保活 | 30 秒 · 4 分钟 · 9 分钟 |
|
||||
|
||||
**自动**:约 10 秒后按复盘/直通/优化规则续跑。
|
||||
**固定间隔**:到点发保活文案(直通 ▶=无 时选 4 分钟/9 分钟)。
|
||||
|
||||
```bash
|
||||
curl -X POST http://127.0.0.1:13458/api/session/config \
|
||||
-H 'Content-Type: application/json' \
|
||||
-d '{"token":"ct_xxx","timedReplyIntervalMs":0}'
|
||||
# 0=自动 · 30000/240000/540000=固定
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 完整 Token 绑定铁律(v1.6.30)
|
||||
|
||||
- 计划真源是完整 `ct_xxxxxxxx`,禁止前缀匹配、禁止按标题猜 token。
|
||||
- 每次挂载先用完整 token 查 Hub 会话库、`bindings.json`、`thread-bindings/`;能恢复就必须恢复原 token。
|
||||
- 只有完整 token 在库里找不到时,才允许 `init_conversation(newPlan:true, cursorTitle=标签名, planLabel=计划名)` 新建。
|
||||
- `newPlan` 不归档旧计划;旧计划继续 `holding/waiting`,所有计划可并行保活。
|
||||
- 同一 Cursor 标签下多计划用 `planLabel` 区分;消息写入必须命中对应 token 的 wait 或 steerQueue,不能串到其它计划。
|
||||
|
||||
---
|
||||
|
||||
## 对话框 ID 垂直绑定(v1.6.42 · composerId 真源)
|
||||
|
||||
**根因**:仅靠 `cursorTitle`(标签名)绑定时,vscdb 可能读到「最近更新」的其它标签 → `TOKEN_TITLE_MISMATCH` / 标签变来变去。
|
||||
|
||||
| 真源 | 说明 |
|
||||
|:---|:---|
|
||||
| **`composerId`** | Cursor 对话框 ID(`CURSOR_CONVERSATION_ID`);**一个对话框 ↔ 一个 ct_** |
|
||||
| **`composer-bindings.json`** | Hub 权威:`工作区::composer:{id}@IP` → `ct_` |
|
||||
| **`/api/binding/sync-title`** | wait/select 时按 composerId 对齐;标签改名自动 `migrateBindingRename` |
|
||||
| **标签名** | 仅展示/迁移用;**禁止**用标签猜 token |
|
||||
|
||||
**Agent 行为**:`select`/`wait`/`verify` 必须带当前对话框 composerId;标签与 token 不一致时 **先 sync composer**,不要弹错绑选项。
|
||||
|
||||
**同步**:`bash "…/Cursor持久对话/脚本/sync-runtime.sh"`
|
||||
|
||||
---
|
||||
|
||||
## 防 interrupted 融合(v1.6.47 · 6/14 绑定 + 6/12 poll)
|
||||
|
||||
| 保留(6/14) | 回退(6/12) |
|
||||
|:---|:---|
|
||||
| composerId↔ct_ 垂直绑定、sync-title | **单次** `hubPollOnce`(~10s renewal 即归还 Cursor) |
|
||||
| offWait / postDeliverWatchdog / perpetualDev | 禁止 `hubPollUntilReply` 内循环 ≤24s |
|
||||
| steerQueue 续跑 | `[RENEWAL]` 续期跳过 sync/verify HTTP |
|
||||
|
||||
**根因**:6/14 内循环 poll + 前置 verify ≈ 30~40s → 超过 Cursor MCP 单工具超时 → `interrupted` → 任务像自动停止。
|
||||
|
||||
**部署**:`bash 脚本/sync-runtime.sh` → **Cmd+Q 重启 Cursor** → `grep 1.6.47 ~/.persistent-chat-local/server.js`
|
||||
|
||||
---
|
||||
|
||||
## 对话不断(v1.6.49 · 复盘永不停止 · 硬修 interrupted)
|
||||
|
||||
**用户诉求**:对话**保持在场**,不要 interrupted / 「关掉 turn 再续」。
|
||||
|
||||
| 项 | v1.6.49 做法 |
|
||||
|:---|:---|
|
||||
| **MCP** | **仅** `hubPollOnce` ~10s;**禁止** while ≤24s(interrupted 根因) |
|
||||
| **RENEWAL** | 跳过 sync/verify;Hub 错也 renewal 不断环 |
|
||||
| **Hub neverStop** | 1.2s 续跑;【对话续接】;**不 flush steerQueue** |
|
||||
| **Agent** | `[RENEWAL]` 静默立刻再 wait;续接=复盘+wait 同 turn;禁 meta 收工句 |
|
||||
|
||||
```bash
|
||||
bash "脚本/sync-runtime.sh" && bash "脚本/一键重载MCP.sh"
|
||||
# 必须 Cmd+Q 重启 Cursor → grep 1.6.49 ~/.persistent-chat-local/server.js
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 保活显示与不跳转规则(v1.6.32)
|
||||
|
||||
- `waiting` 只表示 Agent 当前真的在 `wait_for_user_input` 等回复。
|
||||
- `holding` 表示计划 token 已绑定并保持连接态;当前没有 wait 时,面板消息先进入排队,等 Agent 下次 wait 自动送达。
|
||||
- `/api/state` 会把所有未结束计划维持为 `connectionHeld=true`;只有用户明确发「结束持久对话」才清掉保活。
|
||||
- 面板列表按创建时间稳定排序,不因 active/waiting 变化置顶;用户点选后轮询只刷新状态,不自动跳到其它会话。
|
||||
- 左侧徽标:`续跑`=有 pending wait 自动续跑;`挂起`=等用户;`保活`=计划连接保持、可排队。
|
||||
|
||||
---
|
||||
|
||||
## 未挂起断链修复(v1.6.39 · Hub)
|
||||
|
||||
**现象**:Cursor Agent 跑完一轮**没调 wait** → 面板「计划保活中(未挂起)」→ 续跑/保活文案进不了 Cursor → 任务像「直接结束」。
|
||||
|
||||
| 层 | 机制 |
|
||||
|:---|:---|
|
||||
| **Hub** | `triggerOffWaitKeepAlive`:绑定会话且未 wait 时,每 10s 把续跑文案写入 `steerQueue`;`/api/continue` 无 wait 时也排队而非 404 |
|
||||
| **Agent** | **每轮必须** 复盘 → `wait_for_user_input`;G26「不要停/直到完成」**禁止**无 wait 收工 |
|
||||
| **开发任务** | 面板切 **直通**(`turbo`),跳过复盘三段式阻塞;`curl` 见下 |
|
||||
|
||||
```bash
|
||||
# MBTI 等开发任务切直通 + 自动续跑
|
||||
curl -s -X POST http://127.0.0.1:13458/api/session/config \
|
||||
-H 'Content-Type: application/json' \
|
||||
-d '{"token":"ct_1d4a71eb","continueMode":"turbo","sessionAutoContinue":true}'
|
||||
```
|
||||
|
||||
**steerQueue 送达**:Agent 下次 `wait` 后,排队续跑**自动**注入 Cursor(poll 首包 dequeue)。
|
||||
|
||||
**同步 Hub**:`bash "…/Cursor持久对话/脚本/sync-runtime.sh"`
|
||||
|
||||
---
|
||||
|
||||
## 永续等待 + 中文回复(v1.6.41 · 强制)
|
||||
|
||||
**可持续对话 = 一直保持等待/保活,不因出错、超时、任务中断而结束。**
|
||||
|
||||
| 铁律 | Agent / Hub |
|
||||
|:---|:---|
|
||||
| **每轮 wait** | 每轮末尾 **必须** `wait_for_user_input`;挂起 = 待命,**不是**结束 |
|
||||
| **出错仍 wait** | `[RENEWAL]`、Hub 超时、连接异常 → **立即**同一 `pchat-token` 再 `wait` |
|
||||
| **不关进度** | 禁止说「对话结束」「停止等待」;禁止清 ct_/关面板会话 |
|
||||
| **唯一停机** | 仅用户当轮 **「结束持久对话」** |
|
||||
| **renewal 静默** | `[RENEWAL]` **不展示**给用户,直接再 `wait` |
|
||||
| **中文回复** | 凡涉及可持续对话/面板/wait/续跑/挂起/ct_ 的回复 **一律中文**(Cursor/MCP/Hub 等专有名词除外) |
|
||||
| **Hub perpetualWait** | 新会话默认 `perpetualWait=true`;绑定会话不因 2h 无 wait 归档 |
|
||||
|
||||
### 出错时 Agent 动作
|
||||
|
||||
```text
|
||||
Hub 异常 / wait 失败 / 收到 RENEWAL
|
||||
→ 不向用户宣布结束
|
||||
→ 中文简短说明(若需)
|
||||
→ 立即再 call wait_for_user_input(同一 pchat-token + title)
|
||||
→ 永不因 retry 次数而停
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## MCP 工具一览
|
||||
|
||||
| 工具 | 用途 |
|
||||
|:---|:---|
|
||||
| `select_conversation` | 选/绑 ct_;冲突时 `ask_user_question` |
|
||||
| `init_conversation` | 新建;**新计划** `newPlan:true` + `cursorTitle` |
|
||||
| `wait_for_user_input` | 挂起;须同一 `pchat-token` + `cursorTitle` |
|
||||
| `verify_karuo_ai_gate` | 每对话至少一次门禁 |
|
||||
| `verify_binding` / `apply_binding_choice` | 垂直绑定校验 |
|
||||
|
||||
**铁律**:一 Cursor 标签 ↔ 一 ct_ ↔ 一 IP;`cursorTitle` 必填。
|
||||
|
||||
**中文标识(强制)**:`cursorTitle` / `planLabel` / 面板 `title` / `prompt` / 续跑文案 **一律中文**;标签为英文时 Agent 须 `rename_chat` 改中文。细则见 `package/templates/persistent-chat.mdc` §中文标识铁律。
|
||||
|
||||
---
|
||||
|
||||
## 卡若复盘 + 续跑节奏
|
||||
|
||||
| 步骤 | 复盘模式 | 直通/优化 |
|
||||
|:---|:---|:---|
|
||||
| ⓪ 读需求 | **每轮** Read 进行中 MD + `references/不间断开发_G22b叠加G26.md` | 同左 |
|
||||
| ① 执行 | Agent 改代码;**边打勾**;bug 当场修 | 同左 |
|
||||
| ② 复盘 | **[卡若复盘]** 🎯目标/✅结果/📊达成率 → 🧭过程 → 🔍反思 → 📌总结 → 🚀下一步执行 | 直通可省略;优化在 Hub 侧补 |
|
||||
| ③ wait | `wait_for_user_input` | 同左 |
|
||||
| ④~⑥ | 追问→检索→执行 | 优化=总结→检索→补文档→执行 |
|
||||
| ⑦ 验收 | 清单全 ✅ → 全量测试页面/细节 → 全绿才 100% | 同左 |
|
||||
|
||||
面板快捷:**追问完成** · **检索完成** · **▶ 继续开发**
|
||||
|
||||
### 不间断开发叠加 G26(v1.6.36)
|
||||
|
||||
用户说 **一直继续 / 不要停 / 直接开发直到完成 / 每轮读需求** 时:
|
||||
|
||||
1. **G22b** 管 `wait` 循环与 13458 续跑(仅「结束持久对话」可停)。
|
||||
2. **G26** 管需求做到验收(见 `持续执行闭环/SKILL.md`)。
|
||||
3. **每轮** 先 Read 项目 `{项目}_进行中_*.md` + 本目录 `references/不间断开发_G22b叠加G26.md`。
|
||||
4. **优化方法** 写入需求 MD「优化沉淀区」与共享文档。
|
||||
5. **开发至全绿**:全部子项 ✅ + 全量回归通过;否则 ▶ 写下一修复/下一子项。
|
||||
|
||||
---
|
||||
|
||||
## 面板 UI(v1.6.14 · 卡若AI Glass)
|
||||
|
||||
- **视觉**:`kir-glass` 毛玻璃 + 蓝紫渐变品牌色(与私域银行统一前端模块一致)
|
||||
- **顶栏**:已连接 + ⋯(新计划/清理/复制提示词)
|
||||
- **侧栏**:增量渲染不闪;显示模式标签
|
||||
- **详情**:自动续跑开关 + 复盘/直通/优化;消息区智能滚底
|
||||
|
||||
UI 真源:`04_卡火(火)/火炬_全栈消息/前端开发/私域银行统一前端模块/`
|
||||
|
||||
---
|
||||
|
||||
## 与其他 MCP / 工具并存
|
||||
|
||||
| 场景 | 做法 |
|
||||
|:---|:---|
|
||||
| 只用持久对话 | `install.sh` 即可,**不必** MCPfinder |
|
||||
| 再加数据库/飞书等 MCP | 走 **MCP管理 SKILL** 搜索安装,与 persistent-chat **并列** |
|
||||
| 外部脚本发回复 | POST `http://127.0.0.1:13458/api/reply` |
|
||||
| Codex/类似工具 | 对接同一 Hub API,见 **部署与长连接接入.md §四** |
|
||||
|
||||
---
|
||||
|
||||
## 成功 / 失败判定
|
||||
|
||||
### ✅ 成功
|
||||
|
||||
- MCP 绿点;面板「已连接」
|
||||
- `wait_for_user_input` 出现在 Cursor 工具调用
|
||||
- 面板回复后 Agent 立刻继续
|
||||
- 左侧选中会话不闪;滚底正常
|
||||
|
||||
### ❌ 常见故障
|
||||
|
||||
| 现象 | 动作 |
|
||||
|:---|:---|
|
||||
| 两个 persistent-chat | `bash 脚本/清理重复MCP.sh` |
|
||||
| 发错 ct_ | 面板 token 须与 Cursor pchat-token 一致 |
|
||||
| 面板离线 | `bash 脚本/sync-runtime.sh` |
|
||||
| 左侧 idle 堆满 | ⋯ → 清理旧会话 |
|
||||
| 优化不跑 | 详情区切「优化」+ 开自动续跑 |
|
||||
| wait 后进程自己退出 | `server.js` 已改:stdin 关闭后,只要还有活跃会话/连接态就不退出;同步运行时后生效 |
|
||||
| **续跑断链 / 未挂起** | Agent 未 wait → Hub v1.6.39 已排队续跑;**须** Agent 下轮调 wait 送达;开发任务切 **直通** |
|
||||
| **发消息后停了** | `bash 脚本/check-continuous-loop.sh ct_xxx`;确认 `connectionHeld` 仍为 true |
|
||||
| **等待被中断** | v1.6.47:回退 6/12 单次 poll;Hub 异常也 renewal 不断环;须 Cmd+Q 重载 MCP |
|
||||
|
||||
---
|
||||
|
||||
## 文件布局
|
||||
|
||||
| 路径 | 说明 |
|
||||
|:---|:---|
|
||||
| `package/hub.js` | Hub 源码真源 |
|
||||
| `package/panel.html` | 面板源码真源 |
|
||||
| `package/server.js` | MCP 客户端 |
|
||||
| `~/.persistent-chat-local/` | 运行时(sync 同步) |
|
||||
| `~/.cursor/mcp.json` | 全局 MCP |
|
||||
| `<项目>/.cursor/rules/persistent-chat.mdc` | Agent 规则 |
|
||||
| Mongo `karuo_site.持久对话会话` | 备份 |
|
||||
|
||||
---
|
||||
|
||||
## 版本记录
|
||||
|
||||
| 版本 | 要点 |
|
||||
|:---|:---|
|
||||
| **1.6.36** | **不间断开发叠加 G26**:每轮读需求、边打勾、开发至全绿、优化沉淀;共享文档 `references/不间断开发_G22b叠加G26.md` |
|
||||
| **1.6.17** | 自动续跑默认 **10秒**;定时间隔默认 **自动**,固定 30s/4min/9min |
|
||||
| **1.6.16** | **定时回复**:预设与 Hub 调度;修 panel duplicate let |
|
||||
| **1.6.14** | 卡若AI Glass UI;Skill+部署文档完善 |
|
||||
| **1.6.13** | 单对话三模式(复盘/直通/优化);`/api/session/config` |
|
||||
| **1.6.12** | 侧栏增量渲染;智能滚底;顶栏精简 |
|
||||
| **1.6.3** | 垂直绑定铁律 |
|
||||
| **1.5** | 自动续跑默认开;恢复对话 |
|
||||
|
||||
---
|
||||
|
||||
## 卸载
|
||||
|
||||
```bash
|
||||
rm -rf ~/.persistent-chat-local
|
||||
# 编辑 ~/.cursor/mcp.json 删除 persistent-chat
|
||||
```
|
||||
3
01_卡资(金)/金仓_存储备份/Cursor持久对话/VERSION_LOCK
Normal file
3
01_卡资(金)/金仓_存储备份/Cursor持久对话/VERSION_LOCK
Normal file
@@ -0,0 +1,3 @@
|
||||
1.6.37
|
||||
locked_at=2026-06-29T10:33:48+08:00
|
||||
plugin_root=/Users/karuo/Documents/个人/persistent-chat-plugin
|
||||
@@ -0,0 +1,224 @@
|
||||
{
|
||||
"/Users/karuo/Documents/个人::MCP连接验证-20260626@192.168.3.1": {
|
||||
"token": "ct_f9feebda",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"updatedAt": 1782448231182
|
||||
},
|
||||
"/Users/karuo/Documents/个人 2::Trae持续对话迁移@192.168.3.1": {
|
||||
"token": "ct_8017ec8c",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"updatedAt": 1782450795018
|
||||
},
|
||||
"/Users/karuo/Documents/个人::Trae重装验证-20260626@192.168.3.1": {
|
||||
"token": "ct_3a4e8a75",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"updatedAt": 1782448623061
|
||||
},
|
||||
"/Users/karuo/Documents/个人::可持续对话-20260626@192.168.3.1": {
|
||||
"token": "ct_f3a15ea1",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"updatedAt": 1782453886768
|
||||
},
|
||||
"/Users/karuo/Documents/个人::持久对话永久续跑-20260626@192.168.3.1": {
|
||||
"token": "ct_f3a15ea1",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"updatedAt": 1782450202336
|
||||
},
|
||||
"/Users/karuo/Movies/soul视频::CODEX持续对话不中断修复@192.168.3.1": {
|
||||
"token": "ct_79c877c9",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"updatedAt": 1782471437537
|
||||
},
|
||||
"/Users/karuo/Movies/soul视频::CODEX持续对话不中断验证@192.168.3.1": {
|
||||
"token": "ct_79d712d3",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"updatedAt": 1782471635094
|
||||
},
|
||||
"/Users/karuo/Documents/个人 2::继续用可持续对话@192.168.3.1": {
|
||||
"token": "ct_fd19663f",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"updatedAt": 1782481462482
|
||||
},
|
||||
"/Users/karuo/Documents/个人 2::mbti王@192.168.3.1": {
|
||||
"token": "ct_e7f24f80",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"updatedAt": 1782513791241
|
||||
},
|
||||
"/Users/karuo/Documents/个人 2::个人 2@192.168.3.1": {
|
||||
"token": "ct_a9041b43",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"updatedAt": 1782512901718
|
||||
},
|
||||
"/Users/karuo/Documents/个人 2::修复Codex线程读取报错@192.168.3.1": {
|
||||
"token": "ct_d2c4fd54",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"updatedAt": 1782526295598
|
||||
},
|
||||
"/Users/karuo/Documents/个人 2::恢复Codex对话记录@192.168.3.1": {
|
||||
"token": "ct_ca8c6f6d",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "192.168.110.101:13458",
|
||||
"updatedAt": 1782527358213
|
||||
},
|
||||
"/Users/karuo/Documents/个人 2::mbti王-勾选已完成需求@192.168.3.1": {
|
||||
"token": "ct_6ee84716",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "192.168.110.101:13458",
|
||||
"updatedAt": 1782561067784
|
||||
},
|
||||
"/Users/karuo/Documents/个人 2::mbti王-需求勾选同步@192.168.3.1": {
|
||||
"token": "ct_1f89ce17",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "192.168.110.101:13458",
|
||||
"updatedAt": 1782561135829
|
||||
},
|
||||
"/Users/karuo/Documents/个人 2::mbti王-需求高考版整理@192.168.3.1": {
|
||||
"token": "ct_2d71a51d",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"updatedAt": 1782562082336
|
||||
},
|
||||
"/Users/karuo/Documents/个人::工作手机开发@192.168.3.1": {
|
||||
"token": "ct_416ecd8a",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"updatedAt": 1782597502343
|
||||
},
|
||||
"/Users/karuo/Documents/个人::Codex可持续对话迁移验证@192.168.3.1": {
|
||||
"token": "ct_52930d68",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"updatedAt": 1782566117547
|
||||
},
|
||||
"/Users/karuo/Documents/个人::工作手机部署NAS@192.168.3.1": {
|
||||
"token": "ct_195ff862",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "192.168.110.101:13458",
|
||||
"updatedAt": 1782568355795
|
||||
},
|
||||
"/Users/karuo/Documents/个人::工作手机版本降级到1.6.37@192.168.3.1": {
|
||||
"token": "ct_b65f6044",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"updatedAt": 1782638395011
|
||||
},
|
||||
"/Users/karuo/Documents/个人::存客宝工作手机微信链路全面检查@192.168.3.1": {
|
||||
"token": "ct_4346073a",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"updatedAt": 1782572327886
|
||||
},
|
||||
"/Users/karuo/Documents/个人::私域银行全项目需求开发@192.168.3.1": {
|
||||
"token": "ct_a883e14a",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"updatedAt": 1782612844424
|
||||
},
|
||||
"/Users/karuo/Documents/个人::存客宝功能完善复检@192.168.3.1": {
|
||||
"token": "ct_7dda1f8b",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"updatedAt": 1782572328055
|
||||
},
|
||||
"/Users/karuo/Documents/个人::mbti王-需求高考版整理@192.168.3.1": {
|
||||
"token": "ct_252aa00f",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"updatedAt": 1782572308129
|
||||
},
|
||||
"/Users/karuo/Documents/个人::Trae 中英文版配置迁移@192.168.3.1": {
|
||||
"token": "ct_4b73f2a2",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"updatedAt": 1782577296232
|
||||
},
|
||||
"/Users/karuo/Documents/个人::个人 2@192.168.3.1": {
|
||||
"token": "ct_3da81225",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"updatedAt": 1782696025212
|
||||
},
|
||||
"/Users/karuo/Documents/个人::对接配置接口梳理@192.168.3.1": {
|
||||
"token": "ct_b41c40ad",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"updatedAt": 1782642489268
|
||||
},
|
||||
"/Users/karuo/Documents/个人::市场调研-工作手机源码@192.168.3.1": {
|
||||
"token": "ct_3d469745",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"updatedAt": 1782643011397
|
||||
},
|
||||
"/Users/karuo/Documents/个人::SuperAdmin工作手机切换需求文档@192.168.3.1": {
|
||||
"token": "ct_857e1daf",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"updatedAt": 1782664185114
|
||||
},
|
||||
"/Users/karuo/Documents/个人::工作手机@192.168.3.1": {
|
||||
"token": "ct_0cee24c2",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"updatedAt": 1782664228161
|
||||
},
|
||||
"/Users/karuo/Documents/个人::工作手机SDK演示@192.168.3.1": {
|
||||
"token": "ct_57f3beb5",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"updatedAt": 1782646785446
|
||||
},
|
||||
"/Users/karuo/Documents/个人::SuperAdmin当日需求@192.168.3.1": {
|
||||
"token": "ct_fbbca11a",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"updatedAt": 1782648780698
|
||||
},
|
||||
"/Users/karuo/Documents/个人::私域银行-工作手机开发@192.168.3.1": {
|
||||
"token": "ct_db298e18",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"updatedAt": 1782684364088
|
||||
},
|
||||
"/Users/karuo/Documents/个人::Codex限额监控插件@192.168.3.1": {
|
||||
"token": "ct_cc0ef5d9",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"updatedAt": 1782687674552
|
||||
},
|
||||
"/Users/karuo/Documents/个人::运营-剪辑@192.168.3.1": {
|
||||
"token": "ct_6cc01012",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"updatedAt": 1782688072444
|
||||
},
|
||||
"/Users/karuo/Documents/个人::soul视频@192.168.3.1": {
|
||||
"token": "ct_6a6781d1",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"updatedAt": 1782701417290
|
||||
},
|
||||
"/Users/karuo/Documents/个人::卡若创业派对收费策略需求整理@192.168.3.1": {
|
||||
"token": "ct_71f7c3fe",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"updatedAt": 1782696941588
|
||||
},
|
||||
"/Users/karuo/Documents/个人::Soul创业派对团队分润问题处理@192.168.3.1": {
|
||||
"token": "ct_4d8a312f",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"updatedAt": 1782699663007
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,196 @@
|
||||
model = "gpt-5.4"
|
||||
model_reasoning_effort = "low"
|
||||
service_tier = "priority"
|
||||
personality = "pragmatic"
|
||||
approval_policy = "never"
|
||||
sandbox_mode = "danger-full-access"
|
||||
check_for_update_on_startup = false
|
||||
|
||||
notify = ["/Users/karuo/.codex/computer-use/Codex Computer Use.app/Contents/SharedSupport/SkyComputerUseClient.app/Contents/MacOS/SkyComputerUseClient", "turn-ended"]
|
||||
|
||||
[marketplaces.openai-bundled]
|
||||
last_updated = "2026-06-26T13:03:00Z"
|
||||
source_type = "local"
|
||||
source = "/Users/karuo/.codex/.tmp/bundled-marketplaces/openai-bundled"
|
||||
|
||||
[marketplaces.openai-primary-runtime]
|
||||
last_updated = "2026-06-23T03:15:54Z"
|
||||
source_type = "local"
|
||||
source = "/Users/karuo/.cache/codex-runtimes/codex-primary-runtime/plugins/openai-primary-runtime"
|
||||
|
||||
[plugins."documents@openai-primary-runtime"]
|
||||
enabled = true
|
||||
|
||||
[plugins."spreadsheets@openai-primary-runtime"]
|
||||
enabled = true
|
||||
|
||||
[plugins."presentations@openai-primary-runtime"]
|
||||
enabled = true
|
||||
|
||||
[plugins."hyperframes@openai-curated"]
|
||||
enabled = true
|
||||
|
||||
[plugins."slack@openai-curated"]
|
||||
enabled = true
|
||||
|
||||
[plugins."vercel@openai-curated"]
|
||||
enabled = true
|
||||
|
||||
[plugins."build-macos-apps@openai-curated"]
|
||||
enabled = true
|
||||
|
||||
[plugins."build-ios-apps@openai-curated"]
|
||||
enabled = true
|
||||
|
||||
[plugins."build-web-apps@openai-curated"]
|
||||
enabled = true
|
||||
|
||||
[plugins."figma@openai-curated"]
|
||||
enabled = true
|
||||
|
||||
[plugins."windsor-ai@openai-curated"]
|
||||
enabled = true
|
||||
|
||||
[plugins."remotion@openai-curated"]
|
||||
enabled = true
|
||||
|
||||
[plugins."canva@openai-curated"]
|
||||
enabled = true
|
||||
|
||||
[plugins."github@openai-curated"]
|
||||
enabled = true
|
||||
|
||||
[plugins."pdf@openai-primary-runtime"]
|
||||
enabled = true
|
||||
|
||||
[plugins."browser@openai-bundled"]
|
||||
enabled = true
|
||||
|
||||
[plugins."template-creator@openai-primary-runtime"]
|
||||
enabled = true
|
||||
|
||||
[plugins."chrome@openai-bundled"]
|
||||
enabled = true
|
||||
|
||||
[plugins."computer-use@openai-bundled"]
|
||||
enabled = true
|
||||
|
||||
[mcp_servers.node_repl]
|
||||
args = []
|
||||
command = "/Applications/Codex.app/Contents/Resources/node_repl"
|
||||
startup_timeout_sec = 120
|
||||
|
||||
[mcp_servers.node_repl.env]
|
||||
NODE_REPL_NATIVE_PIPE_CONNECT_TIMEOUT_MS = "1000"
|
||||
NODE_REPL_NODE_MODULE_DIRS = ""
|
||||
NODE_REPL_NODE_PATH = "/Applications/Codex.app/Contents/Resources/node"
|
||||
NODE_REPL_TRUSTED_CODE_PATHS = "/Users/karuo/.codex"
|
||||
CODEX_HOME = "/Users/karuo/.codex"
|
||||
NODE_REPL_TRUSTED_BROWSER_CLIENT_SHA256S = "496c7b3cb95b4bc20cff49b513150606e0da0000c92bf752206bee5a6c248423"
|
||||
BROWSER_USE_AVAILABLE_BACKENDS = "chrome,iab"
|
||||
BROWSER_USE_MARKETPLACE_NAME = "openai-bundled"
|
||||
NODE_REPL_UNTRUSTED_ENV_ALLOWLIST = "BROWSER_USE_MARKETPLACE_NAME"
|
||||
CODEX_CLI_PATH = "/Applications/Codex.app/Contents/Resources/codex"
|
||||
|
||||
[shell_environment_policy]
|
||||
inherit = "core"
|
||||
|
||||
[shell_environment_policy.set]
|
||||
ANTHROPIC_AUTH_TOKEN = "sk-ICT5L0hPqwNeTKvIDgMeOaivp4ojvEgUeykud1GSkQnUaFew"
|
||||
ANTHROPIC_API_KEY = "sk-ICT5L0hPqwNeTKvIDgMeOaivp4ojvEgUeykud1GSkQnUaFew"
|
||||
ANTHROPIC_BASE_URL = "https://timesniper.club"
|
||||
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC = "1"
|
||||
ANTHROPIC_MODEL = "claude-sonnet-4-6"
|
||||
|
||||
[desktop]
|
||||
conversationDetailMode = "STEPS_COMMANDS"
|
||||
ambient-suggestions-enabled = true
|
||||
preventSleepWhileRunning = true
|
||||
reviewDelivery = "detached"
|
||||
followUpQueueMode = "queue"
|
||||
default-service-tier = "priority"
|
||||
|
||||
[desktop.open-in-target-preferences]
|
||||
global = "fileManager"
|
||||
|
||||
[desktop.open-in-target-preferences.perPath]
|
||||
"/Users/karuo/Documents/开发/2、私域银行/cunkebao_v3" = "fileManager"
|
||||
|
||||
[projects."/Users/karuo/Documents/Codex/2026-06-07/users-karuo-documents-ai-ai-ser"]
|
||||
trust_level = "trusted"
|
||||
|
||||
[projects."/Users/karuo/Documents/开发/2、私域银行/cunkebao_v3"]
|
||||
trust_level = "trusted"
|
||||
|
||||
[projects."/Users/karuo/Documents/开发/3、自营项目/BUDDY"]
|
||||
trust_level = "trusted"
|
||||
|
||||
[projects."/Users/karuo/Documents/开发/2、私域银行/工作手机"]
|
||||
trust_level = "trusted"
|
||||
|
||||
[projects."/Users/karuo/Documents/个人 2"]
|
||||
trust_level = "trusted"
|
||||
|
||||
[projects."/Users/karuo/Movies/soul视频"]
|
||||
trust_level = "trusted"
|
||||
|
||||
[projects."/Users/karuo/Documents/开发/3、自营项目/mbti王"]
|
||||
trust_level = "trusted"
|
||||
|
||||
[projects."/Users/karuo/Downloads/未命名文件夹 4"]
|
||||
trust_level = "trusted"
|
||||
|
||||
[projects."/Users/karuo/Documents/个人/卡若AI"]
|
||||
trust_level = "trusted"
|
||||
|
||||
[projects."/Users/karuo/Documents/个人"]
|
||||
trust_level = "trusted"
|
||||
|
||||
[projects."/Users/karuo/Documents/开发/4、小工具/服务器管理"]
|
||||
trust_level = "trusted"
|
||||
|
||||
[projects."/Users/karuo/Documents/开发/3、自营项目/玩值电竞App"]
|
||||
trust_level = "trusted"
|
||||
|
||||
[memories]
|
||||
generate_memories = true
|
||||
use_memories = true
|
||||
disable_on_external_context = true
|
||||
|
||||
[features]
|
||||
js_repl = false
|
||||
|
||||
[mcp_servers.persistent-chat]
|
||||
command = "bash"
|
||||
args = ["/Users/karuo/.persistent-chat-local/ensure-hub.sh", "--workspace=/Users/karuo/Documents/个人"]
|
||||
|
||||
[mcp_servers.persistent-chat.env]
|
||||
PCHAT_VSIX_4TOOLS = "1"
|
||||
PCHAT_TOOL_SET = "4"
|
||||
PCHAT_SHORT_ROUND = "0"
|
||||
PCHAT_PANEL_WAIT = "1"
|
||||
PCHAT_WAKE_HOOK = "1"
|
||||
PCHAT_CURSOR_AUTO_CONTINUE = "1"
|
||||
PCHAT_HTTP_PORT = "13458"
|
||||
PCHAT_NODE = "/usr/local/opt/node@22/bin/node"
|
||||
|
||||
[mcp_servers.persistent-chat.tools.wait_for_user_input]
|
||||
approval_mode = "auto"
|
||||
|
||||
[mcp_servers.persistent-chat.tools.init_conversation]
|
||||
approval_mode = "auto"
|
||||
|
||||
[mcp_servers.persistent-chat.tools.merge_conversation]
|
||||
approval_mode = "auto"
|
||||
|
||||
[mcp_servers.persistent-chat.tools.select_conversation]
|
||||
approval_mode = "auto"
|
||||
|
||||
[mcp_servers.persistent-chat.tools.verify_binding]
|
||||
approval_mode = "auto"
|
||||
|
||||
[mcp_servers.persistent-chat.tools.verify_karuo_ai_gate]
|
||||
approval_mode = "auto"
|
||||
|
||||
[mcp_servers.persistent-chat.tools.apply_binding_choice]
|
||||
approval_mode = "auto"
|
||||
@@ -0,0 +1,141 @@
|
||||
'use strict';
|
||||
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
const { execFileSync } = require('child_process');
|
||||
const crypto = require('crypto');
|
||||
|
||||
const HOME = process.env.HOME || process.env.USERPROFILE || '';
|
||||
const VSCDB = path.join(
|
||||
HOME,
|
||||
'Library/Application Support/Cursor/User/globalStorage/state.vscdb'
|
||||
);
|
||||
const LOOP_DIR = path.join(HOME, '.cursor-loop');
|
||||
const ACTIVE_VERTICAL = path.join(LOOP_DIR, 'active-vertical.json');
|
||||
|
||||
function normTitle(title) {
|
||||
const t = String(title || '').trim();
|
||||
return t || '(未命名标签)';
|
||||
}
|
||||
|
||||
function readActiveVertical() {
|
||||
try {
|
||||
const raw = fs.readFileSync(ACTIVE_VERTICAL, 'utf8');
|
||||
const j = JSON.parse(raw);
|
||||
if (j && j.title) return j;
|
||||
} catch {}
|
||||
return null;
|
||||
}
|
||||
|
||||
function writeActiveVertical(payload) {
|
||||
try {
|
||||
fs.mkdirSync(LOOP_DIR, { recursive: true });
|
||||
fs.writeFileSync(
|
||||
ACTIVE_VERTICAL,
|
||||
JSON.stringify({ ...payload, updatedAt: Date.now() }, null, 2)
|
||||
);
|
||||
} catch {}
|
||||
}
|
||||
|
||||
function queryVscdb(sql) {
|
||||
if (!fs.existsSync(VSCDB)) return null;
|
||||
try {
|
||||
return execFileSync('sqlite3', [VSCDB, sql], { encoding: 'utf8', timeout: 3000 }).trim();
|
||||
} catch {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
function loadComposerHeaders() {
|
||||
const raw = queryVscdb(
|
||||
"SELECT value FROM ItemTable WHERE key='composer.composerHeaders' LIMIT 1;"
|
||||
);
|
||||
if (!raw) return null;
|
||||
try {
|
||||
return JSON.parse(raw);
|
||||
} catch {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
function pickComposer(headers, opts = {}) {
|
||||
const list = headers?.allComposers || [];
|
||||
const composerId =
|
||||
opts.composerId ||
|
||||
process.env.CURSOR_CONVERSATION_ID ||
|
||||
process.env.CURSOR_CHAT_ID ||
|
||||
process.env.COMPOSER_ID ||
|
||||
readActiveVertical()?.composerId;
|
||||
|
||||
if (composerId) {
|
||||
const hit = list.find((c) => c.composerId === composerId);
|
||||
if (hit) return hit;
|
||||
}
|
||||
|
||||
const wsHint = String(opts.workspace || '').replace(/\/+$/, '');
|
||||
const candidates = list.filter((c) => c.type === 'head' && !c.isArchived);
|
||||
if (wsHint) {
|
||||
const wsMatch = candidates.filter((c) => {
|
||||
const cfg = c.workspaceIdentifier?.configPath;
|
||||
const fp = cfg?.fsPath || cfg?.path || '';
|
||||
return fp && (wsHint.includes(fp) || fp.includes(wsHint));
|
||||
});
|
||||
if (wsMatch.length) {
|
||||
wsMatch.sort((a, b) => (b.lastUpdatedAt || 0) - (a.lastUpdatedAt || 0));
|
||||
return wsMatch[0];
|
||||
}
|
||||
}
|
||||
candidates.sort((a, b) => (b.lastUpdatedAt || 0) - (a.lastUpdatedAt || 0));
|
||||
return candidates[0] || null;
|
||||
}
|
||||
|
||||
/** 解析当前 Cursor Agent 标签名(真源:args > threadLock > active-vertical > vscdb) */
|
||||
function resolveCursorTabTitle(opts = {}) {
|
||||
const fromArgs = opts.cursorTitle || opts.title;
|
||||
if (fromArgs && normTitle(fromArgs) !== '(未命名标签)') {
|
||||
return { title: normTitle(fromArgs), source: 'args', composerId: opts.composerId || null };
|
||||
}
|
||||
|
||||
const active = readActiveVertical();
|
||||
if (active?.title && normTitle(active.title) !== '(未命名标签)') {
|
||||
const age = Date.now() - (active.updatedAt || 0);
|
||||
if (age < 30 * 60 * 1000) {
|
||||
return {
|
||||
title: normTitle(active.title),
|
||||
source: 'active-vertical',
|
||||
composerId: active.composerId || null,
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
const envTitle = process.env.CURSOR_CHAT_TITLE || process.env.PCHAT_CURSOR_TITLE;
|
||||
if (envTitle) {
|
||||
return { title: normTitle(envTitle), source: 'env', composerId: null };
|
||||
}
|
||||
|
||||
const headers = loadComposerHeaders();
|
||||
const composer = pickComposer(headers, opts);
|
||||
if (composer?.name) {
|
||||
const payload = {
|
||||
composerId: composer.composerId,
|
||||
title: normTitle(composer.name),
|
||||
workspace: composer.workspaceIdentifier?.configPath?.fsPath || opts.workspace || '',
|
||||
};
|
||||
writeActiveVertical(payload);
|
||||
return {
|
||||
title: payload.title,
|
||||
source: 'vscdb',
|
||||
composerId: composer.composerId,
|
||||
};
|
||||
}
|
||||
|
||||
return { title: '', source: 'missing', composerId: null };
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
resolveCursorTabTitle,
|
||||
writeActiveVertical,
|
||||
readActiveVertical,
|
||||
ACTIVE_VERTICAL,
|
||||
normTitle,
|
||||
};
|
||||
@@ -0,0 +1,65 @@
|
||||
#!/usr/bin/env bash
|
||||
# 启动 MCP 前确保 Hub 在 13458 运行(全局唯一)
|
||||
set -eo pipefail
|
||||
INSTALL="$(cd "$(dirname "$0")" && pwd)"
|
||||
PORT="${PCHAT_HTTP_PORT:-13458}"
|
||||
HUB_HOST="${PCHAT_HUB_HOST:-127.0.0.1}"
|
||||
LOG="$INSTALL/logs/hub.log"
|
||||
NODE="${PCHAT_NODE:-$(command -v node 2>/dev/null || true)}"
|
||||
[[ -z "$NODE" ]] && NODE="/usr/local/opt/node@22/bin/node"
|
||||
|
||||
mkdir -p "$INSTALL/logs"
|
||||
|
||||
if [[ ! -x "$NODE" ]]; then
|
||||
echo "[ensure-hub] FATAL: node not found: $NODE" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
hub_health() {
|
||||
curl -sf -m 2 "http://${HUB_HOST}:${PORT}/api/health" >/dev/null 2>&1
|
||||
}
|
||||
|
||||
start_hub() {
|
||||
if hub_health; then return 0; fi
|
||||
if [[ "$HUB_HOST" != "127.0.0.1" && "$HUB_HOST" != "localhost" ]]; then
|
||||
echo "[ensure-hub] remote hub not ready: http://${HUB_HOST}:${PORT}; fallback to local :${PORT}" >> "$LOG"
|
||||
HUB_HOST="127.0.0.1"
|
||||
export PCHAT_HUB_HOST="$HUB_HOST"
|
||||
hub_health && return 0
|
||||
fi
|
||||
echo "[ensure-hub] starting hub on :${PORT}" >> "$LOG"
|
||||
nohup "$NODE" "$INSTALL/hub.js" >> "$INSTALL/logs/hub.stdout.log" 2>&1 &
|
||||
local i=0
|
||||
while [[ $i -lt 80 ]]; do
|
||||
hub_health && return 0
|
||||
sleep 0.15
|
||||
i=$((i + 1))
|
||||
done
|
||||
return 1
|
||||
}
|
||||
|
||||
if ! start_hub; then
|
||||
echo "[ensure-hub] FATAL: Hub not ready on ${HUB_HOST}:${PORT} (waited ~12s). Run: bash 卡若AI/.../Cursor持久对话/脚本/sync-runtime.sh" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Cursor 无工作区时 ${workspaceFolder} 可能为空/none/未替换字面量 → 兜底 HOME
|
||||
ARGS=()
|
||||
for a in "$@"; do
|
||||
case "$a" in
|
||||
--workspace=|--workspace=none|--workspace=\$\{workspaceFolder\})
|
||||
ARGS+=("--workspace=$HOME")
|
||||
;;
|
||||
--workspace=*)
|
||||
ARGS+=("$a")
|
||||
;;
|
||||
*)
|
||||
ARGS+=("$a")
|
||||
;;
|
||||
esac
|
||||
done
|
||||
if [[ ${#ARGS[@]} -eq 0 ]] || ! printf '%s\n' "${ARGS[@]}" | grep -q '^--workspace='; then
|
||||
ARGS+=("--workspace=${PWD:-$HOME}")
|
||||
fi
|
||||
|
||||
exec "$NODE" "$INSTALL/server.js" "${ARGS[@]}"
|
||||
2491
01_卡资(金)/金仓_存储备份/Cursor持久对话/backups/persistent-chat-local_20260629/hub.js
Executable file
2491
01_卡资(金)/金仓_存储备份/Cursor持久对话/backups/persistent-chat-local_20260629/hub.js
Executable file
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,143 @@
|
||||
#!/usr/bin/env bash
|
||||
# 方案B · Hub 短回合唤醒守护:HTTP 拉续跑 → 写入 ~/.cursor-loop/wake/{ct_}.md
|
||||
set -u
|
||||
PORT="${PCHAT_HTTP_PORT:-13458}"
|
||||
HUB="http://127.0.0.1:${PORT}"
|
||||
export WAKE_DIR="${PCHAT_WAKE_DIR:-$HOME/.cursor-loop/wake}"
|
||||
LOG_DIR="${PCHAT_WAKE_LOG_DIR:-$HOME/.cursor-loop/logs}"
|
||||
LOG="$LOG_DIR/hub_wake_daemon.log"
|
||||
POLL_SEC="${PCHAT_WAKE_POLL_SEC:-2}"
|
||||
|
||||
mkdir -p "$WAKE_DIR" "$LOG_DIR"
|
||||
|
||||
log() {
|
||||
printf '%s %s\n' "$(date '+%Y-%m-%d %H:%M:%S')" "$*" >>"$LOG"
|
||||
}
|
||||
|
||||
hub_ok() {
|
||||
curl -sf -m 2 "$HUB/api/health" >/dev/null 2>&1
|
||||
}
|
||||
|
||||
# 禁止 curl|python3 - <<'PY'(pipe 与 heredoc 争 stdin,json.load 恒失败)
|
||||
pull_tokens() {
|
||||
local state_json
|
||||
state_json="$(curl -sf -m 5 "$HUB/api/state" 2>/dev/null)" || return 0
|
||||
[[ -z "$state_json" ]] && return 0
|
||||
PCHAT_STATE_JSON="$state_json" python3 - <<'PY'
|
||||
import os, json
|
||||
try:
|
||||
d = json.loads(os.environ.get("PCHAT_STATE_JSON", "{}"))
|
||||
except Exception:
|
||||
raise SystemExit(0)
|
||||
seen = set()
|
||||
for s in d.get("sessions") or []:
|
||||
if s.get("isAbandoned"):
|
||||
continue
|
||||
sq = int(s.get("steerQueueCount") or 0)
|
||||
short = bool(s.get("shortRoundMode"))
|
||||
if short:
|
||||
manual = bool(s.get("steerManualQueued"))
|
||||
panel_pending = bool(s.get("panelPendingSince"))
|
||||
if not manual and not panel_pending:
|
||||
continue
|
||||
elif not (s.get("connectionHeld") or s.get("hasPending") or sq > 0):
|
||||
continue
|
||||
tok = (s.get("token") or "").strip()
|
||||
if tok.startswith("ct_") and tok not in seen:
|
||||
seen.add(tok)
|
||||
print(tok)
|
||||
PY
|
||||
}
|
||||
|
||||
process_wake_pull() {
|
||||
local token="$1"
|
||||
local resp out status
|
||||
resp="$(curl -sf -m 5 -X POST "$HUB/api/wake/pull" \
|
||||
-H 'Content-Type: application/json' \
|
||||
-d "{\"token\":\"$token\"}" 2>/dev/null || echo '{}')"
|
||||
[[ -z "$resp" ]] && return 0
|
||||
out="$(WAKE_DIR="$WAKE_DIR" WAKE_RESP="$resp" python3 - <<'PY' 2>/dev/null || true
|
||||
import os, json, sys, time
|
||||
from datetime import datetime
|
||||
try:
|
||||
d = json.loads(os.environ.get("WAKE_RESP", "{}"))
|
||||
except Exception:
|
||||
sys.exit(2)
|
||||
if d.get("status") != "replied":
|
||||
sys.exit(1)
|
||||
token = d.get("token", "")
|
||||
reply = d.get("reply", "")
|
||||
title = d.get("cursorTitle", "")
|
||||
workspace = d.get("workspace", "")
|
||||
manual = bool(d.get("manual"))
|
||||
auto = bool(d.get("auto"))
|
||||
wake_dir = os.environ.get("WAKE_DIR", os.path.expanduser("~/.cursor-loop/wake"))
|
||||
path = os.path.join(wake_dir, f"{token}.md")
|
||||
body = f"""# Hub 唤醒 · 方案B
|
||||
|
||||
- **token**: `{token}`
|
||||
- **cursorTitle**: {title}
|
||||
- **workspace**: {workspace}
|
||||
- **at**: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}
|
||||
- **来源**: {'面板消息' if manual else '自动续跑(仅备查,不注入对话)'}
|
||||
|
||||
## 续跑指令(Agent 下轮必须先 Read 本文件再执行)
|
||||
|
||||
```text
|
||||
{reply}
|
||||
```
|
||||
|
||||
## Agent 动作
|
||||
|
||||
1. Read 本文件 + 进行中需求 MD + `references/不间断开发_G22b叠加G26.md`
|
||||
2. 执行 ▶;wait 须 shortRound(默认),禁止长 poll
|
||||
3. 复盘五块 → shortRound register
|
||||
"""
|
||||
os.makedirs(wake_dir, exist_ok=True)
|
||||
with open(path, "w", encoding="utf-8") as f:
|
||||
f.write(body)
|
||||
# 仅面板真人消息写 pending(供可选 PCHAT_WAKE_HOOK=1);自动续跑禁止注入 Cursor 对话
|
||||
if manual:
|
||||
pending_path = os.path.join(wake_dir, f"_pending_{token}.json")
|
||||
payload = {
|
||||
"token": token,
|
||||
"reply": reply,
|
||||
"cursorTitle": title,
|
||||
"workspace": workspace,
|
||||
"at": time.time(),
|
||||
"consumed": False,
|
||||
"manual": True,
|
||||
"auto": False,
|
||||
}
|
||||
with open(pending_path, "w", encoding="utf-8") as f:
|
||||
json.dump(payload, f, ensure_ascii=False)
|
||||
legacy = os.path.join(wake_dir, "_pending_followup.json")
|
||||
with open(legacy, "w", encoding="utf-8") as f:
|
||||
json.dump(payload, f, ensure_ascii=False)
|
||||
print(f"replied|{path}|manual={int(manual)}")
|
||||
PY
|
||||
)"
|
||||
if [[ -n "$out" && "$out" == replied\|* ]]; then
|
||||
log "pull ok token=$token path=${out#replied|}"
|
||||
return 0
|
||||
fi
|
||||
status="$(printf '%s' "$resp" | python3 -c 'import sys,json; print(json.load(sys.stdin).get("status",""))' 2>/dev/null || echo '')"
|
||||
if [[ -n "$status" && "$status" != "replied" ]]; then
|
||||
log "pull skip token=$token status=$status"
|
||||
fi
|
||||
}
|
||||
|
||||
log "daemon start hub=$HUB wake=$WAKE_DIR poll=${POLL_SEC}s"
|
||||
|
||||
while true; do
|
||||
if ! hub_ok; then
|
||||
log "hub offline, sleep ${POLL_SEC}s"
|
||||
sleep "$POLL_SEC"
|
||||
continue
|
||||
fi
|
||||
while IFS= read -r token; do
|
||||
[[ -z "$token" ]] && continue
|
||||
process_wake_pull "$token"
|
||||
done < <(pull_tokens || true)
|
||||
sleep "$POLL_SEC"
|
||||
done
|
||||
@@ -0,0 +1,52 @@
|
||||
#!/usr/bin/env python3
|
||||
"""持久对话会话 → MongoDB karuo_site.持久对话会话(本地 ~/.persistent-chat-local/sessions.json)"""
|
||||
import json
|
||||
import os
|
||||
import sys
|
||||
from datetime import datetime, timezone
|
||||
|
||||
HOME = os.path.expanduser("~")
|
||||
SESSIONS_FILE = os.path.join(HOME, ".persistent-chat-local", "sessions.json")
|
||||
MONGO_URI = os.environ.get("MONGO_URI", "mongodb://127.0.0.1:27017")
|
||||
DB_NAME = os.environ.get("MONGO_DB", "karuo_site")
|
||||
COLL_NAME = "持久对话会话"
|
||||
|
||||
|
||||
def main() -> int:
|
||||
if not os.path.isfile(SESSIONS_FILE):
|
||||
print("SKIP: no sessions.json")
|
||||
return 0
|
||||
try:
|
||||
from pymongo import MongoClient
|
||||
except ImportError:
|
||||
print("SKIP: pymongo not installed (pip3 install pymongo)")
|
||||
return 0
|
||||
|
||||
with open(SESSIONS_FILE, encoding="utf-8") as f:
|
||||
data = json.load(f)
|
||||
|
||||
client = MongoClient(MONGO_URI, serverSelectionTimeoutMS=4000)
|
||||
client.admin.command("ping")
|
||||
col = client[DB_NAME][COLL_NAME]
|
||||
col.create_index("token", unique=True)
|
||||
col.create_index("workspace")
|
||||
col.create_index("lastActiveAt")
|
||||
|
||||
now = datetime.now(timezone.utc)
|
||||
n = 0
|
||||
for token, sess in data.items():
|
||||
doc = dict(sess)
|
||||
doc["token"] = token
|
||||
doc["mongo_sync_at"] = now
|
||||
col.update_one({"token": token}, {"$set": doc}, upsert=True)
|
||||
n += 1
|
||||
print(f"OK: synced {n} sessions → {DB_NAME}.{COLL_NAME}")
|
||||
return 0
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
try:
|
||||
sys.exit(main())
|
||||
except Exception as e:
|
||||
print(f"FAIL: {e}", file=sys.stderr)
|
||||
sys.exit(1)
|
||||
1752
01_卡资(金)/金仓_存储备份/Cursor持久对话/backups/persistent-chat-local_20260629/panel.html
Executable file
1752
01_卡资(金)/金仓_存储备份/Cursor持久对话/backups/persistent-chat-local_20260629/panel.html
Executable file
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,374 @@
|
||||
{
|
||||
"/Users/karuo/Documents/个人::MCP连接验证-20260626@192.168.3.1#MCP连接验证-20260626": {
|
||||
"token": "ct_f9feebda",
|
||||
"planLabel": "MCP连接验证-20260626",
|
||||
"cursorTitle": "MCP连接验证-20260626",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"hostIp": "192.168.3.1",
|
||||
"updatedAt": 1782448231183
|
||||
},
|
||||
"ct_f9feebda": {
|
||||
"planBindingKey": "/Users/karuo/Documents/个人::MCP连接验证-20260626@192.168.3.1#MCP连接验证-20260626",
|
||||
"updatedAt": 1782448231183
|
||||
},
|
||||
"/Users/karuo/Documents/个人::可持续对话-20260626@192.168.3.1#持久对话永久续跑-20260626": {
|
||||
"token": "ct_f3a15ea1",
|
||||
"planLabel": "持久对话永久续跑-20260626",
|
||||
"cursorTitle": "可持续对话-20260626",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"hostIp": "192.168.3.1",
|
||||
"updatedAt": 1782453886768
|
||||
},
|
||||
"ct_f3a15ea1": {
|
||||
"planBindingKey": "/Users/karuo/Documents/个人::可持续对话-20260626@192.168.3.1#持久对话永久续跑-20260626",
|
||||
"updatedAt": 1782453886768
|
||||
},
|
||||
"/Users/karuo/Movies/soul视频::CODEX持续对话不中断修复@192.168.3.1#CODEX持续对话不中断修复": {
|
||||
"token": "ct_79c877c9",
|
||||
"planLabel": "CODEX持续对话不中断修复",
|
||||
"cursorTitle": "CODEX持续对话不中断修复",
|
||||
"workspace": "/Users/karuo/Movies/soul视频",
|
||||
"hostIp": "192.168.3.1",
|
||||
"updatedAt": 1782471437528
|
||||
},
|
||||
"ct_79c877c9": {
|
||||
"planBindingKey": "/Users/karuo/Movies/soul视频::CODEX持续对话不中断修复@192.168.3.1#CODEX持续对话不中断修复",
|
||||
"updatedAt": 1782471437528
|
||||
},
|
||||
"/Users/karuo/Movies/soul视频::CODEX持续对话不中断验证@192.168.3.1#持续对话不中断验证": {
|
||||
"token": "ct_79d712d3",
|
||||
"planLabel": "持续对话不中断验证",
|
||||
"cursorTitle": "CODEX持续对话不中断验证",
|
||||
"workspace": "/Users/karuo/Movies/soul视频",
|
||||
"hostIp": "192.168.3.1",
|
||||
"updatedAt": 1782471635087
|
||||
},
|
||||
"ct_79d712d3": {
|
||||
"planBindingKey": "/Users/karuo/Movies/soul视频::CODEX持续对话不中断验证@192.168.3.1#持续对话不中断验证",
|
||||
"updatedAt": 1782471635087
|
||||
},
|
||||
"/Users/karuo/Documents/个人 2::继续用可持续对话@192.168.3.1#继续用可持续对话": {
|
||||
"token": "ct_fd19663f",
|
||||
"planLabel": "继续用可持续对话",
|
||||
"cursorTitle": "继续用可持续对话",
|
||||
"workspace": "/Users/karuo/Documents/个人 2",
|
||||
"hostIp": "192.168.3.1",
|
||||
"updatedAt": 1782510271641
|
||||
},
|
||||
"ct_fd19663f": {
|
||||
"planBindingKey": "/Users/karuo/Documents/个人 2::继续用可持续对话@192.168.3.1#继续用可持续对话",
|
||||
"updatedAt": 1782510271641
|
||||
},
|
||||
"/Users/karuo/Documents/个人 2::个人 2@192.168.3.1#个人 2": {
|
||||
"token": "ct_a9041b43",
|
||||
"planLabel": "个人 2",
|
||||
"cursorTitle": "个人 2",
|
||||
"workspace": "/Users/karuo/Documents/个人 2",
|
||||
"hostIp": "192.168.3.1",
|
||||
"updatedAt": 1782512901723
|
||||
},
|
||||
"ct_a9041b43": {
|
||||
"planBindingKey": "/Users/karuo/Documents/个人 2::个人 2@192.168.3.1#个人 2",
|
||||
"updatedAt": 1782512901723
|
||||
},
|
||||
"/Users/karuo/Documents/个人 2::mbti王@192.168.3.1#mbti王": {
|
||||
"token": "ct_e7f24f80",
|
||||
"planLabel": "mbti王",
|
||||
"cursorTitle": "mbti王",
|
||||
"workspace": "/Users/karuo/Documents/个人 2",
|
||||
"hostIp": "192.168.3.1",
|
||||
"updatedAt": 1782513791244
|
||||
},
|
||||
"ct_e7f24f80": {
|
||||
"planBindingKey": "/Users/karuo/Documents/个人 2::mbti王@192.168.3.1#mbti王",
|
||||
"updatedAt": 1782513791244
|
||||
},
|
||||
"/Users/karuo/Documents/个人 2::修复Codex线程读取报错@192.168.3.1#thread-read-fix": {
|
||||
"token": "ct_d2c4fd54",
|
||||
"planLabel": "thread-read-fix",
|
||||
"cursorTitle": "修复Codex线程读取报错",
|
||||
"workspace": "/Users/karuo/Documents/个人 2",
|
||||
"hostIp": "192.168.3.1",
|
||||
"updatedAt": 1782526295581
|
||||
},
|
||||
"ct_d2c4fd54": {
|
||||
"planBindingKey": "/Users/karuo/Documents/个人 2::修复Codex线程读取报错@192.168.3.1#thread-read-fix",
|
||||
"updatedAt": 1782526295581
|
||||
},
|
||||
"/Users/karuo/Documents/个人::Codex可持续对话迁移验证@192.168.3.1#Trae迁移到Codex": {
|
||||
"token": "ct_52930d68",
|
||||
"planLabel": "Trae迁移到Codex",
|
||||
"cursorTitle": "Codex可持续对话迁移验证",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"hostIp": "192.168.3.1",
|
||||
"updatedAt": 1782566117561
|
||||
},
|
||||
"ct_52930d68": {
|
||||
"planBindingKey": "/Users/karuo/Documents/个人::Codex可持续对话迁移验证@192.168.3.1#Trae迁移到Codex",
|
||||
"updatedAt": 1782566117561
|
||||
},
|
||||
"/Users/karuo/Documents/个人::工作手机版本降级到1.6.37@192.168.3.1#版本降级": {
|
||||
"token": "ct_b65f6044",
|
||||
"planLabel": "版本降级",
|
||||
"cursorTitle": "工作手机版本降级到1.6.37",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"hostIp": "192.168.3.1",
|
||||
"updatedAt": 1782638395016
|
||||
},
|
||||
"ct_b65f6044": {
|
||||
"planBindingKey": "/Users/karuo/Documents/个人::工作手机版本降级到1.6.37@192.168.3.1#版本降级",
|
||||
"updatedAt": 1782638395016
|
||||
},
|
||||
"/Users/karuo/Documents/个人::存客宝工作手机微信链路全面检查@192.168.3.1#舒克宝微信链路全面检查": {
|
||||
"token": "ct_4346073a",
|
||||
"planLabel": "舒克宝微信链路全面检查",
|
||||
"cursorTitle": "存客宝工作手机微信链路全面检查",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"hostIp": "192.168.3.1",
|
||||
"updatedAt": 1782571686629
|
||||
},
|
||||
"ct_4346073a": {
|
||||
"planBindingKey": "/Users/karuo/Documents/个人::存客宝工作手机微信链路全面检查@192.168.3.1#舒克宝微信链路全面检查",
|
||||
"updatedAt": 1782571686629
|
||||
},
|
||||
"/Users/karuo/Documents/个人::私域银行全项目需求开发@192.168.3.1#全项目_20260620完整验收": {
|
||||
"token": "ct_a883e14a",
|
||||
"planLabel": "全项目_20260620完整验收",
|
||||
"cursorTitle": "私域银行全项目需求开发",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"hostIp": "192.168.3.1",
|
||||
"updatedAt": 1782612844432
|
||||
},
|
||||
"ct_a883e14a": {
|
||||
"planBindingKey": "/Users/karuo/Documents/个人::私域银行全项目需求开发@192.168.3.1#全项目_20260620完整验收",
|
||||
"updatedAt": 1782612844432
|
||||
},
|
||||
"/Users/karuo/Documents/个人::存客宝功能完善复检@192.168.3.1#存客宝功能完善测试": {
|
||||
"token": "ct_7dda1f8b",
|
||||
"planLabel": "存客宝功能完善测试",
|
||||
"cursorTitle": "存客宝功能完善复检",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"hostIp": "192.168.3.1",
|
||||
"updatedAt": 1782572302281
|
||||
},
|
||||
"ct_7dda1f8b": {
|
||||
"planBindingKey": "/Users/karuo/Documents/个人::存客宝功能完善复检@192.168.3.1#存客宝功能完善测试",
|
||||
"updatedAt": 1782572302281
|
||||
},
|
||||
"/Users/karuo/Documents/个人::mbti王-需求高考版整理@192.168.3.1#MBTI需求高考版整理": {
|
||||
"token": "ct_252aa00f",
|
||||
"planLabel": "MBTI需求高考版整理",
|
||||
"cursorTitle": "mbti王-需求高考版整理",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"hostIp": "192.168.3.1",
|
||||
"updatedAt": 1782572308124
|
||||
},
|
||||
"ct_252aa00f": {
|
||||
"planBindingKey": "/Users/karuo/Documents/个人::mbti王-需求高考版整理@192.168.3.1#MBTI需求高考版整理",
|
||||
"updatedAt": 1782572308124
|
||||
},
|
||||
"/Users/karuo/Documents/个人::Trae 中英文版配置迁移@192.168.3.1#Trae配置迁移": {
|
||||
"token": "ct_4b73f2a2",
|
||||
"planLabel": "Trae配置迁移",
|
||||
"cursorTitle": "Trae 中英文版配置迁移",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"hostIp": "192.168.3.1",
|
||||
"updatedAt": 1782577296247
|
||||
},
|
||||
"ct_4b73f2a2": {
|
||||
"planBindingKey": "/Users/karuo/Documents/个人::Trae 中英文版配置迁移@192.168.3.1#Trae配置迁移",
|
||||
"updatedAt": 1782577296247
|
||||
},
|
||||
"/Users/karuo/Documents/个人::个人 2@192.168.3.1#wzdj证书修复": {
|
||||
"token": "ct_67f25313",
|
||||
"planLabel": "wzdj证书修复",
|
||||
"cursorTitle": "个人 2",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"hostIp": "192.168.3.1",
|
||||
"updatedAt": 1782664676328
|
||||
},
|
||||
"ct_67f25313": {
|
||||
"planBindingKey": "/Users/karuo/Documents/个人::个人 2@192.168.3.1#wzdj证书修复",
|
||||
"updatedAt": 1782664676328
|
||||
},
|
||||
"/Users/karuo/Documents/个人::对接配置接口梳理@192.168.3.1#接口梳理": {
|
||||
"token": "ct_b41c40ad",
|
||||
"planLabel": "接口梳理",
|
||||
"cursorTitle": "对接配置接口梳理",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"hostIp": "192.168.3.1",
|
||||
"updatedAt": 1782642485459
|
||||
},
|
||||
"ct_b41c40ad": {
|
||||
"planBindingKey": "/Users/karuo/Documents/个人::对接配置接口梳理@192.168.3.1#接口梳理",
|
||||
"updatedAt": 1782642485459
|
||||
},
|
||||
"/Users/karuo/Documents/个人::市场调研-工作手机源码@192.168.3.1#工作手机源码调研": {
|
||||
"token": "ct_3d469745",
|
||||
"planLabel": "工作手机源码调研",
|
||||
"cursorTitle": "市场调研-工作手机源码",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"hostIp": "192.168.3.1",
|
||||
"updatedAt": 1782643011409
|
||||
},
|
||||
"ct_3d469745": {
|
||||
"planBindingKey": "/Users/karuo/Documents/个人::市场调研-工作手机源码@192.168.3.1#工作手机源码调研",
|
||||
"updatedAt": 1782643011409
|
||||
},
|
||||
"/Users/karuo/Documents/个人::SuperAdmin工作手机切换需求文档@192.168.3.1#超管工作手机切换文档": {
|
||||
"token": "ct_c3308636",
|
||||
"planLabel": "超管工作手机切换文档",
|
||||
"cursorTitle": "SuperAdmin工作手机切换需求文档",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"hostIp": "192.168.3.1",
|
||||
"updatedAt": 1782645124103
|
||||
},
|
||||
"ct_c3308636": {
|
||||
"planBindingKey": "/Users/karuo/Documents/个人::SuperAdmin工作手机切换需求文档@192.168.3.1#超管工作手机切换文档",
|
||||
"updatedAt": 1782645124103
|
||||
},
|
||||
"/Users/karuo/Documents/个人::SuperAdmin工作手机切换需求文档@192.168.3.1#SuperAdmin需求文档续改": {
|
||||
"token": "ct_857e1daf",
|
||||
"planLabel": "SuperAdmin需求文档续改",
|
||||
"cursorTitle": "SuperAdmin工作手机切换需求文档",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"hostIp": "192.168.3.1",
|
||||
"updatedAt": 1782664185131
|
||||
},
|
||||
"ct_857e1daf": {
|
||||
"planBindingKey": "/Users/karuo/Documents/个人::SuperAdmin工作手机切换需求文档@192.168.3.1#SuperAdmin需求文档续改",
|
||||
"updatedAt": 1782664185131
|
||||
},
|
||||
"/Users/karuo/Documents/个人::工作手机@192.168.3.1#工作手机需求可用性闭环": {
|
||||
"token": "ct_0cee24c2",
|
||||
"planLabel": "工作手机需求可用性闭环",
|
||||
"cursorTitle": "工作手机",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"hostIp": "192.168.3.1",
|
||||
"updatedAt": 1782664228186
|
||||
},
|
||||
"ct_0cee24c2": {
|
||||
"planBindingKey": "/Users/karuo/Documents/个人::工作手机@192.168.3.1#工作手机需求可用性闭环",
|
||||
"updatedAt": 1782664228186
|
||||
},
|
||||
"/Users/karuo/Documents/个人::工作手机SDK演示@192.168.3.1#工作手机SDK演示": {
|
||||
"token": "ct_57f3beb5",
|
||||
"planLabel": "工作手机SDK演示",
|
||||
"cursorTitle": "工作手机SDK演示",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"hostIp": "192.168.3.1",
|
||||
"updatedAt": 1782646775961
|
||||
},
|
||||
"ct_57f3beb5": {
|
||||
"planBindingKey": "/Users/karuo/Documents/个人::工作手机SDK演示@192.168.3.1#工作手机SDK演示",
|
||||
"updatedAt": 1782646775961
|
||||
},
|
||||
"/Users/karuo/Documents/个人::SuperAdmin当日需求@192.168.3.1#SuperAdmin当日需求": {
|
||||
"token": "ct_fbbca11a",
|
||||
"planLabel": "SuperAdmin当日需求",
|
||||
"cursorTitle": "SuperAdmin当日需求",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"hostIp": "192.168.3.1",
|
||||
"updatedAt": 1782648775395
|
||||
},
|
||||
"ct_fbbca11a": {
|
||||
"planBindingKey": "/Users/karuo/Documents/个人::SuperAdmin当日需求@192.168.3.1#SuperAdmin当日需求",
|
||||
"updatedAt": 1782648775395
|
||||
},
|
||||
"/Users/karuo/Documents/个人::私域银行-工作手机开发@192.168.3.1#SuperAdmin当日需求": {
|
||||
"token": "ct_db298e18",
|
||||
"planLabel": "SuperAdmin当日需求",
|
||||
"cursorTitle": "私域银行-工作手机开发",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"hostIp": "192.168.3.1",
|
||||
"updatedAt": 1782684364098
|
||||
},
|
||||
"ct_db298e18": {
|
||||
"planBindingKey": "/Users/karuo/Documents/个人::私域银行-工作手机开发@192.168.3.1#SuperAdmin当日需求",
|
||||
"updatedAt": 1782684364098
|
||||
},
|
||||
"/Users/karuo/Documents/个人::Codex限额监控插件@192.168.3.1#Codex限额监控插件": {
|
||||
"token": "ct_cc0ef5d9",
|
||||
"planLabel": "Codex限额监控插件",
|
||||
"cursorTitle": "Codex限额监控插件",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"hostIp": "192.168.3.1",
|
||||
"updatedAt": 1782687674569
|
||||
},
|
||||
"ct_cc0ef5d9": {
|
||||
"planBindingKey": "/Users/karuo/Documents/个人::Codex限额监控插件@192.168.3.1#Codex限额监控插件",
|
||||
"updatedAt": 1782687674569
|
||||
},
|
||||
"/Users/karuo/Documents/个人::个人 2@192.168.3.1#Manus接入持久对话": {
|
||||
"token": "ct_3da81225",
|
||||
"planLabel": "Manus接入持久对话",
|
||||
"cursorTitle": "个人 2",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"hostIp": "192.168.3.1",
|
||||
"updatedAt": 1782696025219
|
||||
},
|
||||
"ct_3da81225": {
|
||||
"planBindingKey": "/Users/karuo/Documents/个人::个人 2@192.168.3.1#Manus接入持久对话",
|
||||
"updatedAt": 1782696025219
|
||||
},
|
||||
"/Users/karuo/Documents/个人::运营-剪辑@192.168.3.1#SOUL派对高光剪辑": {
|
||||
"token": "ct_6cc01012",
|
||||
"planLabel": "SOUL派对高光剪辑",
|
||||
"cursorTitle": "运营-剪辑",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"hostIp": "192.168.3.1",
|
||||
"updatedAt": 1782688062113
|
||||
},
|
||||
"ct_6cc01012": {
|
||||
"planBindingKey": "/Users/karuo/Documents/个人::运营-剪辑@192.168.3.1#SOUL派对高光剪辑",
|
||||
"updatedAt": 1782688062113
|
||||
},
|
||||
"/Users/karuo/Documents/个人::soul视频@192.168.3.1#soul视频": {
|
||||
"token": "ct_266be1c6",
|
||||
"planLabel": "soul视频",
|
||||
"cursorTitle": "soul视频",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"hostIp": "192.168.3.1",
|
||||
"updatedAt": 1782700792676
|
||||
},
|
||||
"ct_266be1c6": {
|
||||
"planBindingKey": "/Users/karuo/Documents/个人::soul视频@192.168.3.1#soul视频",
|
||||
"updatedAt": 1782700792676
|
||||
},
|
||||
"/Users/karuo/Documents/个人::卡若创业派对收费策略需求整理@192.168.3.1#创业派对收费策略": {
|
||||
"token": "ct_71f7c3fe",
|
||||
"planLabel": "创业派对收费策略",
|
||||
"cursorTitle": "卡若创业派对收费策略需求整理",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"hostIp": "192.168.3.1",
|
||||
"updatedAt": 1782696941576
|
||||
},
|
||||
"ct_71f7c3fe": {
|
||||
"planBindingKey": "/Users/karuo/Documents/个人::卡若创业派对收费策略需求整理@192.168.3.1#创业派对收费策略",
|
||||
"updatedAt": 1782696941576
|
||||
},
|
||||
"/Users/karuo/Documents/个人::Soul创业派对团队分润问题处理@192.168.3.1#团队分润": {
|
||||
"token": "ct_4d8a312f",
|
||||
"planLabel": "团队分润",
|
||||
"cursorTitle": "Soul创业派对团队分润问题处理",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"hostIp": "192.168.3.1",
|
||||
"updatedAt": 1782699662995
|
||||
},
|
||||
"ct_4d8a312f": {
|
||||
"planBindingKey": "/Users/karuo/Documents/个人::Soul创业派对团队分润问题处理@192.168.3.1#团队分润",
|
||||
"updatedAt": 1782699662995
|
||||
},
|
||||
"/Users/karuo/Documents/个人::soul视频@192.168.3.1#Soul创业实验永平需求续做": {
|
||||
"token": "ct_6a6781d1",
|
||||
"planLabel": "Soul创业实验永平需求续做",
|
||||
"cursorTitle": "soul视频",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"hostIp": "192.168.3.1",
|
||||
"updatedAt": 1782701413827
|
||||
},
|
||||
"ct_6a6781d1": {
|
||||
"planBindingKey": "/Users/karuo/Documents/个人::soul视频@192.168.3.1#Soul创业实验永平需求续做",
|
||||
"updatedAt": 1782701413827
|
||||
}
|
||||
}
|
||||
1193
01_卡资(金)/金仓_存储备份/Cursor持久对话/backups/persistent-chat-local_20260629/server.js
Executable file
1193
01_卡资(金)/金仓_存储备份/Cursor持久对话/backups/persistent-chat-local_20260629/server.js
Executable file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"token": "ct_d2c4fd54",
|
||||
"cursorTitle": "修复Codex线程读取报错",
|
||||
"workspace": "/Users/karuo/Documents/个人 2",
|
||||
"bindingKey": "/Users/karuo/Documents/个人 2::修复Codex线程读取报错@192.168.3.1",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"composerId": "",
|
||||
"verticalLock": true,
|
||||
"updatedAt": 1782526295598,
|
||||
"pid": 38300,
|
||||
"planLabel": "thread-read-fix"
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"token": "ct_7dda1f8b",
|
||||
"cursorTitle": "存客宝功能完善复检",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"bindingKey": "/Users/karuo/Documents/个人::存客宝功能完善复检@192.168.3.1",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"composerId": "",
|
||||
"verticalLock": true,
|
||||
"updatedAt": 1782572328055,
|
||||
"pid": 87533
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"token": "ct_8017ec8c",
|
||||
"cursorTitle": "Trae持续对话迁移",
|
||||
"workspace": "/Users/karuo/Documents/个人 2",
|
||||
"bindingKey": "/Users/karuo/Documents/个人 2::Trae持续对话迁移@192.168.3.1",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"composerId": "",
|
||||
"verticalLock": true,
|
||||
"updatedAt": 1782450795018,
|
||||
"pid": 14597
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"token": "ct_71f7c3fe",
|
||||
"cursorTitle": "卡若创业派对收费策略需求整理",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"bindingKey": "/Users/karuo/Documents/个人::卡若创业派对收费策略需求整理@192.168.3.1",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"composerId": "",
|
||||
"verticalLock": true,
|
||||
"updatedAt": 1782696941588,
|
||||
"pid": 15742,
|
||||
"planLabel": "创业派对收费策略"
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"token": "ct_e7f24f80",
|
||||
"cursorTitle": "mbti王",
|
||||
"workspace": "/Users/karuo/Documents/个人 2",
|
||||
"bindingKey": "/Users/karuo/Documents/个人 2::mbti王@192.168.3.1",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"composerId": "",
|
||||
"verticalLock": true,
|
||||
"updatedAt": 1782513791241,
|
||||
"pid": 34781
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"token": "ct_57f3beb5",
|
||||
"cursorTitle": "工作手机SDK演示",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"bindingKey": "/Users/karuo/Documents/个人::工作手机SDK演示@192.168.3.1",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"composerId": "",
|
||||
"verticalLock": true,
|
||||
"updatedAt": 1782646785446,
|
||||
"pid": 98947
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"token": "ct_1f89ce17",
|
||||
"cursorTitle": "mbti王-需求勾选同步",
|
||||
"workspace": "/Users/karuo/Documents/个人 2",
|
||||
"bindingKey": "/Users/karuo/Documents/个人 2::mbti王-需求勾选同步@192.168.3.1",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "192.168.110.101:13458",
|
||||
"composerId": "",
|
||||
"verticalLock": true,
|
||||
"updatedAt": 1782561135829,
|
||||
"pid": 41876,
|
||||
"planLabel": "需求勾选同步"
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"token": "ct_4346073a",
|
||||
"cursorTitle": "存客宝工作手机微信链路全面检查",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"bindingKey": "/Users/karuo/Documents/个人::存客宝工作手机微信链路全面检查@192.168.3.1",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"composerId": "",
|
||||
"verticalLock": true,
|
||||
"updatedAt": 1782572327886,
|
||||
"pid": 65001,
|
||||
"planLabel": "存客宝触客宝界面功能检查"
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"token": "ct_f3a15ea1",
|
||||
"cursorTitle": "持久对话永久续跑-20260626",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"bindingKey": "/Users/karuo/Documents/个人::持久对话永久续跑-20260626@192.168.3.1",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"composerId": "",
|
||||
"verticalLock": true,
|
||||
"updatedAt": 1782450202336,
|
||||
"pid": 55199
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"token": "ct_6a6781d1",
|
||||
"cursorTitle": "soul视频",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"bindingKey": "/Users/karuo/Documents/个人::soul视频@192.168.3.1",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"composerId": "",
|
||||
"verticalLock": true,
|
||||
"updatedAt": 1782701417290,
|
||||
"pid": 87594
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"token": "ct_6ee84716",
|
||||
"cursorTitle": "mbti王-勾选已完成需求",
|
||||
"workspace": "/Users/karuo/Documents/个人 2",
|
||||
"bindingKey": "/Users/karuo/Documents/个人 2::mbti王-勾选已完成需求@192.168.3.1",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "192.168.110.101:13458",
|
||||
"composerId": "",
|
||||
"verticalLock": true,
|
||||
"updatedAt": 1782561067784,
|
||||
"pid": 36829,
|
||||
"planLabel": "需求勾选"
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"token": "ct_52930d68",
|
||||
"cursorTitle": "Codex可持续对话迁移验证",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"bindingKey": "/Users/karuo/Documents/个人::Codex可持续对话迁移验证@192.168.3.1",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"composerId": "",
|
||||
"verticalLock": true,
|
||||
"updatedAt": 1782566117547,
|
||||
"pid": 96891
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"token": "ct_ca8c6f6d",
|
||||
"cursorTitle": "恢复Codex对话记录",
|
||||
"workspace": "/Users/karuo/Documents/个人 2",
|
||||
"bindingKey": "/Users/karuo/Documents/个人 2::恢复Codex对话记录@192.168.3.1",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "192.168.110.101:13458",
|
||||
"composerId": "",
|
||||
"verticalLock": true,
|
||||
"updatedAt": 1782527358213,
|
||||
"pid": 92286,
|
||||
"planLabel": "时间机器恢复"
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"token": "ct_79c877c9",
|
||||
"cursorTitle": "CODEX持续对话不中断修复",
|
||||
"workspace": "/Users/karuo/Movies/soul视频",
|
||||
"bindingKey": "/Users/karuo/Movies/soul视频::CODEX持续对话不中断修复@192.168.3.1",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"composerId": "",
|
||||
"verticalLock": true,
|
||||
"updatedAt": 1782471437537,
|
||||
"pid": 16399,
|
||||
"planLabel": ""
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"token": "ct_0cee24c2",
|
||||
"cursorTitle": "工作手机",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"bindingKey": "/Users/karuo/Documents/个人::工作手机@192.168.3.1",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"composerId": "",
|
||||
"verticalLock": true,
|
||||
"updatedAt": 1782664228161,
|
||||
"pid": 86421
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"token": "ct_cc0ef5d9",
|
||||
"cursorTitle": "Codex限额监控插件",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"bindingKey": "/Users/karuo/Documents/个人::Codex限额监控插件@192.168.3.1",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"composerId": "",
|
||||
"verticalLock": true,
|
||||
"updatedAt": 1782687674552,
|
||||
"pid": 48375
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"token": "ct_2d71a51d",
|
||||
"cursorTitle": "mbti王-需求高考版整理",
|
||||
"workspace": "/Users/karuo/Documents/个人 2",
|
||||
"bindingKey": "/Users/karuo/Documents/个人 2::mbti王-需求高考版整理@192.168.3.1",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"composerId": "",
|
||||
"verticalLock": true,
|
||||
"updatedAt": 1782562082336,
|
||||
"pid": 41876
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"token": "ct_3a4e8a75",
|
||||
"cursorTitle": "Trae重装验证-20260626",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"bindingKey": "/Users/karuo/Documents/个人::Trae重装验证-20260626@192.168.3.1",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"composerId": "",
|
||||
"verticalLock": true,
|
||||
"updatedAt": 1782448623061,
|
||||
"pid": 55199
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"token": "ct_fd19663f",
|
||||
"cursorTitle": "继续用可持续对话",
|
||||
"workspace": "/Users/karuo/Documents/个人 2",
|
||||
"bindingKey": "/Users/karuo/Documents/个人 2::继续用可持续对话@192.168.3.1",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"composerId": "",
|
||||
"verticalLock": true,
|
||||
"updatedAt": 1782481462482,
|
||||
"pid": 46545
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"token": "ct_b41c40ad",
|
||||
"cursorTitle": "对接配置接口梳理",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"bindingKey": "/Users/karuo/Documents/个人::对接配置接口梳理@192.168.3.1",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"composerId": "",
|
||||
"verticalLock": true,
|
||||
"updatedAt": 1782642489268,
|
||||
"pid": 81431
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"token": "ct_252aa00f",
|
||||
"cursorTitle": "mbti王-需求高考版整理",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"bindingKey": "/Users/karuo/Documents/个人::mbti王-需求高考版整理@192.168.3.1",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"composerId": "",
|
||||
"verticalLock": true,
|
||||
"updatedAt": 1782572308129,
|
||||
"pid": 94233,
|
||||
"planLabel": "MBTI需求高考版整理"
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"token": "ct_857e1daf",
|
||||
"cursorTitle": "SuperAdmin工作手机切换需求文档",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"bindingKey": "/Users/karuo/Documents/个人::SuperAdmin工作手机切换需求文档@192.168.3.1",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"composerId": "",
|
||||
"verticalLock": true,
|
||||
"updatedAt": 1782664185114,
|
||||
"pid": 80276
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"token": "ct_a9041b43",
|
||||
"cursorTitle": "个人 2",
|
||||
"workspace": "/Users/karuo/Documents/个人 2",
|
||||
"bindingKey": "/Users/karuo/Documents/个人 2::个人 2@192.168.3.1",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"composerId": "",
|
||||
"verticalLock": true,
|
||||
"updatedAt": 1782512901718,
|
||||
"pid": 22997
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"token": "ct_4d8a312f",
|
||||
"cursorTitle": "Soul创业派对团队分润问题处理",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"bindingKey": "/Users/karuo/Documents/个人::Soul创业派对团队分润问题处理@192.168.3.1",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"composerId": "",
|
||||
"verticalLock": true,
|
||||
"updatedAt": 1782699663007,
|
||||
"pid": 49055,
|
||||
"planLabel": "团队分润"
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"token": "ct_79d712d3",
|
||||
"cursorTitle": "CODEX持续对话不中断验证",
|
||||
"workspace": "/Users/karuo/Movies/soul视频",
|
||||
"bindingKey": "/Users/karuo/Movies/soul视频::CODEX持续对话不中断验证@192.168.3.1",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"composerId": "",
|
||||
"verticalLock": true,
|
||||
"updatedAt": 1782471635094,
|
||||
"pid": 16399,
|
||||
"planLabel": "持续对话不中断验证"
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"token": "ct_4b73f2a2",
|
||||
"cursorTitle": "Trae 中英文版配置迁移",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"bindingKey": "/Users/karuo/Documents/个人::Trae 中英文版配置迁移@192.168.3.1",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"composerId": "",
|
||||
"verticalLock": true,
|
||||
"updatedAt": 1782577296232,
|
||||
"pid": 35503
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"token": "ct_416ecd8a",
|
||||
"cursorTitle": "工作手机开发",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"bindingKey": "/Users/karuo/Documents/个人::工作手机开发@192.168.3.1",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"composerId": "",
|
||||
"verticalLock": true,
|
||||
"updatedAt": 1782597502343,
|
||||
"pid": 81064,
|
||||
"planLabel": ""
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"token": "ct_3d469745",
|
||||
"cursorTitle": "市场调研-工作手机源码",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"bindingKey": "/Users/karuo/Documents/个人::市场调研-工作手机源码@192.168.3.1",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"composerId": "",
|
||||
"verticalLock": true,
|
||||
"updatedAt": 1782643011397,
|
||||
"pid": 1413
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"token": "ct_fbbca11a",
|
||||
"cursorTitle": "SuperAdmin当日需求",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"bindingKey": "/Users/karuo/Documents/个人::SuperAdmin当日需求@192.168.3.1",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"composerId": "",
|
||||
"verticalLock": true,
|
||||
"updatedAt": 1782648780698,
|
||||
"pid": 63569
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"token": "ct_b65f6044",
|
||||
"cursorTitle": "工作手机版本降级到1.6.37",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"bindingKey": "/Users/karuo/Documents/个人::工作手机版本降级到1.6.37@192.168.3.1",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"composerId": "",
|
||||
"verticalLock": true,
|
||||
"updatedAt": 1782638395011,
|
||||
"pid": 73734
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"token": "ct_6cc01012",
|
||||
"cursorTitle": "运营-剪辑",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"bindingKey": "/Users/karuo/Documents/个人::运营-剪辑@192.168.3.1",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"composerId": "",
|
||||
"verticalLock": true,
|
||||
"updatedAt": 1782688072444,
|
||||
"pid": 92533
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"token": "ct_195ff862",
|
||||
"cursorTitle": "工作手机部署NAS",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"bindingKey": "/Users/karuo/Documents/个人::工作手机部署NAS@192.168.3.1",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "192.168.110.101:13458",
|
||||
"composerId": "",
|
||||
"verticalLock": true,
|
||||
"updatedAt": 1782568355795,
|
||||
"pid": 1588
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"token": "ct_73cb8e3f",
|
||||
"cursorTitle": "MCP连接验证-20260626",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"bindingKey": "/Users/karuo/Documents/个人::MCP连接验证-20260626@192.168.3.1",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"composerId": "",
|
||||
"verticalLock": true,
|
||||
"updatedAt": 1782448332091,
|
||||
"pid": 53976
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"token": "ct_a883e14a",
|
||||
"cursorTitle": "私域银行全项目需求开发",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"bindingKey": "/Users/karuo/Documents/个人::私域银行全项目需求开发@192.168.3.1",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"composerId": "",
|
||||
"verticalLock": true,
|
||||
"updatedAt": 1782612844424,
|
||||
"pid": 2535
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"token": "ct_3da81225",
|
||||
"cursorTitle": "个人 2",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"bindingKey": "/Users/karuo/Documents/个人::个人 2@192.168.3.1",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"composerId": "",
|
||||
"verticalLock": true,
|
||||
"updatedAt": 1782696025212,
|
||||
"pid": 30641
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"token": "ct_db298e18",
|
||||
"cursorTitle": "私域银行-工作手机开发",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"bindingKey": "/Users/karuo/Documents/个人::私域银行-工作手机开发@192.168.3.1",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"composerId": "",
|
||||
"verticalLock": true,
|
||||
"updatedAt": 1782684364088,
|
||||
"pid": 1460
|
||||
}
|
||||
@@ -0,0 +1,224 @@
|
||||
{
|
||||
"/Users/karuo/Documents/个人::MCP连接验证-20260626@192.168.3.1": {
|
||||
"token": "ct_f9feebda",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"updatedAt": 1782448231182
|
||||
},
|
||||
"/Users/karuo/Documents/个人 2::Trae持续对话迁移@192.168.3.1": {
|
||||
"token": "ct_8017ec8c",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"updatedAt": 1782450795018
|
||||
},
|
||||
"/Users/karuo/Documents/个人::Trae重装验证-20260626@192.168.3.1": {
|
||||
"token": "ct_3a4e8a75",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"updatedAt": 1782448623061
|
||||
},
|
||||
"/Users/karuo/Documents/个人::可持续对话-20260626@192.168.3.1": {
|
||||
"token": "ct_f3a15ea1",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"updatedAt": 1782453886768
|
||||
},
|
||||
"/Users/karuo/Documents/个人::持久对话永久续跑-20260626@192.168.3.1": {
|
||||
"token": "ct_f3a15ea1",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"updatedAt": 1782450202336
|
||||
},
|
||||
"/Users/karuo/Movies/soul视频::CODEX持续对话不中断修复@192.168.3.1": {
|
||||
"token": "ct_79c877c9",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"updatedAt": 1782471437537
|
||||
},
|
||||
"/Users/karuo/Movies/soul视频::CODEX持续对话不中断验证@192.168.3.1": {
|
||||
"token": "ct_79d712d3",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"updatedAt": 1782471635094
|
||||
},
|
||||
"/Users/karuo/Documents/个人 2::继续用可持续对话@192.168.3.1": {
|
||||
"token": "ct_fd19663f",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"updatedAt": 1782481462482
|
||||
},
|
||||
"/Users/karuo/Documents/个人 2::mbti王@192.168.3.1": {
|
||||
"token": "ct_e7f24f80",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"updatedAt": 1782513791241
|
||||
},
|
||||
"/Users/karuo/Documents/个人 2::个人 2@192.168.3.1": {
|
||||
"token": "ct_a9041b43",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"updatedAt": 1782512901718
|
||||
},
|
||||
"/Users/karuo/Documents/个人 2::修复Codex线程读取报错@192.168.3.1": {
|
||||
"token": "ct_d2c4fd54",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"updatedAt": 1782526295598
|
||||
},
|
||||
"/Users/karuo/Documents/个人 2::恢复Codex对话记录@192.168.3.1": {
|
||||
"token": "ct_ca8c6f6d",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "192.168.110.101:13458",
|
||||
"updatedAt": 1782527358213
|
||||
},
|
||||
"/Users/karuo/Documents/个人 2::mbti王-勾选已完成需求@192.168.3.1": {
|
||||
"token": "ct_6ee84716",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "192.168.110.101:13458",
|
||||
"updatedAt": 1782561067784
|
||||
},
|
||||
"/Users/karuo/Documents/个人 2::mbti王-需求勾选同步@192.168.3.1": {
|
||||
"token": "ct_1f89ce17",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "192.168.110.101:13458",
|
||||
"updatedAt": 1782561135829
|
||||
},
|
||||
"/Users/karuo/Documents/个人 2::mbti王-需求高考版整理@192.168.3.1": {
|
||||
"token": "ct_2d71a51d",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"updatedAt": 1782562082336
|
||||
},
|
||||
"/Users/karuo/Documents/个人::工作手机开发@192.168.3.1": {
|
||||
"token": "ct_416ecd8a",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"updatedAt": 1782597502343
|
||||
},
|
||||
"/Users/karuo/Documents/个人::Codex可持续对话迁移验证@192.168.3.1": {
|
||||
"token": "ct_52930d68",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"updatedAt": 1782566117547
|
||||
},
|
||||
"/Users/karuo/Documents/个人::工作手机部署NAS@192.168.3.1": {
|
||||
"token": "ct_195ff862",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "192.168.110.101:13458",
|
||||
"updatedAt": 1782568355795
|
||||
},
|
||||
"/Users/karuo/Documents/个人::工作手机版本降级到1.6.37@192.168.3.1": {
|
||||
"token": "ct_b65f6044",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"updatedAt": 1782638395011
|
||||
},
|
||||
"/Users/karuo/Documents/个人::存客宝工作手机微信链路全面检查@192.168.3.1": {
|
||||
"token": "ct_4346073a",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"updatedAt": 1782572327886
|
||||
},
|
||||
"/Users/karuo/Documents/个人::私域银行全项目需求开发@192.168.3.1": {
|
||||
"token": "ct_a883e14a",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"updatedAt": 1782612844424
|
||||
},
|
||||
"/Users/karuo/Documents/个人::存客宝功能完善复检@192.168.3.1": {
|
||||
"token": "ct_7dda1f8b",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"updatedAt": 1782572328055
|
||||
},
|
||||
"/Users/karuo/Documents/个人::mbti王-需求高考版整理@192.168.3.1": {
|
||||
"token": "ct_252aa00f",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"updatedAt": 1782572308129
|
||||
},
|
||||
"/Users/karuo/Documents/个人::Trae 中英文版配置迁移@192.168.3.1": {
|
||||
"token": "ct_4b73f2a2",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"updatedAt": 1782577296232
|
||||
},
|
||||
"/Users/karuo/Documents/个人::个人 2@192.168.3.1": {
|
||||
"token": "ct_3da81225",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"updatedAt": 1782696025212
|
||||
},
|
||||
"/Users/karuo/Documents/个人::对接配置接口梳理@192.168.3.1": {
|
||||
"token": "ct_b41c40ad",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"updatedAt": 1782642489268
|
||||
},
|
||||
"/Users/karuo/Documents/个人::市场调研-工作手机源码@192.168.3.1": {
|
||||
"token": "ct_3d469745",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"updatedAt": 1782643011397
|
||||
},
|
||||
"/Users/karuo/Documents/个人::SuperAdmin工作手机切换需求文档@192.168.3.1": {
|
||||
"token": "ct_857e1daf",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"updatedAt": 1782664185114
|
||||
},
|
||||
"/Users/karuo/Documents/个人::工作手机@192.168.3.1": {
|
||||
"token": "ct_0cee24c2",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"updatedAt": 1782664228161
|
||||
},
|
||||
"/Users/karuo/Documents/个人::工作手机SDK演示@192.168.3.1": {
|
||||
"token": "ct_57f3beb5",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"updatedAt": 1782646785446
|
||||
},
|
||||
"/Users/karuo/Documents/个人::SuperAdmin当日需求@192.168.3.1": {
|
||||
"token": "ct_fbbca11a",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"updatedAt": 1782648780698
|
||||
},
|
||||
"/Users/karuo/Documents/个人::私域银行-工作手机开发@192.168.3.1": {
|
||||
"token": "ct_db298e18",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"updatedAt": 1782684364088
|
||||
},
|
||||
"/Users/karuo/Documents/个人::Codex限额监控插件@192.168.3.1": {
|
||||
"token": "ct_cc0ef5d9",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"updatedAt": 1782687674552
|
||||
},
|
||||
"/Users/karuo/Documents/个人::运营-剪辑@192.168.3.1": {
|
||||
"token": "ct_6cc01012",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"updatedAt": 1782688072444
|
||||
},
|
||||
"/Users/karuo/Documents/个人::soul视频@192.168.3.1": {
|
||||
"token": "ct_6a6781d1",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"updatedAt": 1782701417290
|
||||
},
|
||||
"/Users/karuo/Documents/个人::卡若创业派对收费策略需求整理@192.168.3.1": {
|
||||
"token": "ct_71f7c3fe",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"updatedAt": 1782696941588
|
||||
},
|
||||
"/Users/karuo/Documents/个人::Soul创业派对团队分润问题处理@192.168.3.1": {
|
||||
"token": "ct_4d8a312f",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"updatedAt": 1782699663007
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,141 @@
|
||||
'use strict';
|
||||
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
const { execFileSync } = require('child_process');
|
||||
const crypto = require('crypto');
|
||||
|
||||
const HOME = process.env.HOME || process.env.USERPROFILE || '';
|
||||
const VSCDB = path.join(
|
||||
HOME,
|
||||
'Library/Application Support/Cursor/User/globalStorage/state.vscdb'
|
||||
);
|
||||
const LOOP_DIR = path.join(HOME, '.cursor-loop');
|
||||
const ACTIVE_VERTICAL = path.join(LOOP_DIR, 'active-vertical.json');
|
||||
|
||||
function normTitle(title) {
|
||||
const t = String(title || '').trim();
|
||||
return t || '(未命名标签)';
|
||||
}
|
||||
|
||||
function readActiveVertical() {
|
||||
try {
|
||||
const raw = fs.readFileSync(ACTIVE_VERTICAL, 'utf8');
|
||||
const j = JSON.parse(raw);
|
||||
if (j && j.title) return j;
|
||||
} catch {}
|
||||
return null;
|
||||
}
|
||||
|
||||
function writeActiveVertical(payload) {
|
||||
try {
|
||||
fs.mkdirSync(LOOP_DIR, { recursive: true });
|
||||
fs.writeFileSync(
|
||||
ACTIVE_VERTICAL,
|
||||
JSON.stringify({ ...payload, updatedAt: Date.now() }, null, 2)
|
||||
);
|
||||
} catch {}
|
||||
}
|
||||
|
||||
function queryVscdb(sql) {
|
||||
if (!fs.existsSync(VSCDB)) return null;
|
||||
try {
|
||||
return execFileSync('sqlite3', [VSCDB, sql], { encoding: 'utf8', timeout: 3000 }).trim();
|
||||
} catch {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
function loadComposerHeaders() {
|
||||
const raw = queryVscdb(
|
||||
"SELECT value FROM ItemTable WHERE key='composer.composerHeaders' LIMIT 1;"
|
||||
);
|
||||
if (!raw) return null;
|
||||
try {
|
||||
return JSON.parse(raw);
|
||||
} catch {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
function pickComposer(headers, opts = {}) {
|
||||
const list = headers?.allComposers || [];
|
||||
const composerId =
|
||||
opts.composerId ||
|
||||
process.env.CURSOR_CONVERSATION_ID ||
|
||||
process.env.CURSOR_CHAT_ID ||
|
||||
process.env.COMPOSER_ID ||
|
||||
readActiveVertical()?.composerId;
|
||||
|
||||
if (composerId) {
|
||||
const hit = list.find((c) => c.composerId === composerId);
|
||||
if (hit) return hit;
|
||||
}
|
||||
|
||||
const wsHint = String(opts.workspace || '').replace(/\/+$/, '');
|
||||
const candidates = list.filter((c) => c.type === 'head' && !c.isArchived);
|
||||
if (wsHint) {
|
||||
const wsMatch = candidates.filter((c) => {
|
||||
const cfg = c.workspaceIdentifier?.configPath;
|
||||
const fp = cfg?.fsPath || cfg?.path || '';
|
||||
return fp && (wsHint.includes(fp) || fp.includes(wsHint));
|
||||
});
|
||||
if (wsMatch.length) {
|
||||
wsMatch.sort((a, b) => (b.lastUpdatedAt || 0) - (a.lastUpdatedAt || 0));
|
||||
return wsMatch[0];
|
||||
}
|
||||
}
|
||||
candidates.sort((a, b) => (b.lastUpdatedAt || 0) - (a.lastUpdatedAt || 0));
|
||||
return candidates[0] || null;
|
||||
}
|
||||
|
||||
/** 解析当前 Cursor Agent 标签名(真源:args > threadLock > active-vertical > vscdb) */
|
||||
function resolveCursorTabTitle(opts = {}) {
|
||||
const fromArgs = opts.cursorTitle || opts.title;
|
||||
if (fromArgs && normTitle(fromArgs) !== '(未命名标签)') {
|
||||
return { title: normTitle(fromArgs), source: 'args', composerId: opts.composerId || null };
|
||||
}
|
||||
|
||||
const active = readActiveVertical();
|
||||
if (active?.title && normTitle(active.title) !== '(未命名标签)') {
|
||||
const age = Date.now() - (active.updatedAt || 0);
|
||||
if (age < 30 * 60 * 1000) {
|
||||
return {
|
||||
title: normTitle(active.title),
|
||||
source: 'active-vertical',
|
||||
composerId: active.composerId || null,
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
const envTitle = process.env.CURSOR_CHAT_TITLE || process.env.PCHAT_CURSOR_TITLE;
|
||||
if (envTitle) {
|
||||
return { title: normTitle(envTitle), source: 'env', composerId: null };
|
||||
}
|
||||
|
||||
const headers = loadComposerHeaders();
|
||||
const composer = pickComposer(headers, opts);
|
||||
if (composer?.name) {
|
||||
const payload = {
|
||||
composerId: composer.composerId,
|
||||
title: normTitle(composer.name),
|
||||
workspace: composer.workspaceIdentifier?.configPath?.fsPath || opts.workspace || '',
|
||||
};
|
||||
writeActiveVertical(payload);
|
||||
return {
|
||||
title: payload.title,
|
||||
source: 'vscdb',
|
||||
composerId: composer.composerId,
|
||||
};
|
||||
}
|
||||
|
||||
return { title: '', source: 'missing', composerId: null };
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
resolveCursorTabTitle,
|
||||
writeActiveVertical,
|
||||
readActiveVertical,
|
||||
ACTIVE_VERTICAL,
|
||||
normTitle,
|
||||
};
|
||||
@@ -0,0 +1,65 @@
|
||||
#!/usr/bin/env bash
|
||||
# 启动 MCP 前确保 Hub 在 13458 运行(全局唯一)
|
||||
set -eo pipefail
|
||||
INSTALL="$(cd "$(dirname "$0")" && pwd)"
|
||||
PORT="${PCHAT_HTTP_PORT:-13458}"
|
||||
HUB_HOST="${PCHAT_HUB_HOST:-127.0.0.1}"
|
||||
LOG="$INSTALL/logs/hub.log"
|
||||
NODE="${PCHAT_NODE:-$(command -v node 2>/dev/null || true)}"
|
||||
[[ -z "$NODE" ]] && NODE="/usr/local/opt/node@22/bin/node"
|
||||
|
||||
mkdir -p "$INSTALL/logs"
|
||||
|
||||
if [[ ! -x "$NODE" ]]; then
|
||||
echo "[ensure-hub] FATAL: node not found: $NODE" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
hub_health() {
|
||||
curl -sf -m 2 "http://${HUB_HOST}:${PORT}/api/health" >/dev/null 2>&1
|
||||
}
|
||||
|
||||
start_hub() {
|
||||
if hub_health; then return 0; fi
|
||||
if [[ "$HUB_HOST" != "127.0.0.1" && "$HUB_HOST" != "localhost" ]]; then
|
||||
echo "[ensure-hub] remote hub not ready: http://${HUB_HOST}:${PORT}; fallback to local :${PORT}" >> "$LOG"
|
||||
HUB_HOST="127.0.0.1"
|
||||
export PCHAT_HUB_HOST="$HUB_HOST"
|
||||
hub_health && return 0
|
||||
fi
|
||||
echo "[ensure-hub] starting hub on :${PORT}" >> "$LOG"
|
||||
nohup "$NODE" "$INSTALL/hub.js" >> "$INSTALL/logs/hub.stdout.log" 2>&1 &
|
||||
local i=0
|
||||
while [[ $i -lt 80 ]]; do
|
||||
hub_health && return 0
|
||||
sleep 0.15
|
||||
i=$((i + 1))
|
||||
done
|
||||
return 1
|
||||
}
|
||||
|
||||
if ! start_hub; then
|
||||
echo "[ensure-hub] FATAL: Hub not ready on ${HUB_HOST}:${PORT} (waited ~12s). Run: bash 卡若AI/.../Cursor持久对话/脚本/sync-runtime.sh" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Cursor 无工作区时 ${workspaceFolder} 可能为空/none/未替换字面量 → 兜底 HOME
|
||||
ARGS=()
|
||||
for a in "$@"; do
|
||||
case "$a" in
|
||||
--workspace=|--workspace=none|--workspace=\$\{workspaceFolder\})
|
||||
ARGS+=("--workspace=$HOME")
|
||||
;;
|
||||
--workspace=*)
|
||||
ARGS+=("$a")
|
||||
;;
|
||||
*)
|
||||
ARGS+=("$a")
|
||||
;;
|
||||
esac
|
||||
done
|
||||
if [[ ${#ARGS[@]} -eq 0 ]] || ! printf '%s\n' "${ARGS[@]}" | grep -q '^--workspace='; then
|
||||
ARGS+=("--workspace=${PWD:-$HOME}")
|
||||
fi
|
||||
|
||||
exec "$NODE" "$INSTALL/server.js" "${ARGS[@]}"
|
||||
2491
01_卡资(金)/金仓_存储备份/Cursor持久对话/backups/persistent-chat-local_20260629_115132/hub.js
Executable file
2491
01_卡资(金)/金仓_存储备份/Cursor持久对话/backups/persistent-chat-local_20260629_115132/hub.js
Executable file
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,143 @@
|
||||
#!/usr/bin/env bash
|
||||
# 方案B · Hub 短回合唤醒守护:HTTP 拉续跑 → 写入 ~/.cursor-loop/wake/{ct_}.md
|
||||
set -u
|
||||
PORT="${PCHAT_HTTP_PORT:-13458}"
|
||||
HUB="http://127.0.0.1:${PORT}"
|
||||
export WAKE_DIR="${PCHAT_WAKE_DIR:-$HOME/.cursor-loop/wake}"
|
||||
LOG_DIR="${PCHAT_WAKE_LOG_DIR:-$HOME/.cursor-loop/logs}"
|
||||
LOG="$LOG_DIR/hub_wake_daemon.log"
|
||||
POLL_SEC="${PCHAT_WAKE_POLL_SEC:-2}"
|
||||
|
||||
mkdir -p "$WAKE_DIR" "$LOG_DIR"
|
||||
|
||||
log() {
|
||||
printf '%s %s\n' "$(date '+%Y-%m-%d %H:%M:%S')" "$*" >>"$LOG"
|
||||
}
|
||||
|
||||
hub_ok() {
|
||||
curl -sf -m 2 "$HUB/api/health" >/dev/null 2>&1
|
||||
}
|
||||
|
||||
# 禁止 curl|python3 - <<'PY'(pipe 与 heredoc 争 stdin,json.load 恒失败)
|
||||
pull_tokens() {
|
||||
local state_json
|
||||
state_json="$(curl -sf -m 5 "$HUB/api/state" 2>/dev/null)" || return 0
|
||||
[[ -z "$state_json" ]] && return 0
|
||||
PCHAT_STATE_JSON="$state_json" python3 - <<'PY'
|
||||
import os, json
|
||||
try:
|
||||
d = json.loads(os.environ.get("PCHAT_STATE_JSON", "{}"))
|
||||
except Exception:
|
||||
raise SystemExit(0)
|
||||
seen = set()
|
||||
for s in d.get("sessions") or []:
|
||||
if s.get("isAbandoned"):
|
||||
continue
|
||||
sq = int(s.get("steerQueueCount") or 0)
|
||||
short = bool(s.get("shortRoundMode"))
|
||||
if short:
|
||||
manual = bool(s.get("steerManualQueued"))
|
||||
panel_pending = bool(s.get("panelPendingSince"))
|
||||
if not manual and not panel_pending:
|
||||
continue
|
||||
elif not (s.get("connectionHeld") or s.get("hasPending") or sq > 0):
|
||||
continue
|
||||
tok = (s.get("token") or "").strip()
|
||||
if tok.startswith("ct_") and tok not in seen:
|
||||
seen.add(tok)
|
||||
print(tok)
|
||||
PY
|
||||
}
|
||||
|
||||
process_wake_pull() {
|
||||
local token="$1"
|
||||
local resp out status
|
||||
resp="$(curl -sf -m 5 -X POST "$HUB/api/wake/pull" \
|
||||
-H 'Content-Type: application/json' \
|
||||
-d "{\"token\":\"$token\"}" 2>/dev/null || echo '{}')"
|
||||
[[ -z "$resp" ]] && return 0
|
||||
out="$(WAKE_DIR="$WAKE_DIR" WAKE_RESP="$resp" python3 - <<'PY' 2>/dev/null || true
|
||||
import os, json, sys, time
|
||||
from datetime import datetime
|
||||
try:
|
||||
d = json.loads(os.environ.get("WAKE_RESP", "{}"))
|
||||
except Exception:
|
||||
sys.exit(2)
|
||||
if d.get("status") != "replied":
|
||||
sys.exit(1)
|
||||
token = d.get("token", "")
|
||||
reply = d.get("reply", "")
|
||||
title = d.get("cursorTitle", "")
|
||||
workspace = d.get("workspace", "")
|
||||
manual = bool(d.get("manual"))
|
||||
auto = bool(d.get("auto"))
|
||||
wake_dir = os.environ.get("WAKE_DIR", os.path.expanduser("~/.cursor-loop/wake"))
|
||||
path = os.path.join(wake_dir, f"{token}.md")
|
||||
body = f"""# Hub 唤醒 · 方案B
|
||||
|
||||
- **token**: `{token}`
|
||||
- **cursorTitle**: {title}
|
||||
- **workspace**: {workspace}
|
||||
- **at**: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}
|
||||
- **来源**: {'面板消息' if manual else '自动续跑(仅备查,不注入对话)'}
|
||||
|
||||
## 续跑指令(Agent 下轮必须先 Read 本文件再执行)
|
||||
|
||||
```text
|
||||
{reply}
|
||||
```
|
||||
|
||||
## Agent 动作
|
||||
|
||||
1. Read 本文件 + 进行中需求 MD + `references/不间断开发_G22b叠加G26.md`
|
||||
2. 执行 ▶;wait 须 shortRound(默认),禁止长 poll
|
||||
3. 复盘五块 → shortRound register
|
||||
"""
|
||||
os.makedirs(wake_dir, exist_ok=True)
|
||||
with open(path, "w", encoding="utf-8") as f:
|
||||
f.write(body)
|
||||
# 仅面板真人消息写 pending(供可选 PCHAT_WAKE_HOOK=1);自动续跑禁止注入 Cursor 对话
|
||||
if manual:
|
||||
pending_path = os.path.join(wake_dir, f"_pending_{token}.json")
|
||||
payload = {
|
||||
"token": token,
|
||||
"reply": reply,
|
||||
"cursorTitle": title,
|
||||
"workspace": workspace,
|
||||
"at": time.time(),
|
||||
"consumed": False,
|
||||
"manual": True,
|
||||
"auto": False,
|
||||
}
|
||||
with open(pending_path, "w", encoding="utf-8") as f:
|
||||
json.dump(payload, f, ensure_ascii=False)
|
||||
legacy = os.path.join(wake_dir, "_pending_followup.json")
|
||||
with open(legacy, "w", encoding="utf-8") as f:
|
||||
json.dump(payload, f, ensure_ascii=False)
|
||||
print(f"replied|{path}|manual={int(manual)}")
|
||||
PY
|
||||
)"
|
||||
if [[ -n "$out" && "$out" == replied\|* ]]; then
|
||||
log "pull ok token=$token path=${out#replied|}"
|
||||
return 0
|
||||
fi
|
||||
status="$(printf '%s' "$resp" | python3 -c 'import sys,json; print(json.load(sys.stdin).get("status",""))' 2>/dev/null || echo '')"
|
||||
if [[ -n "$status" && "$status" != "replied" ]]; then
|
||||
log "pull skip token=$token status=$status"
|
||||
fi
|
||||
}
|
||||
|
||||
log "daemon start hub=$HUB wake=$WAKE_DIR poll=${POLL_SEC}s"
|
||||
|
||||
while true; do
|
||||
if ! hub_ok; then
|
||||
log "hub offline, sleep ${POLL_SEC}s"
|
||||
sleep "$POLL_SEC"
|
||||
continue
|
||||
fi
|
||||
while IFS= read -r token; do
|
||||
[[ -z "$token" ]] && continue
|
||||
process_wake_pull "$token"
|
||||
done < <(pull_tokens || true)
|
||||
sleep "$POLL_SEC"
|
||||
done
|
||||
@@ -0,0 +1,52 @@
|
||||
#!/usr/bin/env python3
|
||||
"""持久对话会话 → MongoDB karuo_site.持久对话会话(本地 ~/.persistent-chat-local/sessions.json)"""
|
||||
import json
|
||||
import os
|
||||
import sys
|
||||
from datetime import datetime, timezone
|
||||
|
||||
HOME = os.path.expanduser("~")
|
||||
SESSIONS_FILE = os.path.join(HOME, ".persistent-chat-local", "sessions.json")
|
||||
MONGO_URI = os.environ.get("MONGO_URI", "mongodb://127.0.0.1:27017")
|
||||
DB_NAME = os.environ.get("MONGO_DB", "karuo_site")
|
||||
COLL_NAME = "持久对话会话"
|
||||
|
||||
|
||||
def main() -> int:
|
||||
if not os.path.isfile(SESSIONS_FILE):
|
||||
print("SKIP: no sessions.json")
|
||||
return 0
|
||||
try:
|
||||
from pymongo import MongoClient
|
||||
except ImportError:
|
||||
print("SKIP: pymongo not installed (pip3 install pymongo)")
|
||||
return 0
|
||||
|
||||
with open(SESSIONS_FILE, encoding="utf-8") as f:
|
||||
data = json.load(f)
|
||||
|
||||
client = MongoClient(MONGO_URI, serverSelectionTimeoutMS=4000)
|
||||
client.admin.command("ping")
|
||||
col = client[DB_NAME][COLL_NAME]
|
||||
col.create_index("token", unique=True)
|
||||
col.create_index("workspace")
|
||||
col.create_index("lastActiveAt")
|
||||
|
||||
now = datetime.now(timezone.utc)
|
||||
n = 0
|
||||
for token, sess in data.items():
|
||||
doc = dict(sess)
|
||||
doc["token"] = token
|
||||
doc["mongo_sync_at"] = now
|
||||
col.update_one({"token": token}, {"$set": doc}, upsert=True)
|
||||
n += 1
|
||||
print(f"OK: synced {n} sessions → {DB_NAME}.{COLL_NAME}")
|
||||
return 0
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
try:
|
||||
sys.exit(main())
|
||||
except Exception as e:
|
||||
print(f"FAIL: {e}", file=sys.stderr)
|
||||
sys.exit(1)
|
||||
1752
01_卡资(金)/金仓_存储备份/Cursor持久对话/backups/persistent-chat-local_20260629_115132/panel.html
Executable file
1752
01_卡资(金)/金仓_存储备份/Cursor持久对话/backups/persistent-chat-local_20260629_115132/panel.html
Executable file
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,374 @@
|
||||
{
|
||||
"/Users/karuo/Documents/个人::MCP连接验证-20260626@192.168.3.1#MCP连接验证-20260626": {
|
||||
"token": "ct_f9feebda",
|
||||
"planLabel": "MCP连接验证-20260626",
|
||||
"cursorTitle": "MCP连接验证-20260626",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"hostIp": "192.168.3.1",
|
||||
"updatedAt": 1782448231183
|
||||
},
|
||||
"ct_f9feebda": {
|
||||
"planBindingKey": "/Users/karuo/Documents/个人::MCP连接验证-20260626@192.168.3.1#MCP连接验证-20260626",
|
||||
"updatedAt": 1782448231183
|
||||
},
|
||||
"/Users/karuo/Documents/个人::可持续对话-20260626@192.168.3.1#持久对话永久续跑-20260626": {
|
||||
"token": "ct_f3a15ea1",
|
||||
"planLabel": "持久对话永久续跑-20260626",
|
||||
"cursorTitle": "可持续对话-20260626",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"hostIp": "192.168.3.1",
|
||||
"updatedAt": 1782453886768
|
||||
},
|
||||
"ct_f3a15ea1": {
|
||||
"planBindingKey": "/Users/karuo/Documents/个人::可持续对话-20260626@192.168.3.1#持久对话永久续跑-20260626",
|
||||
"updatedAt": 1782453886768
|
||||
},
|
||||
"/Users/karuo/Movies/soul视频::CODEX持续对话不中断修复@192.168.3.1#CODEX持续对话不中断修复": {
|
||||
"token": "ct_79c877c9",
|
||||
"planLabel": "CODEX持续对话不中断修复",
|
||||
"cursorTitle": "CODEX持续对话不中断修复",
|
||||
"workspace": "/Users/karuo/Movies/soul视频",
|
||||
"hostIp": "192.168.3.1",
|
||||
"updatedAt": 1782471437528
|
||||
},
|
||||
"ct_79c877c9": {
|
||||
"planBindingKey": "/Users/karuo/Movies/soul视频::CODEX持续对话不中断修复@192.168.3.1#CODEX持续对话不中断修复",
|
||||
"updatedAt": 1782471437528
|
||||
},
|
||||
"/Users/karuo/Movies/soul视频::CODEX持续对话不中断验证@192.168.3.1#持续对话不中断验证": {
|
||||
"token": "ct_79d712d3",
|
||||
"planLabel": "持续对话不中断验证",
|
||||
"cursorTitle": "CODEX持续对话不中断验证",
|
||||
"workspace": "/Users/karuo/Movies/soul视频",
|
||||
"hostIp": "192.168.3.1",
|
||||
"updatedAt": 1782471635087
|
||||
},
|
||||
"ct_79d712d3": {
|
||||
"planBindingKey": "/Users/karuo/Movies/soul视频::CODEX持续对话不中断验证@192.168.3.1#持续对话不中断验证",
|
||||
"updatedAt": 1782471635087
|
||||
},
|
||||
"/Users/karuo/Documents/个人 2::继续用可持续对话@192.168.3.1#继续用可持续对话": {
|
||||
"token": "ct_fd19663f",
|
||||
"planLabel": "继续用可持续对话",
|
||||
"cursorTitle": "继续用可持续对话",
|
||||
"workspace": "/Users/karuo/Documents/个人 2",
|
||||
"hostIp": "192.168.3.1",
|
||||
"updatedAt": 1782510271641
|
||||
},
|
||||
"ct_fd19663f": {
|
||||
"planBindingKey": "/Users/karuo/Documents/个人 2::继续用可持续对话@192.168.3.1#继续用可持续对话",
|
||||
"updatedAt": 1782510271641
|
||||
},
|
||||
"/Users/karuo/Documents/个人 2::个人 2@192.168.3.1#个人 2": {
|
||||
"token": "ct_a9041b43",
|
||||
"planLabel": "个人 2",
|
||||
"cursorTitle": "个人 2",
|
||||
"workspace": "/Users/karuo/Documents/个人 2",
|
||||
"hostIp": "192.168.3.1",
|
||||
"updatedAt": 1782512901723
|
||||
},
|
||||
"ct_a9041b43": {
|
||||
"planBindingKey": "/Users/karuo/Documents/个人 2::个人 2@192.168.3.1#个人 2",
|
||||
"updatedAt": 1782512901723
|
||||
},
|
||||
"/Users/karuo/Documents/个人 2::mbti王@192.168.3.1#mbti王": {
|
||||
"token": "ct_e7f24f80",
|
||||
"planLabel": "mbti王",
|
||||
"cursorTitle": "mbti王",
|
||||
"workspace": "/Users/karuo/Documents/个人 2",
|
||||
"hostIp": "192.168.3.1",
|
||||
"updatedAt": 1782513791244
|
||||
},
|
||||
"ct_e7f24f80": {
|
||||
"planBindingKey": "/Users/karuo/Documents/个人 2::mbti王@192.168.3.1#mbti王",
|
||||
"updatedAt": 1782513791244
|
||||
},
|
||||
"/Users/karuo/Documents/个人 2::修复Codex线程读取报错@192.168.3.1#thread-read-fix": {
|
||||
"token": "ct_d2c4fd54",
|
||||
"planLabel": "thread-read-fix",
|
||||
"cursorTitle": "修复Codex线程读取报错",
|
||||
"workspace": "/Users/karuo/Documents/个人 2",
|
||||
"hostIp": "192.168.3.1",
|
||||
"updatedAt": 1782526295581
|
||||
},
|
||||
"ct_d2c4fd54": {
|
||||
"planBindingKey": "/Users/karuo/Documents/个人 2::修复Codex线程读取报错@192.168.3.1#thread-read-fix",
|
||||
"updatedAt": 1782526295581
|
||||
},
|
||||
"/Users/karuo/Documents/个人::Codex可持续对话迁移验证@192.168.3.1#Trae迁移到Codex": {
|
||||
"token": "ct_52930d68",
|
||||
"planLabel": "Trae迁移到Codex",
|
||||
"cursorTitle": "Codex可持续对话迁移验证",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"hostIp": "192.168.3.1",
|
||||
"updatedAt": 1782566117561
|
||||
},
|
||||
"ct_52930d68": {
|
||||
"planBindingKey": "/Users/karuo/Documents/个人::Codex可持续对话迁移验证@192.168.3.1#Trae迁移到Codex",
|
||||
"updatedAt": 1782566117561
|
||||
},
|
||||
"/Users/karuo/Documents/个人::工作手机版本降级到1.6.37@192.168.3.1#版本降级": {
|
||||
"token": "ct_b65f6044",
|
||||
"planLabel": "版本降级",
|
||||
"cursorTitle": "工作手机版本降级到1.6.37",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"hostIp": "192.168.3.1",
|
||||
"updatedAt": 1782638395016
|
||||
},
|
||||
"ct_b65f6044": {
|
||||
"planBindingKey": "/Users/karuo/Documents/个人::工作手机版本降级到1.6.37@192.168.3.1#版本降级",
|
||||
"updatedAt": 1782638395016
|
||||
},
|
||||
"/Users/karuo/Documents/个人::存客宝工作手机微信链路全面检查@192.168.3.1#舒克宝微信链路全面检查": {
|
||||
"token": "ct_4346073a",
|
||||
"planLabel": "舒克宝微信链路全面检查",
|
||||
"cursorTitle": "存客宝工作手机微信链路全面检查",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"hostIp": "192.168.3.1",
|
||||
"updatedAt": 1782571686629
|
||||
},
|
||||
"ct_4346073a": {
|
||||
"planBindingKey": "/Users/karuo/Documents/个人::存客宝工作手机微信链路全面检查@192.168.3.1#舒克宝微信链路全面检查",
|
||||
"updatedAt": 1782571686629
|
||||
},
|
||||
"/Users/karuo/Documents/个人::私域银行全项目需求开发@192.168.3.1#全项目_20260620完整验收": {
|
||||
"token": "ct_a883e14a",
|
||||
"planLabel": "全项目_20260620完整验收",
|
||||
"cursorTitle": "私域银行全项目需求开发",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"hostIp": "192.168.3.1",
|
||||
"updatedAt": 1782612844432
|
||||
},
|
||||
"ct_a883e14a": {
|
||||
"planBindingKey": "/Users/karuo/Documents/个人::私域银行全项目需求开发@192.168.3.1#全项目_20260620完整验收",
|
||||
"updatedAt": 1782612844432
|
||||
},
|
||||
"/Users/karuo/Documents/个人::存客宝功能完善复检@192.168.3.1#存客宝功能完善测试": {
|
||||
"token": "ct_7dda1f8b",
|
||||
"planLabel": "存客宝功能完善测试",
|
||||
"cursorTitle": "存客宝功能完善复检",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"hostIp": "192.168.3.1",
|
||||
"updatedAt": 1782572302281
|
||||
},
|
||||
"ct_7dda1f8b": {
|
||||
"planBindingKey": "/Users/karuo/Documents/个人::存客宝功能完善复检@192.168.3.1#存客宝功能完善测试",
|
||||
"updatedAt": 1782572302281
|
||||
},
|
||||
"/Users/karuo/Documents/个人::mbti王-需求高考版整理@192.168.3.1#MBTI需求高考版整理": {
|
||||
"token": "ct_252aa00f",
|
||||
"planLabel": "MBTI需求高考版整理",
|
||||
"cursorTitle": "mbti王-需求高考版整理",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"hostIp": "192.168.3.1",
|
||||
"updatedAt": 1782572308124
|
||||
},
|
||||
"ct_252aa00f": {
|
||||
"planBindingKey": "/Users/karuo/Documents/个人::mbti王-需求高考版整理@192.168.3.1#MBTI需求高考版整理",
|
||||
"updatedAt": 1782572308124
|
||||
},
|
||||
"/Users/karuo/Documents/个人::Trae 中英文版配置迁移@192.168.3.1#Trae配置迁移": {
|
||||
"token": "ct_4b73f2a2",
|
||||
"planLabel": "Trae配置迁移",
|
||||
"cursorTitle": "Trae 中英文版配置迁移",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"hostIp": "192.168.3.1",
|
||||
"updatedAt": 1782577296247
|
||||
},
|
||||
"ct_4b73f2a2": {
|
||||
"planBindingKey": "/Users/karuo/Documents/个人::Trae 中英文版配置迁移@192.168.3.1#Trae配置迁移",
|
||||
"updatedAt": 1782577296247
|
||||
},
|
||||
"/Users/karuo/Documents/个人::个人 2@192.168.3.1#wzdj证书修复": {
|
||||
"token": "ct_67f25313",
|
||||
"planLabel": "wzdj证书修复",
|
||||
"cursorTitle": "个人 2",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"hostIp": "192.168.3.1",
|
||||
"updatedAt": 1782664676328
|
||||
},
|
||||
"ct_67f25313": {
|
||||
"planBindingKey": "/Users/karuo/Documents/个人::个人 2@192.168.3.1#wzdj证书修复",
|
||||
"updatedAt": 1782664676328
|
||||
},
|
||||
"/Users/karuo/Documents/个人::对接配置接口梳理@192.168.3.1#接口梳理": {
|
||||
"token": "ct_b41c40ad",
|
||||
"planLabel": "接口梳理",
|
||||
"cursorTitle": "对接配置接口梳理",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"hostIp": "192.168.3.1",
|
||||
"updatedAt": 1782642485459
|
||||
},
|
||||
"ct_b41c40ad": {
|
||||
"planBindingKey": "/Users/karuo/Documents/个人::对接配置接口梳理@192.168.3.1#接口梳理",
|
||||
"updatedAt": 1782642485459
|
||||
},
|
||||
"/Users/karuo/Documents/个人::市场调研-工作手机源码@192.168.3.1#工作手机源码调研": {
|
||||
"token": "ct_3d469745",
|
||||
"planLabel": "工作手机源码调研",
|
||||
"cursorTitle": "市场调研-工作手机源码",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"hostIp": "192.168.3.1",
|
||||
"updatedAt": 1782643011409
|
||||
},
|
||||
"ct_3d469745": {
|
||||
"planBindingKey": "/Users/karuo/Documents/个人::市场调研-工作手机源码@192.168.3.1#工作手机源码调研",
|
||||
"updatedAt": 1782643011409
|
||||
},
|
||||
"/Users/karuo/Documents/个人::SuperAdmin工作手机切换需求文档@192.168.3.1#超管工作手机切换文档": {
|
||||
"token": "ct_c3308636",
|
||||
"planLabel": "超管工作手机切换文档",
|
||||
"cursorTitle": "SuperAdmin工作手机切换需求文档",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"hostIp": "192.168.3.1",
|
||||
"updatedAt": 1782645124103
|
||||
},
|
||||
"ct_c3308636": {
|
||||
"planBindingKey": "/Users/karuo/Documents/个人::SuperAdmin工作手机切换需求文档@192.168.3.1#超管工作手机切换文档",
|
||||
"updatedAt": 1782645124103
|
||||
},
|
||||
"/Users/karuo/Documents/个人::SuperAdmin工作手机切换需求文档@192.168.3.1#SuperAdmin需求文档续改": {
|
||||
"token": "ct_857e1daf",
|
||||
"planLabel": "SuperAdmin需求文档续改",
|
||||
"cursorTitle": "SuperAdmin工作手机切换需求文档",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"hostIp": "192.168.3.1",
|
||||
"updatedAt": 1782664185131
|
||||
},
|
||||
"ct_857e1daf": {
|
||||
"planBindingKey": "/Users/karuo/Documents/个人::SuperAdmin工作手机切换需求文档@192.168.3.1#SuperAdmin需求文档续改",
|
||||
"updatedAt": 1782664185131
|
||||
},
|
||||
"/Users/karuo/Documents/个人::工作手机@192.168.3.1#工作手机需求可用性闭环": {
|
||||
"token": "ct_0cee24c2",
|
||||
"planLabel": "工作手机需求可用性闭环",
|
||||
"cursorTitle": "工作手机",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"hostIp": "192.168.3.1",
|
||||
"updatedAt": 1782664228186
|
||||
},
|
||||
"ct_0cee24c2": {
|
||||
"planBindingKey": "/Users/karuo/Documents/个人::工作手机@192.168.3.1#工作手机需求可用性闭环",
|
||||
"updatedAt": 1782664228186
|
||||
},
|
||||
"/Users/karuo/Documents/个人::工作手机SDK演示@192.168.3.1#工作手机SDK演示": {
|
||||
"token": "ct_57f3beb5",
|
||||
"planLabel": "工作手机SDK演示",
|
||||
"cursorTitle": "工作手机SDK演示",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"hostIp": "192.168.3.1",
|
||||
"updatedAt": 1782646775961
|
||||
},
|
||||
"ct_57f3beb5": {
|
||||
"planBindingKey": "/Users/karuo/Documents/个人::工作手机SDK演示@192.168.3.1#工作手机SDK演示",
|
||||
"updatedAt": 1782646775961
|
||||
},
|
||||
"/Users/karuo/Documents/个人::SuperAdmin当日需求@192.168.3.1#SuperAdmin当日需求": {
|
||||
"token": "ct_fbbca11a",
|
||||
"planLabel": "SuperAdmin当日需求",
|
||||
"cursorTitle": "SuperAdmin当日需求",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"hostIp": "192.168.3.1",
|
||||
"updatedAt": 1782648775395
|
||||
},
|
||||
"ct_fbbca11a": {
|
||||
"planBindingKey": "/Users/karuo/Documents/个人::SuperAdmin当日需求@192.168.3.1#SuperAdmin当日需求",
|
||||
"updatedAt": 1782648775395
|
||||
},
|
||||
"/Users/karuo/Documents/个人::私域银行-工作手机开发@192.168.3.1#SuperAdmin当日需求": {
|
||||
"token": "ct_db298e18",
|
||||
"planLabel": "SuperAdmin当日需求",
|
||||
"cursorTitle": "私域银行-工作手机开发",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"hostIp": "192.168.3.1",
|
||||
"updatedAt": 1782684364098
|
||||
},
|
||||
"ct_db298e18": {
|
||||
"planBindingKey": "/Users/karuo/Documents/个人::私域银行-工作手机开发@192.168.3.1#SuperAdmin当日需求",
|
||||
"updatedAt": 1782684364098
|
||||
},
|
||||
"/Users/karuo/Documents/个人::Codex限额监控插件@192.168.3.1#Codex限额监控插件": {
|
||||
"token": "ct_cc0ef5d9",
|
||||
"planLabel": "Codex限额监控插件",
|
||||
"cursorTitle": "Codex限额监控插件",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"hostIp": "192.168.3.1",
|
||||
"updatedAt": 1782687674569
|
||||
},
|
||||
"ct_cc0ef5d9": {
|
||||
"planBindingKey": "/Users/karuo/Documents/个人::Codex限额监控插件@192.168.3.1#Codex限额监控插件",
|
||||
"updatedAt": 1782687674569
|
||||
},
|
||||
"/Users/karuo/Documents/个人::个人 2@192.168.3.1#Manus接入持久对话": {
|
||||
"token": "ct_3da81225",
|
||||
"planLabel": "Manus接入持久对话",
|
||||
"cursorTitle": "个人 2",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"hostIp": "192.168.3.1",
|
||||
"updatedAt": 1782696025219
|
||||
},
|
||||
"ct_3da81225": {
|
||||
"planBindingKey": "/Users/karuo/Documents/个人::个人 2@192.168.3.1#Manus接入持久对话",
|
||||
"updatedAt": 1782696025219
|
||||
},
|
||||
"/Users/karuo/Documents/个人::运营-剪辑@192.168.3.1#SOUL派对高光剪辑": {
|
||||
"token": "ct_6cc01012",
|
||||
"planLabel": "SOUL派对高光剪辑",
|
||||
"cursorTitle": "运营-剪辑",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"hostIp": "192.168.3.1",
|
||||
"updatedAt": 1782688062113
|
||||
},
|
||||
"ct_6cc01012": {
|
||||
"planBindingKey": "/Users/karuo/Documents/个人::运营-剪辑@192.168.3.1#SOUL派对高光剪辑",
|
||||
"updatedAt": 1782688062113
|
||||
},
|
||||
"/Users/karuo/Documents/个人::soul视频@192.168.3.1#soul视频": {
|
||||
"token": "ct_266be1c6",
|
||||
"planLabel": "soul视频",
|
||||
"cursorTitle": "soul视频",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"hostIp": "192.168.3.1",
|
||||
"updatedAt": 1782700792676
|
||||
},
|
||||
"ct_266be1c6": {
|
||||
"planBindingKey": "/Users/karuo/Documents/个人::soul视频@192.168.3.1#soul视频",
|
||||
"updatedAt": 1782700792676
|
||||
},
|
||||
"/Users/karuo/Documents/个人::卡若创业派对收费策略需求整理@192.168.3.1#创业派对收费策略": {
|
||||
"token": "ct_71f7c3fe",
|
||||
"planLabel": "创业派对收费策略",
|
||||
"cursorTitle": "卡若创业派对收费策略需求整理",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"hostIp": "192.168.3.1",
|
||||
"updatedAt": 1782696941576
|
||||
},
|
||||
"ct_71f7c3fe": {
|
||||
"planBindingKey": "/Users/karuo/Documents/个人::卡若创业派对收费策略需求整理@192.168.3.1#创业派对收费策略",
|
||||
"updatedAt": 1782696941576
|
||||
},
|
||||
"/Users/karuo/Documents/个人::Soul创业派对团队分润问题处理@192.168.3.1#团队分润": {
|
||||
"token": "ct_4d8a312f",
|
||||
"planLabel": "团队分润",
|
||||
"cursorTitle": "Soul创业派对团队分润问题处理",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"hostIp": "192.168.3.1",
|
||||
"updatedAt": 1782699662995
|
||||
},
|
||||
"ct_4d8a312f": {
|
||||
"planBindingKey": "/Users/karuo/Documents/个人::Soul创业派对团队分润问题处理@192.168.3.1#团队分润",
|
||||
"updatedAt": 1782699662995
|
||||
},
|
||||
"/Users/karuo/Documents/个人::soul视频@192.168.3.1#Soul创业实验永平需求续做": {
|
||||
"token": "ct_6a6781d1",
|
||||
"planLabel": "Soul创业实验永平需求续做",
|
||||
"cursorTitle": "soul视频",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"hostIp": "192.168.3.1",
|
||||
"updatedAt": 1782701413827
|
||||
},
|
||||
"ct_6a6781d1": {
|
||||
"planBindingKey": "/Users/karuo/Documents/个人::soul视频@192.168.3.1#Soul创业实验永平需求续做",
|
||||
"updatedAt": 1782701413827
|
||||
}
|
||||
}
|
||||
1193
01_卡资(金)/金仓_存储备份/Cursor持久对话/backups/persistent-chat-local_20260629_115132/server.js
Executable file
1193
01_卡资(金)/金仓_存储备份/Cursor持久对话/backups/persistent-chat-local_20260629_115132/server.js
Executable file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"token": "ct_d2c4fd54",
|
||||
"cursorTitle": "修复Codex线程读取报错",
|
||||
"workspace": "/Users/karuo/Documents/个人 2",
|
||||
"bindingKey": "/Users/karuo/Documents/个人 2::修复Codex线程读取报错@192.168.3.1",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"composerId": "",
|
||||
"verticalLock": true,
|
||||
"updatedAt": 1782526295598,
|
||||
"pid": 38300,
|
||||
"planLabel": "thread-read-fix"
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"token": "ct_7dda1f8b",
|
||||
"cursorTitle": "存客宝功能完善复检",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"bindingKey": "/Users/karuo/Documents/个人::存客宝功能完善复检@192.168.3.1",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"composerId": "",
|
||||
"verticalLock": true,
|
||||
"updatedAt": 1782572328055,
|
||||
"pid": 87533
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"token": "ct_8017ec8c",
|
||||
"cursorTitle": "Trae持续对话迁移",
|
||||
"workspace": "/Users/karuo/Documents/个人 2",
|
||||
"bindingKey": "/Users/karuo/Documents/个人 2::Trae持续对话迁移@192.168.3.1",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"composerId": "",
|
||||
"verticalLock": true,
|
||||
"updatedAt": 1782450795018,
|
||||
"pid": 14597
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"token": "ct_71f7c3fe",
|
||||
"cursorTitle": "卡若创业派对收费策略需求整理",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"bindingKey": "/Users/karuo/Documents/个人::卡若创业派对收费策略需求整理@192.168.3.1",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"composerId": "",
|
||||
"verticalLock": true,
|
||||
"updatedAt": 1782696941588,
|
||||
"pid": 15742,
|
||||
"planLabel": "创业派对收费策略"
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"token": "ct_e7f24f80",
|
||||
"cursorTitle": "mbti王",
|
||||
"workspace": "/Users/karuo/Documents/个人 2",
|
||||
"bindingKey": "/Users/karuo/Documents/个人 2::mbti王@192.168.3.1",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"composerId": "",
|
||||
"verticalLock": true,
|
||||
"updatedAt": 1782513791241,
|
||||
"pid": 34781
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"token": "ct_57f3beb5",
|
||||
"cursorTitle": "工作手机SDK演示",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"bindingKey": "/Users/karuo/Documents/个人::工作手机SDK演示@192.168.3.1",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"composerId": "",
|
||||
"verticalLock": true,
|
||||
"updatedAt": 1782646785446,
|
||||
"pid": 98947
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"token": "ct_1f89ce17",
|
||||
"cursorTitle": "mbti王-需求勾选同步",
|
||||
"workspace": "/Users/karuo/Documents/个人 2",
|
||||
"bindingKey": "/Users/karuo/Documents/个人 2::mbti王-需求勾选同步@192.168.3.1",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "192.168.110.101:13458",
|
||||
"composerId": "",
|
||||
"verticalLock": true,
|
||||
"updatedAt": 1782561135829,
|
||||
"pid": 41876,
|
||||
"planLabel": "需求勾选同步"
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"token": "ct_4346073a",
|
||||
"cursorTitle": "存客宝工作手机微信链路全面检查",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"bindingKey": "/Users/karuo/Documents/个人::存客宝工作手机微信链路全面检查@192.168.3.1",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"composerId": "",
|
||||
"verticalLock": true,
|
||||
"updatedAt": 1782572327886,
|
||||
"pid": 65001,
|
||||
"planLabel": "存客宝触客宝界面功能检查"
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"token": "ct_f3a15ea1",
|
||||
"cursorTitle": "持久对话永久续跑-20260626",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"bindingKey": "/Users/karuo/Documents/个人::持久对话永久续跑-20260626@192.168.3.1",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"composerId": "",
|
||||
"verticalLock": true,
|
||||
"updatedAt": 1782450202336,
|
||||
"pid": 55199
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"token": "ct_6a6781d1",
|
||||
"cursorTitle": "soul视频",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"bindingKey": "/Users/karuo/Documents/个人::soul视频@192.168.3.1",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"composerId": "",
|
||||
"verticalLock": true,
|
||||
"updatedAt": 1782701417290,
|
||||
"pid": 87594
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"token": "ct_6ee84716",
|
||||
"cursorTitle": "mbti王-勾选已完成需求",
|
||||
"workspace": "/Users/karuo/Documents/个人 2",
|
||||
"bindingKey": "/Users/karuo/Documents/个人 2::mbti王-勾选已完成需求@192.168.3.1",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "192.168.110.101:13458",
|
||||
"composerId": "",
|
||||
"verticalLock": true,
|
||||
"updatedAt": 1782561067784,
|
||||
"pid": 36829,
|
||||
"planLabel": "需求勾选"
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"token": "ct_52930d68",
|
||||
"cursorTitle": "Codex可持续对话迁移验证",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"bindingKey": "/Users/karuo/Documents/个人::Codex可持续对话迁移验证@192.168.3.1",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"composerId": "",
|
||||
"verticalLock": true,
|
||||
"updatedAt": 1782566117547,
|
||||
"pid": 96891
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"token": "ct_ca8c6f6d",
|
||||
"cursorTitle": "恢复Codex对话记录",
|
||||
"workspace": "/Users/karuo/Documents/个人 2",
|
||||
"bindingKey": "/Users/karuo/Documents/个人 2::恢复Codex对话记录@192.168.3.1",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "192.168.110.101:13458",
|
||||
"composerId": "",
|
||||
"verticalLock": true,
|
||||
"updatedAt": 1782527358213,
|
||||
"pid": 92286,
|
||||
"planLabel": "时间机器恢复"
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"token": "ct_79c877c9",
|
||||
"cursorTitle": "CODEX持续对话不中断修复",
|
||||
"workspace": "/Users/karuo/Movies/soul视频",
|
||||
"bindingKey": "/Users/karuo/Movies/soul视频::CODEX持续对话不中断修复@192.168.3.1",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"composerId": "",
|
||||
"verticalLock": true,
|
||||
"updatedAt": 1782471437537,
|
||||
"pid": 16399,
|
||||
"planLabel": ""
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"token": "ct_0cee24c2",
|
||||
"cursorTitle": "工作手机",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"bindingKey": "/Users/karuo/Documents/个人::工作手机@192.168.3.1",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"composerId": "",
|
||||
"verticalLock": true,
|
||||
"updatedAt": 1782664228161,
|
||||
"pid": 86421
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"token": "ct_cc0ef5d9",
|
||||
"cursorTitle": "Codex限额监控插件",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"bindingKey": "/Users/karuo/Documents/个人::Codex限额监控插件@192.168.3.1",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"composerId": "",
|
||||
"verticalLock": true,
|
||||
"updatedAt": 1782687674552,
|
||||
"pid": 48375
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"token": "ct_2d71a51d",
|
||||
"cursorTitle": "mbti王-需求高考版整理",
|
||||
"workspace": "/Users/karuo/Documents/个人 2",
|
||||
"bindingKey": "/Users/karuo/Documents/个人 2::mbti王-需求高考版整理@192.168.3.1",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"composerId": "",
|
||||
"verticalLock": true,
|
||||
"updatedAt": 1782562082336,
|
||||
"pid": 41876
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"token": "ct_3a4e8a75",
|
||||
"cursorTitle": "Trae重装验证-20260626",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"bindingKey": "/Users/karuo/Documents/个人::Trae重装验证-20260626@192.168.3.1",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"composerId": "",
|
||||
"verticalLock": true,
|
||||
"updatedAt": 1782448623061,
|
||||
"pid": 55199
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"token": "ct_fd19663f",
|
||||
"cursorTitle": "继续用可持续对话",
|
||||
"workspace": "/Users/karuo/Documents/个人 2",
|
||||
"bindingKey": "/Users/karuo/Documents/个人 2::继续用可持续对话@192.168.3.1",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"composerId": "",
|
||||
"verticalLock": true,
|
||||
"updatedAt": 1782481462482,
|
||||
"pid": 46545
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"token": "ct_b41c40ad",
|
||||
"cursorTitle": "对接配置接口梳理",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"bindingKey": "/Users/karuo/Documents/个人::对接配置接口梳理@192.168.3.1",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"composerId": "",
|
||||
"verticalLock": true,
|
||||
"updatedAt": 1782642489268,
|
||||
"pid": 81431
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"token": "ct_252aa00f",
|
||||
"cursorTitle": "mbti王-需求高考版整理",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"bindingKey": "/Users/karuo/Documents/个人::mbti王-需求高考版整理@192.168.3.1",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"composerId": "",
|
||||
"verticalLock": true,
|
||||
"updatedAt": 1782572308129,
|
||||
"pid": 94233,
|
||||
"planLabel": "MBTI需求高考版整理"
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"token": "ct_857e1daf",
|
||||
"cursorTitle": "SuperAdmin工作手机切换需求文档",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"bindingKey": "/Users/karuo/Documents/个人::SuperAdmin工作手机切换需求文档@192.168.3.1",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"composerId": "",
|
||||
"verticalLock": true,
|
||||
"updatedAt": 1782664185114,
|
||||
"pid": 80276
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"token": "ct_a9041b43",
|
||||
"cursorTitle": "个人 2",
|
||||
"workspace": "/Users/karuo/Documents/个人 2",
|
||||
"bindingKey": "/Users/karuo/Documents/个人 2::个人 2@192.168.3.1",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"composerId": "",
|
||||
"verticalLock": true,
|
||||
"updatedAt": 1782512901718,
|
||||
"pid": 22997
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"token": "ct_4d8a312f",
|
||||
"cursorTitle": "Soul创业派对团队分润问题处理",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"bindingKey": "/Users/karuo/Documents/个人::Soul创业派对团队分润问题处理@192.168.3.1",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"composerId": "",
|
||||
"verticalLock": true,
|
||||
"updatedAt": 1782699663007,
|
||||
"pid": 49055,
|
||||
"planLabel": "团队分润"
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"token": "ct_79d712d3",
|
||||
"cursorTitle": "CODEX持续对话不中断验证",
|
||||
"workspace": "/Users/karuo/Movies/soul视频",
|
||||
"bindingKey": "/Users/karuo/Movies/soul视频::CODEX持续对话不中断验证@192.168.3.1",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"composerId": "",
|
||||
"verticalLock": true,
|
||||
"updatedAt": 1782471635094,
|
||||
"pid": 16399,
|
||||
"planLabel": "持续对话不中断验证"
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"token": "ct_4b73f2a2",
|
||||
"cursorTitle": "Trae 中英文版配置迁移",
|
||||
"workspace": "/Users/karuo/Documents/个人",
|
||||
"bindingKey": "/Users/karuo/Documents/个人::Trae 中英文版配置迁移@192.168.3.1",
|
||||
"hostIp": "192.168.3.1",
|
||||
"hub": "127.0.0.1:13458",
|
||||
"composerId": "",
|
||||
"verticalLock": true,
|
||||
"updatedAt": 1782577296232,
|
||||
"pid": 35503
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user