Skip to content

fix(subagents): 子会话与普通会话一样长期保存,修复后台任务面板打开子会话 404 - #99

Merged
shaohaozhi286 merged 1 commit into
masterfrom
worktree-mesh-swarm-v2
Oct 3, 2026
Merged

shaohaozhi286 merged 1 commit into
masterfrom
worktree-mesh-swarm-v2

Conversation

@shaohaozhi286

Copy link
Copy Markdown
Collaborator

背景

  1. 网状蜂群的子会话在后台任务面板里打不开:「加载失败:HTTP 404 SESSION_NOT_FOUND」。Desktop 的 daemon 同时服务多个工作区,子会话不在内存里时(网状 agent 被换出、Desktop 重启后)面板只带会话 id 去请求,daemon 只在自己的 cwd 里找,找不到。
  2. 用户决定:子会话要和普通会话一样长期保存,只在主会话被归档并永久删除时才一起删除。原来面板的「清除」和 TUI /tasks clear 都是直接永久删除。

改动

  • 面板查看子会话带上父会话所在工作区(SubagentPanel / useSubagentTasks / ChatView),daemon 能去对应工作区读盘。
  • 面板「清除」→「归档」,TUI /tasks clear 同语义:卸载 + meta.archived=true,从面板收起,记录保留;归档的子会话也不进「已归档会话」列表。
  • 永久删除已归档主会话时级联删除它的全部子会话(purge_session_data,含还没落盘、只在内存里的),子会话在前、主会话最后,中途失败主会话仍在可重试;任一子会话运行中返回 409。
  • TUI 退出清理只按主会话计 max_sessions,被清理的主会话连同子会话一起删;父会话已不在的孤儿子会话按主会话计,否则永远清不掉。
  • 网状 agent 被归档后再次被寻址时自动取消归档,重新出现在面板里。
  • 删除 hook 里未使用、且与新语义冲突的 purgeTask;文档(CLAUDE.md、docs/subagents.md、docs/daemon-api.md、帮助页)同步。

验证

  • 新增 / 更新回归:WebServerHttp.PurgingArchivedMainSessionCascadesToItsSubagents、SessionCleanup.*(2 条)、SubagentHost.ListMergesAndClearOnlyArchivesSettled、MeshAgentServiceTest.ArchivedAgentIsUnarchivedWhenAddressedAgain、前端 subagentPanelSplitArchitecture.test.js 两条。
  • Windows 本机:run_fast_tests.py --profile fast 4939 执行 0 失败;pnpm test 全过、pnpm build 成功;分层与所有权闸门通过。
  • 已知:builtin_commands.cpp 行数 2077 超 R12 基线 2060 是 master(329faf9)上已有的情况,本 PR 未改变它的行数。

- 后台任务面板查看子会话时带上父会话所在工作区。Desktop 的 daemon 同时服务多个
  工作区,子会话不在内存里(网状 agent 被换出、Desktop 重启后)时只按 daemon 自己的
  cwd 找,返回 404 SESSION_NOT_FOUND,子会话的通信内容看不到。
- 面板「清除」改为「归档」,TUI /tasks clear 同语义:只把已结束任务收起
  (卸载 + meta.archived),记录保留;归档的子会话也不进「已归档会话」列表。
- 永久删除已归档主会话时级联删除它的全部子会话(含只在内存里的),子会话在前、
  主会话最后;任一子会话运行中返回 409。
- TUI 退出清理只按主会话计 max_sessions,被清理的主会话连同子会话一起删除;
  父会话已不在的孤儿子会话按主会话计。
- 网状 agent 被归档后再次被寻址时自动取消归档,重新出现在面板里。
@shaohaozhi286
shaohaozhi286 merged commit 0794c1c into master Oct 3, 2026
2 of 3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants