删除 ZCode 会话,并生成可撤销备份。支持删除、恢复、撤销和备份列表查看。
- 你需要在 ZCode 中删除某个会话,但原版没有直接删除能力。
- 你想保留可恢复的备份,避免误删。
- 你希望用统一 CLI 处理会话删除和恢复。
python3 skills/zcode-session-delete/scripts/zcode-session-delete --helppython3 skills/zcode-session-delete/scripts/zcode-session-delete verify <session_id>python3 skills/zcode-session-delete/scripts/zcode-session-delete delete <session_id># 预览项目相关会话
python3 skills/zcode-session-delete/scripts/zcode-session-delete bulk-delete "<project>" --dry-run
# 执行删除
python3 skills/zcode-session-delete/scripts/zcode-session-delete bulk-delete "<project>"
# 跳过指定会话
python3 skills/zcode-session-delete/scripts/zcode-session-delete bulk-delete "<project>" --skip <session_id>python3 skills/zcode-session-delete/scripts/zcode-session-delete listpython3 skills/zcode-session-delete/scripts/zcode-session-delete undo <undo_token>或直接恢复:
python3 skills/zcode-session-delete/scripts/zcode-session-delete restore <backup_path>python3 skills/zcode-session-delete/scripts/zcode-session-delete \
delete <session_id> --backup-dir /tmp/my-backups- 目标会话不再出现在
~/.zcode/cli/db/db.sqlite的session表和~/.zcode/v2/tasks-index.sqlite的tasks表。 - 存在备份文件,可用于恢复。
- 删除前会先备份;若删除失败会回滚数据库事务。
- 如发现数据异常,优先使用
undo <undo_token>恢复。 - 可同时查看
~/.zcode-session-delete/backups/了解历史备份。
- 确认
session_id是否拼写正确。 - 检查
~/.zcode/cli/db/db.sqlite是否存在。 - 该会话可能已被删除,可执行
list查看历史备份。
- 先执行
verify或bulk-delete --dry-run确认会话是否仍存在。 - 确认你使用的是正确的名称或 session_id。
- 匹配基于
project_id、directory、path的大小写不敏感模糊匹配。 - 使用
--dry-run先查看匹配列表。 - 使用
--skip排除不需要删除的会话。
- 脚本在数据库删除阶段失败时会回滚已修改的 state 库。
- 如果数据库已回滚但备份文件已生成,可直接使用该备份。
- 确认备份文件路径正确,且未手动修改 JSON。
- 如果提示已存在,脚本使用
INSERT OR IGNORE,不会覆盖已有数据。 - 如需强制恢复,可手动备份当前数据后再操作。
- 确保当前用户对
~/.zcode/cli/db/db.sqlite和~/.zcode-session-delete/backups有读写权限。 - macOS/Linux 可使用
ls -ld查看目录权限。
- 查看备份目录:
ls -la ~/.zcode-session-delete/backups - 查看当前 state 库:
sqlite3 ~/.zcode/cli/db/db.sqlite "SELECT id, title FROM session WHERE id = '<session_id>';"