# Gaster Code v0.1.9

这是一个以桌面端右侧工作区文件管理、文件变更审查与回滚、第三方 Provider 兼容性为主的版本。

相比 `v0.1.8`，这次最大的变化是桌面端会话右侧新增工作区文件面板。用户可以在桌面端里浏览当前项目文件、预览内容、查看本轮和本会话产生的文件变更，并把文件作为上下文加入聊天。这个版本也补强了开始页项目选择、checkpoint 回滚、非 Git 目录 diff、第三方模型 thinking / WebSearch 兼容，以及桌面窗口关闭到后台、窗口位置恢复等体验。

## 主要更新

- 新增桌面端右侧工作区文件面板：会话中可以直接浏览当前项目目录，查看文件树，预览文本文件和本地图片。
- 支持查看会话产生的文件变更：可以在右侧面板里查看新增、修改、删除文件，以及对应 diff；即使工作目录不是 Git 仓库，也能基于会话记录展示变更。
- 开始页选择项目目录后会立即创建草稿会话，让文件管理、变更视图、运行时选择和终端工具栏在首轮提问前就可用。
- 新增当前轮次变更卡片：每轮回复完成后，聊天流里会展示本轮改动，用户可以先审查变更，再决定是否回滚。
- 文件回滚收敛到 checkpoint rewind：当前轮次变更卡片可以触发文件恢复，并且回滚目标按对应用户消息定位，减少多轮会话里回错位置的风险。
- 支持从工作区文件面板把文件或局部内容加入聊天：界面里显示可读的文件 chip，真正发送给 CLI 的内容保持原生 `@文件路径` 引用。
- 历史会话重载时会把转录里的 `@文件路径` 恢复成附件 chip，避免用户消息正文里直接露出很长的绝对路径。
- 新增桌面端 WebSearch 配置：可以在设置页选择自动、Tavily、Brave、Claude 原生或关闭模式，并配置 Tavily / Brave Search API Key。
- WebSearch 增加统一能力解析和 fallback 后端：Claude 模型名优先走 Anthropic 原生 WebSearch，第三方模型或不支持原生 server tool 的代理可以回退到 Tavily / Brave。
- 新增桌面端思考模式开关：新会话可以显式关闭 thinking，适配 DeepSeek、Kimi、GLM 等 Anthropic 兼容端点的非思考模式请求。
- 桌面端关闭主窗口后会继续在托盘后台运行，本地 server 和 adapter sidecar 不会因为普通关闭窗口而被直接停止；托盘菜单支持重新显示窗口或真正退出应用。
- 桌面端会记住主窗口大小、位置和最大化状态，重启后自动恢复，并在外接显示器变化时避免恢复到屏幕外。

## 问题修复

- 修复右侧工作区面板在没有变更文件时默认显示空状态的问题，现在会优先展示文件树，让用户仍然可以浏览项目。
- 修复工作区文件预览边界问题：图片不会被文本大小限制误伤，大文本会返回有上限的预览内容，二进制文件保持明确不可预览状态。
- 修复聊天变更卡片和右侧面板 diff 渲染不一致的问题，统一代码预览表面，并改善暗色主题下的可读性。
- 修复工作区变更和会话 checkpoint 混用导致的脆弱状态：右侧面板继续表示项目工作区状态，聊天里的轮次卡片继续表示会话 checkpoint 状态。
- 修复部分会话里本轮变更卡片丢失的问题：当可见用户消息 ID 和持久化转录 ID 不一致，或缺少 SDK file-history snapshot 时，会回退到稳定的用户消息序号和转录工具调用提取变更。
- 修复多轮会话回滚语义不稳定的问题，补齐 stale current-turn card、目标消息定位和暗色主题 workspace token 的回归覆盖。
- 移除旧的消息 hover rewind 入口，文件回滚统一收敛到当前轮次变更卡片，避免两个相近撤销入口同时存在。
- 修复第三方 Provider 下 WebSearch 可能因为 `web_search_20250305` schema、代理层能力或非 Claude 模型名不兼容而不可用的问题。
- 修复 WebSearch 设置页在中文窄屏或暗色模式下保存按钮被说明文字挤压换行的问题。
- 修复第三方 Anthropic 兼容 Provider 在主会话、side query 和 AI 标题生成中 thinking 参数不一致的问题，减少模型能力不匹配导致的请求失败。
- 修复旧桌面会话在 provider 配置变更后仍携带过期 provider id，导致 CLI 启动失败或会话不可用的问题；现在会在启动前校验并回退到有效配置。
- 修复聊天记录或流式输出里只包含空白字符的 assistant 消息仍渲染成空气泡的问题。
- 修复桌面端启动失败时缺少可见诊断的问题，会在错误信息中带上非敏感的 provider、model 和启动上下文，方便定位用户侧问题。
- 修复 Windows / macOS 桌面端关闭窗口即退出应用的问题，后台任务和本地服务生命周期现在由原生 Tauri 层统一管理。
- 修复桌面窗口重启后丢失尺寸和位置的问题，同时跳过过小或不可见的旧窗口状态。
- 修复 macOS Dock 图标视觉尺寸偏小的问题，并重新生成 Tauri 图标资源，让打包产物中的图标和源文件保持一致。

## 其他说明

- GitHub Issue 模板改为更偏桌面端的问题收集方式，会优先询问操作系统、桌面端版本、安装来源、provider/model/base URL、复现步骤、配置截图和完整日志。
- README 和英文 README 底部新增 GitHub Star History 区块，方便用户查看项目增长趋势并支持项目。
- `.gitignore` 补充 `.codex-logs/`，避免本地 Codex 运行日志进入提交范围。
- WebSearch fallback 目前需要用户自行配置 Tavily 或 Brave Search API Key；未配置 fallback key 时，非 Claude 模型不会强行暴露不可用的原生 WebSearch。
- GitHub Release 正文继续以 `release-notes/v0.1.9.md` 作为来源，发布时无需再手动复制 Markdown。

## 安装说明

### macOS

首次打开如果提示“已损坏”或“无法验证开发者”，请执行：

```bash
xattr -cr /Applications/Gaster\ Code.app
```
