Herdr 发布史全解:从 CHANGELOG 看 AI Agent 运行时终端 0.1.0 到 0.8.2 的演进与发布工程实践 📅 发布时间:2026/9/6 22:18:05 👁 浏览次数: Herdr 发布史全解从 CHANGELOG 看 AI Agent 运行时终端 0.1.0 到 0.8.2 的演进与发布工程实践【免费下载链接】herdrthe runtime your coding agents live on项目地址: https://gitcode.com/GitHub_Trending/her/herdr本文以仓库根目录的 CHANGELOG.md 为主体完整梳理 Herdr一个为编码 Agent 打造的终端工作区管理器从 0.1.02026-03-27到 0.8.22026-08-19的全部发布脉络每个里程碑版本引入了什么能力、哪些是破坏性变更、客户端/服务端协议如何升级并结合 scripts/changelog.py、justfile、website/latest.json 等仓库源码讲清楚这份变更日志是如何被工具链驱动地生成、校验并分发给安装脚本与自更新流程的。读完后你既能把它当作一份“升级前必读”的版本导航也能理解 Herdr 的发布工程体系。一、这份 CHANGELOG 长什么样、怎么读CHANGELOG.md 全文约 1100 行从顶部到尾部依次覆盖一个空的## Unreleased段落以及从 0.8.2 一直回溯到 0.1.0 的全部版本段落。它的结构遵循几个稳定约定版本段落标题## [x.y.z] - YYYY-MM-DD方括号版本名 发布日期如## [0.8.2] - 2026-08-19。小节分类每个版本下按### Added/### Changed/### Fixed/### Breaking Changes/### Documentation分组破坏性变更单独成节并在部分版本中标注 “Breaking Changes Please Read” 提醒读者先读。引用与致谢条目普遍带 issue/PR 编号如(#2730, #2743)以及贡献者致谢如thanks dhh方便回溯原始讨论。热修复版本0.6.10、0.6.8、0.6.4 是纯 hotfix 发布正文明确写有 “This is a hotfix release for vXSee the vX notes for the full feature release”指明以父版本为功能基线。版本号与仓库现状一致Cargo.toml 中version 0.8.2与 CHANGELOG 最新段落、website/latest.json 的version: 0.8.2三方对齐。对用户而言升级前最需要通读的是每个版本的Breaking Changes小节和协议版本升级说明详见第三节对维护者而言这份文件本身是发布流程的输入见第四节。二、里程碑发布五个改变产品形态的版本CHANGELOG 记录了 40 余个版本段落其中以下节点是架构层面的转折本文按版本完整继承其 Added / Changed / Breaking 的核心内容。0.1.x–0.3.x终端复用器雏形与本地 Socket API0.1.02026-03-27Initial release确立项目起点。0.1.12026-03-28新增 Agent 状态变化音效支持[ui.sound.agents]按 Agent 单独静音/开启Droid 默认静音改进 Linux/macOS 前台作业检测能识别node之类通用运行时包装下的 Codex。0.1.22026-03-28首次运行引导流程音效与 toast 偏好、navigate 模式全量可配置键位、配置校验与启动诊断。Breaking默认前缀键从ctrls改为ctrlb避开终端流控冲突工作区身份改由根 pane 所在仓库/目录派生。0.2.02026-03-30引入本地 Unix socket API——工作区/pane 管理、pane 读取、文本与按键输入、pane 拆分、输出等待socket 上的事件订阅工作区/pane 生命周期、输出匹配、Agent 状态变化基于 socket API 的 CLI 包装herdr workspace ...、herdr pane ...、herdr wait ...设置弹窗、9 套内置主题catppuccin、tokyo night、dracula、nord、gruvbox、one dark、solarized、kanagawa、rosé pine默认阻止嵌套启动需advanced.allow_nested true显式打开。0.3.02026-04-03工作区内的标签页tabs一个工作区可承载多个 tab 上下文socket API 与 CLI 提供一等 tab 支持herdr tab ...tab 形如1:2的 id内置 pi、Claude Code、Codex、OpenCode 的直接集成并有“权威 hook 驱动状态上报”使受支持 Agent 不必只靠屏幕启发式更新后发布说明界面终端模式下可选的直接 pane 聚焦键位如alth。0.4.0终端引擎切换到 Ghostty这是渲染架构的分水岭2026-04-05Herdr 的 pane 运行时改用Ghostty 系终端引擎旧 vt100 pane 后端被移除Ghostty 成为唯一终端后端工作区可在侧边栏拖拽排序通知音支持自定义 mp3 覆盖完成音与提醒音可分开配置工作区 API id 变为稳定值socket 与 CLI 自动化更可预测macOS 构建静态链接 vendoredlibghostty-vt保持单二进制安装/更新流程。随后 0.4.1 修复 Linux 发布二进制启动崩溃0.4.2 把 pane scrollback 改为按字节配置advanced.scrollback_limit_bytes对齐 Ghostty 语义设0禁用0.4.4 起 IME 中文输入可用、本地 socket 限制为当前用户并可干净退出。0.5.0持久化 server/client 会话成为默认产品行为0.5.02026-04-21是一次“Please Read”级别的破坏性变更定义了 Herdr 今天的产品形态运行herdr默认启动或重连一个后台会话服务器而不是旧的单进程 UI退出 UI 是 detach会话继续存活需herdr server stop显式停止旧单体行为保留为逃生舱herdr --no-session多客户端 attach 同一共享会话会话完整重启后可恢复工作区、tab、pane 与进程状态持久化模式下应用内“退出”动作默认只 detach 当前客户端。0.5.x 系列在此之上快速补齐外围能力0.5.2运行中的应用/服务器可从全局菜单或herdr server reload-config热加载配置0.5.3命名持久会话多项目环境互不干扰、herdr status/status server/status client检查协议兼容性与是否需要重启0.5.5移动端布局窄终端单栏化可 SSH 到机器后从手机运行 Herdr0.5.6herdr --remote ssh-target——把 Herdr 作为远端服务器的瘦客户端SSH 内自动引导远端二进制、启动服务器并回流高效终端视图ui.toast.delivery terminal终端投递桌面通知pane 默认通告TERMxterm-256color与COLORTERMtruecolor0.5.9实验性 Kitty graphicsexperimental.kitty_graphics、ui.toast.delivery system、多套主题亮色变体、ui.mouse_capture falseBreakingadvanced.allow_nested迁至experimental.allow_nested协议 “now version 5”0.5.11terminal内置主题直接用宿主终端 ANSI 调色板、Hermes Agent 进程检测 插件集成、ui.sidebar_min_width/ui.sidebar_max_widthBreaking协议 “now version 7”并要求停止重启 0.5.10 之前的旧服务器。0.6.x原生会话恢复、Git worktree 与远端运维工具箱0.6.02026-05-20键位 v2显式prefix...语法、每动作数组绑定、可配置前缀模式行为、herdr config reset-keys、设置与首启引导中的集成安装页、terminal.default_shell未设时回退$SHELL再/bin/sh、Kiro 原生检测。Breaking移除keys.quit改用keys.detach默认prefixq键位必须用显式触发语法prefixc是前缀模式ctrlaltc是直接组合裸可打印字符直接绑定会被诊断拒绝协议升到 version 8要求先停掉 0.5.12 服务器再 attach。0.6.1CJK IME 光标实验项experimental.reveal_hidden_cursor_for_cjk_ime、cjk_ime_agents白名单、cjk_ime_cursor_shape、侧边栏 Git worktree 分组与原生 worktree 创建/打开/清理[worktrees].directory、keys.new_worktree等、ui.mouse_scroll_lines默认 3、--remote-keybindings local|server协议 version 9。0.6.2Nix flake 支持、terminal.new_cwd新 pane/tab/workspace 跟随源目录、$HOME、Herdr 进程目录或固定路径、herdr integration install omp、Git worktree 的 CLI 与 socket APIherdr worktree list/create/open/remove协议 version 10。0.6.3本系列功能最密集的一版——[session] resume_agents_on_restore原生 Agent 会话恢复支持的 Pi、Claude Code、Codex、OpenCode、Hermes 在服务器重启后恢复原对话[experimental] pane_history true跨重启 pane 屏幕历史prefixg会话导航器可搜索的工作区/tab/pane 树、Agent 状态过滤、鼠标切换可配置 navigate 模式移动键位last_pane键位tmux 式回跳默认未绑定直连 Agent 终端的 scrollback协议 version 11ui.redraw_on_focus_gained、ui.mobile_width_thresholdherdr update/herdr --remote的--handoff实时交接pane.report_metadata允许用户 hook 自定义 pane 标题、Agent 名与状态标签而不接管集成生命周期Ctrl-click 打开 pane 内 URLQoder CLI 检测与herdr integration install qodercli。0.6.7preview 更新通道herdr channel set preview、[update].channelherdr --remote的 SSH keepalive 兜底未配置时注入ServerAliveInterval/ServerAliveCountMax[remote].manage_ssh_config false可关闭ui.right_click_passthrough_modifierKilo Code 自动检测herdr integration install copilot。Changed原生 Agent 会话恢复对受支持 pane默认开启[session] resume_agents_on_restore false关闭Claude Code、Codex、Copilot、Droid、Kimi、Qoder 等集成只上报会话身份状态交给 Herdr 屏幕检测。0.6.8 / 0.6.10两个 hotfix前者修复复杂 Unicode/emoji/分解重音符导致的服务端崩溃可能丢失运行中 pane 进程后者修复 Pi/OpenCode 生命周期集成触发的检测重置循环日志洪泛、高 CPU、UI 卡死。0.7.x插件系统 v1、稳定短 ID 与 Agent CLI 门面0.7.02026-06-15本地插件 v1plugin.link/list/unlink/enable/disable、manifest 声明的动作、事件 hook、受管插件 pane、链接处理器、命令日志、键位集成herdr plugin install owner/repo[/subdir...]、plugin uninstall、plugin.list源元数据、离线注册表回退、--json脚本输出herdr plugin config-dir id与自动创建插件配置/状态目录pane.move与herdr pane move把运行中的 pane 迁移到其它 tab、新 tab 或新 workspace不重启其终端进程Devin CLI 自动检测 herdr integration install devindevin --resume id恢复插件宿主 APIpane.current、pane.process_info、client.window_title.set/clear、layout.export/apply、插件 pane 放置与跨pane.move的所有权Breaking协议升到version 14为pane.move兼容公共 workspace/tab/pane id 改为w1、w1:t1、w1:p1这类短稳定句柄已关闭的 tab/pane id 不再重定向到后来的资源pane.send_keys等开始接受ctrlh这类 Herdr 键位组合字符串。0.7.1[update].version_check/[update].manifest_check可分别关闭后台版本与 Agent 检测 manifest 检查HERDR_AGENTagentLinux 前台进程提示VM、Bubblewrap、fence等包装下/proc看不到真实命令时可用ui.pane_borders/ui.pane_gaps用户键位在与内置默认冲突时顶替默认worktree 创建对已存在分支改为 checkout 而非失败worktree 的长 Git 工作延迟到 app runtime 驱动。0.7.2会话级弹层浮动终端 panetype popup自定义命令键位与插件 panecell/百分比两种尺寸ui.copy_on_select可配置展开态 Space/Agent 行布局内置 display token、按 Agent 覆盖、自定义 metadata token、经 CLI/socket API 上报独立row_gapcopy 模式/?大小写智能搜索、n/N重复、跨行w/b/e词移动Maki Agent 支持herdr completion shellbash、elvish、fish、PowerShell、zshsession.snapshot一次 socket 响应引导客户端运行时状态herdr api schema--json输出完整 JSON Schema、--output PATH落盘layout.updated事件pane 滚动度量与pane.scroll_changed订阅herdr terminal session observe/herdr terminal session control供桥接进程消费的只读 ANSI 流与含输入/缩放/接管权限的控制流ui.hide_tab_bar_when_single_tab日文与简中网站文档。0.7.3 / 0.7.4小版本修复导航器搜索态、Windows 前台进程环快照内存增长、重绘光标闪烁与 Maki/侧边栏隐藏模式ui.sidebar_collapsed_mode hidden等增量。0.7.52026-07-21Breaking已安装与链接的插件含启用状态改为全局属于当前用户不再按 Herdr 会话隔离0.7.3 时期只装在命名会话里的插件必须重新安装或链接新增live-agent CLI 门面具名agent start指向已有 pane、不改拓扑、校验 Agent 类型与严格名称、--后接受原生参数、原子agent prompt、逻辑send-keys、服务器所有的agent waitagent.view.set/clear声明式 Agent 视图查询过滤/排序视图定义侧边栏、移动端、鼠标与 Agent 键位的导航顺序一次性插件[[startup]]hook服务器启动与 live handoff 后恢复插件自有状态展开态 Space/Agent 行按 token 前景色/加粗/变暗样式ui.sidebar_start_collapsed、ui.prompt_new_workspace_nameAgent 命令只接受唯一 live Agent 名或当前承载它的 pane id旧顶层wait被agent wait/pane wait-output取代agent send被agent send-keys取代CLI 在客户端/服务器协议不一致时返回机器可读的protocol_mismatch错误。0.8.xWindows 正式可用、agent skill 与远端成熟0.8.02026-08-03herdr --skill打印随运行中二进制分发的 Agent 技能对应仓库内 skills/herdr/SKILL.mdui.pane_scrollbars false隐藏 pane 滚动条并回收其列ui.tab_bar_position bottom键位帮助面板/BackspaceCtrlU实时过滤Grok CLI 与 Antigravity CLI 的会话上报和原生恢复grok --resume id、agy --conversation idworkspace.move_block与workspace.reordered事件原子 worktree 组重排简体中文 READMEChanged实验项退出 Settings TUI、仅配置文件可用Agent 状态指示改为跨视图统一的静态标记消除工作期间的连续 spinner 渲染文档站区分 stable/preview/不可变版本快照仓库与安装链接迁移到herdrdev/herdr许可证从 AGPL-3.0-or-later 改为 Apache-2.0当前 Cargo.toml 中license Apache-2.0可印证。0.8.22026-08-19当前最新稳定版这是 CHANGELOG 最新的完整段落要点包括AddedCLI help 指向 Herdr 纯文本指南、文档索引与内置控制技能Qwen Code 状态检测idle/working/需确认与可选原生会话恢复ui.window_title把外层终端窗口标题与会话保持同步桌面 tab 栏可配置右对齐状态项zoom 状态、主机名、日期时间、字面文本、异步刷新的命令输出可选keys.move_tab_previous/keys.move_tab_next原地移动 tab、两端回绕可选keys.resize_pane_left/down/up/right单次按键缩放 paneWindows 客户端可用herdr --remoteattach 到 Linux/macOS 上的 Herdr 服务器Cursor Agent CLI、MastraCode、Hermes Agent、Grok CLI 集成在 Windows 原生安装运行pane 可将普通右键手势路由给开启鼠标上报的应用pane 菜单、herdr pane input、pane.input.set或pane split --right-click paneui.pane_outer_borders独立控制外缘边框theme.custom.sidebar_bgui.status_indicators symbols用不同静态形状区分五种 Agent 状态theme.custom.selection_bgcopy 模式B/E/W大词移动插件市场现在可在仓库根与子目录发现 manifest、按仓库分组多插件并公布版本与默认分支精确 commitChangedWindows 支持经稳定版正式发布GA默认走 stable 更新通道既有 preview 安装保持 preview 直到显式切换无客户端 attach 时 headless 服务器默认虚拟终端从 80×24 改为可配置 120×40桌面 tab 标签居中实验性 pane graphics 支持有界命名图层、受审计本地终端上的全 RGBA 主图层直传文件帧、自有 BGRA 回退、像素级鼠标输入与仅位置的重放大放Fixed节选代表性条目Unix CLI 下游管道关闭时安静退出而非 panic exit 101多 pane 会话避免冗余隐藏 pane 唤醒与全量终端状态格式化消除高频率背景输出下的 CPU 回退Windows 识别Ctrl1Ctrl9键位PowerShell pane 的进程上报 cwd 与 shell 逻辑位置同步agent prompt对已处于审批/提问对话框的 Agent 直接返回agent_blocked而不发文本agent start等待新 pane shell 与首跑 Agent 提示就绪稳定直装、自更新与远端 helper 下载现在要求并校验每个发布资产的 SHA-256pane current/pane get/pane layout --current解析调用方 pane 而非别的客户端的聚焦 paneWindows 安装包以原子目录切换激活新版本herdr config check报告未知内置主题名pane send-keys与agent send-keys保留shifttab的 Shift可编程切换 Agent 权限模式。三、客户端/服务端协议变更点与当前值Changelog 中每次协议不兼容变更都会在 Breaking Changes 或正文中给出版本号并要求“停掉并重启旧版本服务器后再 attach”。按原文如实摘录的各版本声明版本发布日期协议说明原文口径0.5.62026-05-09“The client/server protocol is now version 9”0.5.92026-05-15“The client/server protocol is now version 5”0.5.112026-05-19“The client/server protocol is now version 7”0.6.02026-05-20“The client/server protocol is now version 8”0.6.22026-05-23Git worktree CLI 支持protocol version 100.6.32026-05-27直连终端 scrollback 支持protocol is now version 110.7.02026-06-15“Bumped … to 14 forpane.movecompatibility”注意个别条目间数字并不单调递增这属于历史记法的口径问题本文不推断其内在关系运行时可用herdr status查看本地客户端与运行中服务器的协议兼容性。结合源码可以补上“当前值”src/protocol/wire.rs 定义了pub const PROTOCOL_VERSION: u32 21;并规定MAX_FRAME_SIZE为 2 MB超大长度前缀会被拒绝以防 DoS、Kitty graphics 开启时服务到客户端帧上限 32 MB、剪贴板图片远端粘贴负载上限 16 MB。而 website/latest.json 中 0.8.2 的元数据记录protocol: 20。从源码结构看可以推断 0.8.2 是以协议 20 发布的当前工作区的协议号 21 对应尚未发布的改动——这与 CHANGELOG 顶部空的## Unreleased段落相吻合。四、发布工程CHANGELOG 如何被工具链驱动Changelog 不只是给人看的文本它是 Herdr 发布流水线的机器可读输入这一点在仓库中有完整的源码与测试证据。4.1 scripts/changelog.pyprepare 与 extractscripts/changelog.py 提供五个子命令preparecmd_prepare把## Unreleased段落的正文整体迁移为新的## [x.y.z] - YYYY-MM-DD段落scripts/changelog.py#L102-L130。它带三重防护目标版本已存在于 changelog 中会报错、缺少 Unreleased 段会报错、Unreleased 为空会报错标题归一化会剥离v前缀与方括号normalize_version。extractcmd_extract按版本标题精确抽取该版本的正文scripts/changelog.py#L94-L99供发布说明与校验使用。sync-latest-json从已发布的 GitHub Release 拉取 payloadgh release view vver --json tagName,isDraft,isPrerelease,body,assets校验 tag 名匹配、非 draft、非 prerelease、release notes 非空、五个资产齐全且各带sha256:摘要manifest_from_release_payloadscripts/changelog.py#L346-L403然后重建 website/latest.json顶层含version、protocol默认从 src/protocol/wire.rs 读取PROTOCOL_VERSION、notes即 changelog 提取出的正文、assetslinux-x86_64/aarch64、macos-x86_64/aarch64、windows-x86_64 五个 target 的下载 URL与逐 target 的sha256并把历史版本折叠进releases归档0.8.2、0.8.0 的 protocol 分别为 20、19 即来自这里可选把 docs/next/product-announcement.json 中的产品公告并入后清空。validate-product-announcement校验产品公告 JSON 仅含id/title/body三个非空字符串字段且 id 符合小写命名规则。verify-release-state四重对账——GitHub Release、本地 website/latest.json、线上 live manifest、以及资产 URL 可达性必须全部一致cmd_verify_release_statescripts/changelog.py#L715-L745。其中infer_protocol_from_notesscripts/changelog.py#L169-L173用正则protocol(?: is now)? version (\d)从 changelog 正文里推断协议号——这解释了为什么 changelog 条目里 “protocol is now version N” 这种措辞要写得精确发布工具真的会解析它。4.2 justfilerelease-prepare 与 release-publish 两段式发布justfile 把发布拆成“准备”与“发布”两个可审查的步骤just release-prepare versionjustfile#L147-L172校验版本号形如0.6.6无v前缀、工作区干净、远端无同名 tag然后依次执行pre-release-check文档终稿检查 渲染缩放基准 发布冒烟、python3 scripts/changelog.py prepare --version ver、cp CHANGELOG.md docs/next/CHANGELOG.md、用 sed 更新 Cargo.toml 的version并cargo update -p herdr --offline、跑完整just check最后以release: vver提交。just release-publish versionjustfile#L174-L214要求 master 分支、干净工作树、Cargo.toml 版本一致再用changelog.py extract抽一次该版本正文做检查确认 origin/master 是本地祖先后推送、打 annotated tagvver并推送交由 GitHub Actions 构建二进制并更新website/latest.json。just release version是二者的组合调用。4.3 终稿检查与测试release-docs-checkjustfile#L99-L136硬性要求根目录 CHANGELOG.md 与 docs/next/CHANGELOG.mddiff完全一致“finalize release notes before releasing”并检查日文ja与简中zh-cn文档翻译齐备——这保证了文档站与 changelog 同步。scripts/test_changelog.py 用 unittest 覆盖prepare_releaseUnreleased 迁移、方括号标题归一化、extract_section_body只返回目标版本正文、build_latest_jsonnotes 修剪、协议号读取自 wire.rs、资产与 SHA-256 落位等关键函数并随 justfile 的test/checkrecipe 一起运行。版本化文档快照由 docs/versions/manifest.json 管理current: 0.8.20.8.2/0.8.0 指向docs/next/website/src/content/docs可变的 next 文档0.7.5 及更早版本固定在docs/versions/ver/website/...的不可变快照目录0.5.11 起每版都有对应目录与 0.8.0 段落中“Public documentation now separates stable, preview, and immutable versioned release snapshots”相互印证。五、面向用户的实践建议升级前在 CHANGELOG.md 中自当前版本向下通读目标版本间的Breaking Changes重点确认三类事项——协议升级需先herdr server stop并重启服务器再 attach、键位语法或配置键迁移如advanced.allow_nested→experimental.allow_nested、keys.quit→keys.detach、以及插件/工作区所有权等语义变化如 0.7.5 插件改为用户级全局。诊断兼容性升级后用herdr status查看客户端与服务器协议匹配情况CLI 在不匹配时会返回机器可读的protocol_mismatch0.7.5 起在服务器未运行时报server_not_running0.8.0 起而非裸 I/O 错误。hotfix 版本0.6.4、0.6.8、0.6.10 这类段落正文只有一两句“hotfix for vX”的说明功能面看父版本即可。发布协作参与 Herdr 开发时用户可见行为变化应先进## Unreleased段落发布时由just release-prepare自动转正不要手工改动已发布版本段落changelog 措辞需保持可被scripts/changelog.py解析例如协议版本号句式的稳定性。延伸阅读配置项细节见文档站 docs/next/website/src/content/docs/configuration.mdx 与 config-reference.json 对应的配置参考数据socket API 语义见 docs/next/api/herdr-api.schema.json 与herdr api schema命令Agent 侧的控制技能见 skills/herdr/SKILL.md。六、小结CHANGELOG.md 以约 1100 行的体量完整记录了 Herdr 在约五个月内从“终端复用器”0.1.0 的 socket API 与键位系统到“持久化多客户端 Agent 运行时”0.5.0 的 server/client 模型、0.6.3 的原生会话恢复、0.7.5 的 agent CLI 门面、0.8.2 的 Windows GA 与跨平台远端 attach的全部演进。它与 scripts/changelog.py 的 prepare/extract/sync 工具、justfile 的两段式发布、website/latest.json 的带 SHA-256 与协议号的发布清单、以及 docs/versions/manifest.json 的不可变文档快照共同构成了一套“changelog 即发布工件”的工程实践变更日志既是用户的升级手册也是安装脚本、自更新与发布校验的可信输入源。【免费下载链接】herdrthe runtime your coding agents live on项目地址: https://gitcode.com/GitHub_Trending/her/herdr创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考