Code 会话
Code 会话是「能动手」的部分:Agent 在你的仓库里读文件、改代码、跑命令、提交、开 PR,改动可逐行审阅与回滚。
项目
| 项 | 说明 |
| 类型 | 本地目录或 SSH 远程仓库(user@host:port + 路径) |
| 组织 | 分组管理;卡片上可「在 Code 中打开」「生成 Wiki」「复制路径」 |
| 凭据 | SSH 密码用 DataProtection 加密存储 |
工作区:当前分支 or 独立工作树
| 模式 | 行为 |
| 当前分支 | 直接在项目目录工作;在会话创建时选的分支会立即检出 |
| 新工作树 | 用 git worktree 创建独立目录与分支,主工作区不受影响;默认在仓库父目录的 .hetu-worktrees/<仓库名>/<工作树名>,名字由首条消息内容生成 |
工作树根目录可在 设置 → 工作区 修改(绝对路径,不能位于仓库内部)。已完成的工作树按「改动已合并 + 工作区干净 + 空闲超过阈值」自动清理,可配置间隔(1 / 6 / 12 / 24 小时)、空闲时长与是否连分支一起删。
从选工作区到合并清理:Agent 的每次改动都能在「更改」里逐行看、在「检查点」整体回滚,提交与 PR 走 Git / PR 面板。
分支与 Git 同步
- 分支选择器同时列出本地与远程分支;选远程引用会创建对应的本地跟踪分支。
- 会话开始后工作区与分支固定(避免中途换环境导致改动错位),标题旁常驻工作区 / 分支徽标。
- 标题旁一个同步按钮,按状态自动决定拉取、推送或刷新,结果显示在提示气泡里。
目录布局
| 路径 | 内容 |
<仓库>/ | 主工作区,会话不会直接改这里(选「当前分支」模式时才会) |
<仓库父目录>/.hetu-worktrees/<仓库名>/<工作树名>/ | 会话的独立工作树(可在设置里改根目录) |
<数据目录>/hetu.db | SQLite 数据库(会话、消息、检查点元数据、代码块向量) |
<数据目录>/logs/ | 后端日志(Serilog 按天滚动) |
底层命令
| 动作 | 实现要点 |
| 状态与同步 | git status --porcelain=v2 --branch 解析分支、ahead / behind 与逐文件状态(避免依赖本地化输出) |
| 分支列表 | 本地 for-each-ref + 远程 rev-parse --symbolic --remotes(过滤 origin/HEAD) |
| 创建 / 切换 | git worktree add、git checkout;选远程引用时自动建本地跟踪分支 |
| 提交 | git add(支持部分暂存)+ git commit,作者信息取仓库配置 |
| 拉取 / 推送 | git pull --ff-only / git push,结果与冲突信息回到界面 |
| PR / MR | GitHub 走 gh pr view|list|create(创建用 --body-file - 传正文),GitLab 走 glab mr view|list|create |
| 终端 | Windows 用 ConPTY、Unix 用 script 包装成 PTY,交互式程序正常工作 |
七个工作面板
| 面板 | 能力 |
| 文件 | 目录树浏览、文件名与内容搜索、内置编辑器保存;AI 修改过的文件有标记 |
| 更改 | 本会话产生的文件改动清单,逐行 Diff(新增 / 删除 / 修改)与单文件回滚 |
| 检查点 | 任务开始前的文件快照列表,可整体还原工作区到某个检查点 |
| Git | 当前分支与工作区状态、逐文件 Diff、暂存(含部分暂存)并提交 |
| PR | 按 origin 远端自动选 gh(GitHub)或 glab(GitLab):当前分支 PR 状态、开放 PR 列表、创建表单(标题/描述/目标分支/草稿);未安装时给出对应平台安装命令;分支未推送时提前提示 |
| 浏览器 | 内嵌浏览器:地址栏、前进后退、刷新、常用链接(本地 dev 服务、API 文档、GitHub) |
| 终端 | 真实 PTY(Windows 走 ConPTY,Unix 用 script 包装),vim / htop 等交互程序可用;SSH 项目在 PTY 内跑 ssh -tt |
Agent 如何动手
| 工具 | 用途 |
| 文件读写 | 列目录、读文件(支持二进制识别)、写文件、批量替换、移动 / 删除 |
| 命令执行 | 在工作区里跑命令(构建、测试、脚本),输出回传给模型 |
| 终端交互 | 需要交互式程序时用工作面板的终端,或让 Agent 在 PTY 里操作 |
| 代码检索 | 按文件名 / 内容搜索(含语义检索,代码块向量化后独立存储) |
每个有副作用的动作都受权限模式约束(见 Agent 工作台);高风险操作走审批,改动进检查点,随时可回滚。
典型工作流
- 在项目卡片点「在 Code 中打开」,选工作区模式(建议新任务用「新工作树」)。
- 描述任务,权限模式保持「询问」或按需切「自动」。
- 用「更改」面板逐项审阅 Diff,必要时用「检查点」整体还原。
- 满意后在「Git」面板暂存并提交,再到「PR」面板创建 PR(可先开草稿)。
- 合并后工作树会在空闲期被自动清理,分支按配置保留或删除。