# Gaster Code V 0.2.3-gastercode.3

这是一次桌面端扩展能力可见性与认证诊断修复版本。本版本延续 V 0.2.3-gastercode.2 的认证稳定性修复，并新增第三方 Skills / Agents 安装可见性修复。

## 包含的 V 0.2.3-gastercode.2 修复

- G-Master API 登录失效现在会识别 `authentication_failed`、`login_required`、`session_expired`、`provider_token_invalid` 和 `Not logged in · Please run /login`，并在桌面端提示“G-Master API 登录已失效，请重新登录后再试”。
- 历史会话丢失会被归类为历史会话失效，桌面端提示“这个历史会话已无法恢复，请新建会话继续”，避免和服务商认证错误混在一起。
- G-Master refresh 增加单飞锁，避免 `/status`、`/sync-provider`、`/me` 同时刷新同一个 refresh token。
- refresh 失败时会重新读取本地 token 文件；如果另一个请求已经写入了新 token，桌面端会保留新 token，不再无条件删除本地登录态。
- OAuth 重新登录或 managed provider token 更新后，会重启正在使用 `managed-gmaster-api` 的 CLI 子进程，避免旧进程继续使用未注入 provider token 的认证上下文。
- CLI runtime 退出诊断补充 provider、model、workDir、最近认证失败等上下文，降低 code 143 掩盖真实认证错误的概率。
- 桌面端错误卡片新增重新登录和新建会话的恢复入口，并保持普通 SDK error 的原有行为。

## 本版本修复

- 「已安装技能」现在会识别 `~/.claude/commands` 和项目 `.claude/commands` 中的斜杠命令包装器。
- 当斜杠命令包装器引用外部 `SKILL.md` 时，设置页会把对应 Skill 显示为「斜杠命令」来源，并支持打开真实 Skill 目录查看文档和源码文件。
- 如果包装器只是一条普通命令，没有可解析的外部 Skill 目录，也会以命令本身作为可查看条目显示，避免用户误以为安装失败。
- Agents 设置接口在拉取列表时会刷新 Agent 定义缓存。用户通过聊天命令、脚本或安装器新增 `~/.claude/agents/*.md` 后，不需要重启桌面端也能在设置页看到新 Agent。
- 插件管理路径保持原有行为：插件安装、启用、禁用、更新、卸载会清理相关缓存；完全绕过插件管理器直接改磁盘配置时，可继续使用插件页的重新加载入口。

## 验证

- `bun test src/server/__tests__/agents.test.ts src/server/__tests__/skills.test.ts src/server/__tests__/plugins.test.ts`
- `bun run check:server`
- `bun run check:desktop`
- `bun run check:native`
- `bun run check:docs`
- `ALLOW_CLI_CORE_CHANGE=1 bun run quality:pr`

## 安装包

本版本发布工作流使用 `v0.2.3-gastercode.3` tag 构建，并同步到公开 release-only 仓库：

- macOS Apple Silicon：`Gaster-Code_0.2.3-gastercode.3_macos_arm64_dmg.dmg`
- macOS Intel：`Gaster-Code_0.2.3-gastercode.3_macos_x64_dmg.dmg`
- Windows x64：`Gaster-Code_0.2.3-gastercode.3_windows_x64_nsis.exe`
- Linux x64：`Gaster-Code_0.2.3-gastercode.3_linux_x64_deb.deb`
