Agent Skills
返回列表
WorkBuddy工作空间路径搬迁

WorkBuddy工作空间路径搬迁

开发编程 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_b187eee2/workspace-relocate。

技能介绍

解决什么问题

当你在文件系统中移动或重命名 WorkBuddy 工作空间文件夹后,应用侧边栏可能会继续指向失效的旧路径,导致工作区无法正常加载,历史会话记录也会丢失。这是因为 WorkBuddy 在多个位置硬编码了原始路径的映射关系。本技能通过精确的数据库操作和目录重命名,一次性修复这些断链。

核心原理与执行步骤

WorkBuddy 将工作空间映射分散在 SQLite 数据库(workbuddy.db)、会话记录和本地磁盘目录中。技能会按以下顺序同步更新这三处关联:

  • 状态核查:只读校验磁盘文件现状,确认旧路径失效、新路径已就位,并读取数据库定位需要修改的路径或会话 ID。
  • 安全备份:在动手前,对数据库、WAL 和 SHM 文件进行带时间戳的三件套备份,确保变更可回滚。
  • 事务更新:通过短锁和事务安全地执行 UPDATE,同步修改 workspaces 表的 path 和 sessions 表的 cwd 字段。
  • 目录重命名:使用系统调用重命名磁盘上的历史会话目录,保证历史 JSONL 数据不丢失。
  • WAL 固化与校验:执行 PRAGMA wal_checkpoint(TRUNCATE) 将写入日志固化,并重新查询数据库确认所有路径已正确同步。

适用边界与注意点

  • 转义规则:~/.workbuddy/projects/ 下的目录名经过特殊转义,路径中的 \ 替换为 -,冒号被移除。重命名时需严格遵循此规则。
  • Bash 脚本陷阱:在 Git Bash 中使用 heredoc 时,Windows 路径的反斜杠极易被吞没,导致写入正斜杠路径。必须使用 chr(92) 拼接反斜杠以规避此问题。
  • 只改库模式:如果仅执行数据库更新而不操作磁盘,应用虽能指向新路径,但旧的历史会话目录未重命名,历史记录将无法关联或显示。
  • 完全重启:修改完成后,必须完全退出 WorkBuddy(包括系统托盘进程),否则侧边栏不会刷新路径。

使用场景

  • 资源管理器里移动或重命名工作空间文件夹后,侧边栏指向死路径、点开找不到文件,需更新 WorkBuddy 数据库中的路径对应关系。
  • 工作空间历史会话丢失或无法关联,需同步重命名 ~/.workbuddy/projects/ 下按旧路径命名的历史目录,保留 jsonl 会话文件。
  • 文件已自行迁移、用户只想改数据库不碰磁盘,需仅更新 workspaces 和 sessions 表并提示历史会话可能不显示。
  • Git Bash heredoc 写入路径时反斜杠被吞,导致 UPDATE 匹配 0 行,需用 chr(92) 构造反斜杠重跑事务更新。

适合人员

  • 经常整理磁盘、会把项目文件夹移到其他盘符或归档目录的 WorkBuddy 用户,需要迁移后工作空间不失效。
  • 习惯用 Git Bash 脚本自动化 Windows 路径操作的开发者,需要避开反斜杠转义坑导致数据库写入失败。
  • 依赖历史会话回溯工作的工程师,需要在搬迁文件夹后仍能关联到旧会话记录。