feat: 本地任务导入支持 WorkBuddy 历史对话
- Dominant language
- TypeScript
- Stars
- 2.7k
- Forks
- 401
- Avg merge
- 21h 48m
- Merged PRs (30d)
- 776
Description
### 使用场景 / Use case
用户此前使用 WorkBuddy,迁移到 Cindy 后希望把 WorkBuddy 里的历史对话导入 Cindy,继续在原有上下文基础上工作(与现有的 Codex / Claude Code 本地任务导入同一场景)。
### 当前问题 / Current limitation
本地任务导入目前只支持两种外部会话源:
- 代码位置:`apps/desktop/src/main/localDb/ipc/session-import.ts`,`ImportSource = 'codex' | 'claude'`
- 扫描与导入实现分别在 `apps/desktop/src/main/maker-host/codex-local-sessions.ts` 和 `apps/desktop/src/main/maker-host/claude-local-sessions.ts`
WorkBuddy 没有接入,用户无法把 WorkBuddy 的历史对话带进 Cindy。
### 期望方案 / Proposed solution
参照 Codex / Claude Code 的接入方式,新增第三个 source `workbuddy`:
1. 确认 WorkBuddy 本地会话数据的存储位置与格式(是否为可解析的本地 JSONL / SQLite 等)
2. 实现 `workbuddy-local-sessions` 的 scan + import(会话元数据、消息映射、workdir 关联)
3. 导入 UI 的来源选择中增加 WorkBuddy 入口
前置调研:WorkBuddy 会话数据的落盘位置、格式稳定性、以及与 Cindy 会话模型(任务/消息)的映射关系。
### 已考虑的替代方案 / Alternatives considered
- 用户手动导出 WorkBuddy 对话再粘贴/文件引用导入——丢失结构化会话边界,体验差
- 不做专门接入,等 WorkBuddy 提供标准导出格式后再评估
### 备注
- 仓库内现有 `WorkBuddy` 字样仅出现在 `docs/superpowers/specs/2026-08-06-plugin-marketplace-design.md`(竞品教训引用)与已合并 PR #1134(钉钉 AI Card 参考实现),与本需求无关
- 欢迎在评论里补充 WorkBuddy 本地数据路径样例(注意脱敏)
Contributor guide
Research direction
Start with apps/desktop/src/main/localDb/ipc/session-import.ts and compare the scan/import implementations in apps/desktop/src/main/maker-host/codex-local-sessions.ts and claude-local-sessions.ts. First confirm WorkBuddy’s local storage location and format, then trace the import UI entry point. Done means WorkBuddy can be selected and its session metadata, messages, and workdir are imported correctly.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- electron, typescript
- Domain
- desktop
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100