程序员阿江(Relakkes) 55d4c80823 Center v0.2.8 notes on /goal and Agent readability
The release boundary was already prepared, but recent desktop Agent display fixes landed after it and /goal needed to be described as a new user-facing feature rather than a restored hidden workflow. Update the release body before tagging so GitHub Release content matches the shipped surface.

Constraint: release workflow reads release-notes/v0.2.8.md from the tagged commit

Rejected: Leave /goal as recovery wording | users never saw the hidden implementation as a public feature

Confidence: high

Scope-risk: narrow

Tested: git diff --check -- release-notes/v0.2.8.md

Tested: bun run scripts/release.ts 0.2.8 --dry

Tested: cd desktop && bun run test -- run src/components/chat/MessageList.test.tsx -t agent

Tested: cd desktop && bun run build

Not-tested: Full live release gate in this turn
2026-05-19 04:22:09 +08:00

77 lines
8.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Claude Code Haha v0.2.8
这是一个围绕 **/goal 目标管理新功能、Portable / Windows 桌面体验、运行时环境一致性、会话恢复和聊天交互稳定性** 的版本。
相比 `v0.2.7`,本次最重要的变化是正式新增 `/goal` 目标管理能力:用户可以在 CLI、桌面端或 WebUI 中创建目标,运行中的目标会在桌面端保持可见,完成结果会进入对话历史并在刷新或恢复会话后继续保留。除此之外,本次也把一批此前散落在 worktree 或远端 main 里的修复正式收拢到主线Windows 终端和 portable storage 变得可配置、可理解;桌面从 Finder / Dock 启动时能获得更接近真实终端的环境会话、worktree、侧边栏恢复更可靠同时补齐了自定义 slash command、未发送草稿、AskUserQuestion、多 agent 进度与结果展示、批量关闭运行中 tab、飞书引导和 provider 模型映射等日常使用问题。
## Highlight
- **新增 /goal 目标管理**`/goal` 现在作为正式功能提供目标创建、运行中目标展示和完成结果留痕;完成态通过 Stop hook 持久化到 transcript桌面端把运行中的 goal 放在紧凑 header已完成 goal 回到聊天历史里展示。
- **Portable storage 可视化配置**Settings 现在会说明当前配置目录来源,支持选择 portable data folder并在需要时引导受控重启让用户不用依赖环境变量也能理解和切换数据目录。
- **Windows 终端与 sidecar 更可靠**Windows 用户可以配置内置终端启动 shell / Bash 路径system fallback、portable Bash path 和显式 startup shell 的优先级更清晰,并恢复了 Windows x64 sidecar 兼容性修复。
- **桌面子进程环境对齐终端**桌面会话、MCP stdio 和 scheduled task 会捕获用户 login + interactive shell 环境,减少 Finder / Dock 启动时找不到 `npx`、Homebrew、nvm 或自定义 PATH 的问题。
- **会话恢复和工作流状态更稳**legacy Windows workdir、stale worktree、macOS `/var` alias、侧边栏项目恢复和后台任务状态都补上了更明确的恢复路径。
- **聊天输入与 Agent 展示更干净**:自定义 slash command 不再被 live update 覆盖;未发送草稿跨标签保留;多问题 AskUserQuestion 不串答案选区添加至对话更贴近真实选区Agent 背景进度回到 Agent 卡片内展示,完成结果优先展示可读报告,不再暴露原始 transport JSON。
- **集成和配置入口更友好**飞书未配置状态直接展示创建入口和必要步骤provider 空模型槽会在 UI 和服务端统一归一化,避免空 `ANTHROPIC_DEFAULT_*` 进入运行时。
## 主要更新
- Settings 新增更清晰的 storage / portable mode 区域,展示 active config directory 来源,并支持在 Tauri 桌面端选择 portable data folder。
- Tauri 原生层补齐 app mode / portable path / terminal config 的读写与重启准备逻辑,避免配置目录切换后状态不透明。
- Windows 终端设置支持自定义 Bash path 和桌面 terminal startup shell并在无效路径保存时给出拦截。
- Windows x64 sidecar 构建恢复低指令集兼容路径,减少低配 Windows 机器启动失败风险。
- 桌面子进程启动时会合并用户 shell 环境,覆盖桌面 CLI 会话、scheduled task、MCP stdio 和 MCP preflight。
- 桌面更新检查支持系统代理和手动代理设置,且只作用于 app updater不和 provider / model 代理混用。
- 新增 `/goal` 目标管理入口,支持创建目标、跟踪当前目标状态,并把完成结果作为对话历史的一部分保留下来。
- 桌面 `/goal` UI 将运行中的目标显示在紧凑 header strip完成目标进入 conversation flow避免目标状态占用过多聊天空间。
- `/goal` 完成态通过 Stop hook 和 local command transcript 持久化CLI、headless、桌面历史和 WebUI 能看到同一个完成结果。
- 新增本地 Web UI 启动脚本,自动避开被占用端口,并把实际 backend URL 传给 Vite 前端。
- Agent / subagent 结果展示会保留终端侧 Markdown 报告没有报告时structured fallback 和 text-wrapped JSON 也会格式化成可读结果。
- 飞书设置未配置状态加入 OpenClaw 创建入口和两步配置提示,减少首次绑定卡住的问题。
## 问题修复
- 修复 legacy Windows session workdir、stale worktree 和 macOS `/private/var` alias 导致项目或会话恢复不稳定的问题。
- 修复侧边栏项目移除后会话未删除但项目又无法重新显示的问题。
- 修复自定义 `.claude/commands` slash command 在 CLI live update 后从桌面命令列表消失的问题。
- 修复桌面未发送 prompt 在切到 Settings、Terminal 或其他标签页后丢失的问题。
- 修复 AskUserQuestion 多问题场景下,自定义输入和选项状态互相覆盖的问题。
- 修复“添加至对话”浮层按鼠标位置而不是真实选区定位,导致遮挡选中文本或残留多个浮层的问题。
- 修复 assistant turn 已完成但后台 bash / task 仍在运行时,桌面状态把后台工作隐藏的问题。
- 修复 `/goal` 完成结果在刷新或恢复会话后不可见,以及运行中 / 已完成 goal 在桌面 UI 中重复占位的问题。
- 修复 worktree startup 的一次性状态文案泄漏到后续 Thinking / execution bubble 的问题。
- 修复 Agent tool 调用期间 local_agent / remote_agent 后台事件被渲染成独立 transcript 卡片,导致重复展示和内部类型外露的问题。
- 修复 Agent 完成报告被 raw tool_result 覆盖,以及 structured fallback / text-wrapped JSON 在预览和结果弹窗里显示成原始 JSON 的问题。
- 修复 Agent 分组结果标签格式化在严格 TypeScript 构建下的类型安全问题。
- 修复批量关闭 tab 时绕过运行中会话确认,可能静默放弃正在运行任务的问题。
- 修复通知插件 listener cleanup 丢失 `this` 上下文导致浏览器 shell 清理时报 unhandled rejection 的问题。
- 修复飞书 adapter 文件路径越界访问风险,并在解绑 / 删除会话时保持 adapter session mapping 清理。
- 修复 provider 主模型可用但 haiku / sonnet / opus 留空时,空模型槽仍进入运行时环境的问题。
- 修复 adapter coverage 中 WsBridge 测试偶发先发消息、后观察连接的时序问题。
## 验证
- 相关提交已新增和更新 portable storage、Settings、terminal shell、update proxy、sidecar build、Tauri native 和 Cargo lock 相关测试。
- 相关提交已新增和更新 `/goal` state、Stop hook、headless 命令、CLI transcript、desktop ActiveSession 和 WebSocket memory event 相关测试。
- 相关提交已新增和更新 shell environment、MCP preflight、scheduled task、conversation service、provider service 和 adapter coverage 相关测试。
- 相关提交已新增和更新 session / worktree 恢复、sidebar recovery、slash commands、AskUserQuestion、ChatInput、MessageList、TabBar、Agent progress、Agent result formatting、desktop notification、Feishu settings 等回归测试。
- 多个功能分支分别跑过 `bun run check:desktop``bun run check:server``bun run check:native``bun run check:coverage``bun run verify`、adapter coverage以及真实 `/tmp` `/goal` CLI run、WebUI screenshot verification、selection popover、portable storage、Feishu setup、本地 Web UI 启动脚本的定向验证。
- 仍建议在正式发布前补充一次真实 Windows packaged app smoke、真实 Feishu 开发者账号流程,以及至少一次安装包级桌面聊天 / 设置 / 重启验收。
## 其他说明
- GitHub Release 正文继续以 `release-notes/v0.2.8.md` 作为来源,发布时无需手动复制 Markdown。
- 本版本包含 storage / portable mode 和终端环境相关变化,升级后如遇到启动路径或配置目录异常,请优先保留诊断信息和当前 config directory 来源。
- `/goal` 是本版本面向用户新增的重点能力发布前需要优先做一轮真实桌面会话、CLI 使用和 transcript 恢复验收。
- Feishu 引导只是降低首次配置门槛,真实机器人创建、权限和菜单配置仍以飞书开发者控制台与项目文档为准。
## 安装说明
### macOS
首次打开如果提示"已损坏"或"无法验证开发者",请执行:
```bash
xattr -cr /Applications/Claude\ Code\ Haha.app
```