Code 会话

Code 会话是「能动手」的部分:Agent 在你的仓库里读文件、改代码、跑命令、提交、开 PR,改动可逐行审阅与回滚。

项目

项说明
类型本地目录或 SSH 远程仓库(user@host:port + 路径)
组织分组管理;卡片上可「在 Code 中打开」「生成 Wiki」「复制路径」
凭据SSH 密码用 DataProtection 加密存储

工作区:当前分支 or 独立工作树

模式行为
当前分支直接在项目目录工作;在会话创建时选的分支会立即检出
新工作树用 git worktree 创建独立目录与分支,主工作区不受影响;默认在仓库父目录的 .hetu-worktrees/<仓库名>/<工作树名>,名字由首条消息内容生成
工作树根目录可在 设置 → 工作区 修改(绝对路径,不能位于仓库内部)。已完成的工作树按「改动已合并 + 工作区干净 + 空闲超过阈值」自动清理,可配置间隔(1 / 6 / 12 / 24 小时)、空闲时长与是否连分支一起删。
项目 本地 / SSH 工作区:当前分支 直接在项目目录工作 工作区:新工作树 .hetu-worktrees/<仓库>/<工作树> Agent 读 / 写 / 命令 / 检索 更改面板 逐行 Diff 与回滚 检查点 任务前快照,可整体还原 Git 面板 暂存(含部分)并提交 PR 面板 gh / glab:查看与创建 自动清理 已合并 + 干净 + 空闲超阈值
从选工作区到合并清理:Agent 的每次改动都能在「更改」里逐行看、在「检查点」整体回滚,提交与 PR 走 Git / PR 面板。

分支与 Git 同步

  • 分支选择器同时列出本地与远程分支;选远程引用会创建对应的本地跟踪分支。
  • 会话开始后工作区与分支固定(避免中途换环境导致改动错位),标题旁常驻工作区 / 分支徽标。
  • 标题旁一个同步按钮,按状态自动决定拉取、推送或刷新,结果显示在提示气泡里。

目录布局

路径内容
<仓库>/主工作区,会话不会直接改这里(选「当前分支」模式时才会)
<仓库父目录>/.hetu-worktrees/<仓库名>/<工作树名>/会话的独立工作树(可在设置里改根目录)
<数据目录>/hetu.dbSQLite 数据库(会话、消息、检查点元数据、代码块向量)
<数据目录>/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 / MRGitHub 走 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 工作台);高风险操作走审批,改动进检查点,随时可回滚。

典型工作流

  1. 在项目卡片点「在 Code 中打开」,选工作区模式(建议新任务用「新工作树」)。
  2. 描述任务,权限模式保持「询问」或按需切「自动」。
  3. 用「更改」面板逐项审阅 Diff,必要时用「检查点」整体还原。
  4. 满意后在「Git」面板暂存并提交,再到「PR」面板创建 PR(可先开草稿)。
  5. 合并后工作树会在空闲期被自动清理,分支按配置保留或删除。