项目、工作区与编码会话
Ghast 用三个对象组织编码工作:项目是侧栏中的导航分组,工作区是文件、终端和 Git 操作实际使用的本机目录,编码会话保存一次任务的消息与运行记录。开始任务前,应同时确认项目和工作区;项目名称相同不代表目录相同。
添加项目并开始会话
- 进入 编码。
- 在侧栏 项目(Projects) 区域选择 选择目录…(Select Directory…)。正式版 0.1.33 输入区也提供 添加(+)→ 在工作区中新建聊天(New chat in workspace);本例使用项目列表入口。
- 在系统文件选择器中选择项目根目录。
- 返回 Ghast,核对新增项目名称和完整路径。添加项目后,主区域可能仍显示之前打开的会话。
- 从该项目下选择 新编码会话(New coding session),发送前再次核对会话顶部的工作区文件夹,悬停可查看完整路径。接着完成正式版编码示例。
顶层的 新编码会话不要求先选择项目,但在发送第一条消息前应手动选择工作区。添加目录只是让它出现在项目和工作区列表中,不会自动批准文件修改或命令执行。
使用工作区选择器
工作区菜单可能包含:
- 无工作区:不绑定用户选择的项目目录;编码会话仍可能使用 Ghast 管理的内部会话目录;
- 默认:Ghast 管理的内部
Default工作区;它与 设置 → 通用 → 默认工作区 中选择的目录是两个独立概念; - 已添加项目:显示名称和完整路径;
- 选择目录…:添加另一个本机目录。

从项目下新建的会话通常会带入该项目。发送前仍应检查完整路径,特别是电脑上同时存在主检出、临时副本或同名仓库时。
在会话中切换工作区
空白会话还没有消息时,选择另一个工作区会更新当前会话。会话已有消息后,再选择不同工作区会创建并打开一条新的 New Chat 编码会话,并继承当前的“询问”或“完全访问”命令授权;旧会话和历史留在原项目,不会迁移到新目录。
切换后检查输入区路径、项目位置以及 Git 当前分支。不要依靠上一条会话的目录记忆来判断当前运行目标。
设置默认工作区
进入 设置 → 通用 → 默认工作区,选择回退工作区,或选择自动,选择后立即保存。它不会改变工作区菜单中的内部 默认 / Default 项,也不会自动绑定普通 Chat 或编码新会话;已有本地会话保留自身项目。外部渠道聊天遵循各自的绑定和默认规则,已有会话的处理也存在平台差异,详见默认工作区行为。
关于托管 Worktree
如果会话使用 Ghast 托管的 Worktree,应把它当作独立的 Git 检出:在输入区核对完整路径,在 Git 面板核对分支,并分别检查未提交与未推送内容。显示 Pull Request 区域还需要托管 Worktree 已记录分支,并已完成 GitHub 认证;通过该区域成功合并 PR 后,才会出现合并后清理对话框。
删除编码会话
删除确认会说明:会话及消息会从 Ghast 移除,磁盘上的工作区文件保留。删除会话不是代码回滚;需要恢复文件时,应使用快照回滚或 Git。
确认删除后,Ghast 会停止与该会话关联并由客户端管理的终端会话。终端启动的脱离子进程、独立应用或外部服务仍可能继续运行,因此清理后还要在操作系统和目标服务中检查。
删除项目
从编码侧删除项目会移除该项目在当前工作面中的显示,并删除当前工作面的关联会话;同一路径若仍被另一个工作面使用,底层 Workspace 记录和另一面的会话可以保留。磁盘目录不会删除。相关 Ghast 终端会话会被停止;已脱离终端的子进程或外部任务仍可能存活。
删除不可撤销。确认前核对会话数量,并保存仍需保留的结论;确认后再检查磁盘文件、Git、系统进程和远端状态。