Files
ycode/docs/reference/workbuddy-independent-conversations-2026-10-08.md

80 lines
5.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# WorkBuddy 无项目归属对话实测(2026-10-08)
## 1. 环境与检查范围
应用为 WorkBuddy.exe 5.7.6,通过原生 Electron CDP 9223 检查真实侧栏、既有独立对话、新建任务页、工作空间选择菜单和“保存到工作空间”弹窗。另只读检查本地 SQLite 与安装包对应处理代码。
未发送消息、执行工具、保存工作空间、移动任务、归档或删除数据。打开的保存弹窗已取消;结论区分实际 UI/数据观察和未执行的代码路径。
## 2. 无项目归属不代表无目录
本地 `sessions` 分别保存:
```text
project_id 项目归属,可为空
cwd 实际本地工作目录
is_playground 区分自动目录的独立任务与工作空间任务
transport 本地/云端执行来源
group_id 另一种分组字段,不能等同于 project_id
```
当前未删除的样本共有 15 条本地会话,10 条 `project_id IS NULL`:
| 类别 | 数量 | 实测结果 |
|---|---:|---|
| 自动目录独立任务 | 9 | is_playground=1;cwd 为用户 WorkBuddy 根目录下的时间戳目录 |
| 已有目录工作空间任务 | 1 | is_playground=0;cwd 为已有本地目录,project_id 仍为空 |
检查的目录均存在;不是靠一个隐藏的项目 ID 为这些任务兜底。当前 Ygent 的独立任务绑定隐藏 task 级项目,与这个本地会话模型不同。
## 3. 侧栏按任务形态展示
- 自动目录独立任务显示在“任务 (9)”分组;当前 DOM 挂载前 5 条,另有“查看更多 (4)”。挂载数不能当作总数。
- 已有目录工作空间任务放在“空间”分组的目录名称下面。
- 两个真正有项目 ID 的项目也显示在“空间”分组中,因此“空间”不是“所有会话都有项目归属”的证据。
- 侧栏没有为无项目归属任务显示一个“未归类项目”。
## 4. 新建任务如何取得目录
新建任务页的输入区默认显示“选择工作空间”。展开后可以选择已登记目录、新建工作空间或打开本地文件夹。
静态代码确认:未选择目录时,前端将 selectedCwd 留空并使用 isPlayground=true;选择目录时使用该目录并设 isPlayground=false。
后端的 `workspaceGenerateDefaultCwd` 解析默认根目录,再创建以 `YYYY-MM-DD-HH-mm-ss` 命名的目录;同名时尝试其他时间戳,确保新目录唯一。默认根目录可来自应用配置,通常位于用户主目录的品牌文件夹下。
这个自动创建路径与现有会话目录吻合。本次没有新发消息触发创建,故不把创建的准确时点、失败交互或工具运行过程记为动态实测通过。
## 5. “保存到工作空间”不是“归入项目”
既有独立任务的右键菜单实测含:置顶、重命名、分享任务、在独立窗口中打开、保存到工作空间、打开文件夹、批量操作、归档和删除任务。
“保存到工作空间”弹窗要求填写工作空间名称,并说明可持续使用对话和文件、同时开展多个任务。
对应代码路径:
1. 校验名称及重名/系统保留名。
2. 调用 conversations.move(taskId, 原 cwd, transport)。
3. 为原 cwd 设置工作空间显示名。
4. 将前端任务 isPlayground 更新为 false,刷新列表。
这里没有传入目标 projectId,也不是选择云端项目的归类弹窗。调用仍传入原 cwd;本次没有点击保存,未实测 move 的所有后端文件副作用。
在当前独立本地任务菜单中没有看到“归入项目”入口,不能据此断言其他来源或版本绝对不存在该能力。
## 6. 持久化与清理边界
独立任务已有本地 SQLite 会话记录,工作目录真实存在,旧任务能重新打开。“未保存到工作空间”不能解释成“不保存聊天”或“关闭立即清除文件”。
清理周期、归档/删除是否清理目录、任务恢复时的全部执行状态、本地任务归入云端项目等路径均未实测。
## 7. 给 Ygent 的参考与后续落地
以下来自调研建议。后续已在 [项目概念约定](ygent-project-space.md) 和 [实施方案](ygent-project-implementation.md) 明确 Ygent 自身规则,包括归属调整保留实际目录;这些实现选择不属于 WorkBuddy 实测结论。
- 无项目归属对话可以保留 projectId=null,显示在“任务”列表,不必制造“未归类”项目或展示隐藏项目。
- 未指定目录时为该任务准备独立托管目录;任务本身持久化,项目归属与实际 cwd 分开记录。
- 以后归入 Ygent 项目时,应单独定义是否沿用原目录、项目指令从何时生效、文件如何处理,不能只改 projectId 就暗中搬文件或切换执行目录。
- 当前不必照搬 WorkBuddy 的“保存到工作空间”产品入口;Ygent 已采用 [项目+工作目录定义](ygent-project-space.md),需要保持术语简单。
原始采集及静态片段位于用户私有 `.ygent/imports/render-audit-20261008/`。参见 [WorkBuddy 项目概念](workbuddy-project-concept-2026-10-08.md)。