Skip to content

fix: clean up agent workspace directory on delete - #210

Merged
jubaoliang merged 1 commit into
TencentCloud:developfrom
Georgyhongbo:fix/agent-delete-workspace-cleanup
Aug 9, 2026
Merged

fix: clean up agent workspace directory on delete#210
jubaoliang merged 1 commit into
TencentCloud:developfrom
Georgyhongbo:fix/agent-delete-workspace-cleanup

Conversation

@Georgyhongbo

Copy link
Copy Markdown
Contributor

Fix: clean up agent workspace directory on delete

Summary

修复删除 Agent 时工作区残留问题。之前删除 Agent 只移除 harness 运行时和数据库记录,~/.octop/agents/<agent_id>/ 目录会残留在磁盘上,随时间积累大量孤儿文件(agent 记忆、会话等)。

What does this PR change and why?

  • 修复:AgentRegistry.delete() 删除 Agent 时同时清理工作区目录
  • 修复:delete_agent_offline() 离线删除 Agent 时同样清理工作区目录
  • 修复:清理失败(如文件被占用)时记录日志但不阻断数据库删除,与删除用户的既有逻辑保持一致
  • 新增:两个单元测试覆盖工作区清理成功与 rmtree 失败两种情况

Important Note

本次修改不涉及任何记忆层/数据库结构变更,仅补全删除 Agent 时应有的磁盘清理。

  • 不调用任何新的后端删除接口
  • 数据库结构与 Agent 记忆格式完全不变
  • 若清理失败,Agent 仍会从数据库删除,目录保留待后续处理

Target branch

  • Base is main (release/* or hotfix/* only)
  • Base is develop (feature / fix - default)

Type of change

  • Bug fix
  • New feature
  • Breaking change
  • Documentation
  • Refactor / chore
  • Release / hotfix

Detailed change list

src/octop/infra/agents/manager.py

  • 新增 import shutil
  • AgentRegistry.delete():在移除 harness 运行时、删除数据库记录前,调用 shutil.rmtree 清理 ~/.octop/agents/<agent_id>/ 工作区目录
  • 清理失败时用 logger.exception 记录,不阻断数据库删除

src/octop/cli/support/offline_ops.py

  • 新增 import loggingimport shutil 与模块级 logger
  • delete_agent_offline():删除数据库记录前同样清理工作区目录,失败记录日志不阻断

tests/unit/agents/test_agent_manager.py

  • 新增 test_delete_removes_workspace_directory:验证删除 Agent 后工作区目录被清理
  • 新增 test_delete_keeps_db_row_when_workspace_rmtree_fails:验证 rmtree 失败不阻断数据库删除

Test plan

运行测试

cd dashboard
npm run test
  • make all passes locally
  • 全部单元测试通过

功能验证

  1. 创建测试 Agent -> 启动 -> 通过界面删除
  2. 确认 ~/.octop/agents/<agent_id>/ 目录随 Agent 删除一并移除
  3. 通过 CLI 离线删除同样验证目录被清理

Checklist

  • Updated CHANGELOG.md (if user-facing)
  • README / docs updated (if needed)
  • 不涉及记忆层改动

Security / Safety Notes

  • 仅清理该 Agent 专属的工作区目录,不触碰其他 Agent 数据
  • 删除用户的既有逻辑(users/manager.py)保持一致的行为模式

@Georgyhongbo
Georgyhongbo changed the base branch from main to develop August 9, 2026 02:54
@jubaoliang
jubaoliang merged commit ea1e25c into TencentCloud:develop Aug 9, 2026
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