cc-haha/release-notes/v0.5.13.md
2026-06-16 05:36:31 +08:00

55 lines
6.1 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.

# v0.5.13
> 这一版两条主线:**同步上游 NanmiCoder/cc-haha v0.4.2**39 commits 的稳定性 / queue / cache 强化),以及 **Provider runtime 可靠性**(三条 staleness 路径修干净)。同时合并 Solo Council 卡片显示时序修复和 v0.5.12 的两个零散补丁。
## 新功能
### 同步上游 v0.4.2#57
合并 NanmiCoder/cc-haha v0.4.2 主线,相比上一次同步多出 39 commits。重点能力
- **流式 provider 稳定性**#766 一组 4 commits。给整个流加上 cap durationtrickling 的 provider 不会无限挂着trace 里中断的请求显式记录而非幽灵 pendingnon-streaming fallback 在 chat status 显式告知;移除过激的"杀慢流"逻辑。
- **Active-turn prompt 队列**#755 一组 4 commits。streaming 中输入的消息进队列;重连后队列消息不再被 replay 重发guided queued prompts 立即可见i18n 补 `pendingMessageGuide` / `Edit` / `Delete` / `EditInput` 等键。
- **Providers 列表拖拽排序**#753)。后端落 `providerOrder` 字段持久化 + `reorderProviders` API前端拖拽用 `SortableProviderCard` + `dnd-kit`
- **OpenAI prompt cache 语义**#789。proxy 链路把 OpenAI 的 cache 标记正确转换为 Anthropic 的 `cache_control: { type: 'ephemeral' }`,让 OpenAI-compatible provider 也能用上提示缓存优化。
- **H5 access 稳定化**#767 / #764。token、端口、后台会话三者状态收敛关闭桌面后台会话不再丢 token / 端口冲突 / 状态 desync。
- **Auto-dream**#800)。后台 memory consolidation 设置项(默认关);启用后会在足够多 session 变化后定期合并 auto-memory。配套 confirm 弹窗明确告知"会跑后台 model 调用"。
- **Activity 设置增加插件 / 技能用量洞察**plugin and skill usage insights
- **Compact 后立即恢复 context meter**#743+ session 增加 `compactCount` / `streamingResponseChars` 字段UI 能展示 compact 次数与流式响应字节量。
- **Token usage 显示统一**#757。desktop 与 CLI 的 token 计数对齐。
- **Exit plan approvals 预览**#793+ Mermaid 标签在生成预览中正确渲染(#803)。
- **桌面零碎修复**Windows 设置面板 toggle 稳定性(#788 / #791)、文件路径展开(#776、in-app browser 预览菜单(#761、native window dragging 恢复(#770 / #796、touch-H5 交互重构(#780)、修 Windows updater 与 installer flow#801)、隐藏 Windows 子进程 console#802)、`extend local API timeout`#773)、`include more sidebar sessions`#759)、`route typed local html in browser panel``stabilize live trace updates``allow mapped-drive workspaces in bypass mode`
完整变更见 `release-notes/v0.4.2.md`
## 改进
### Provider runtime 可靠性:三条 staleness 路径(#56
修了三条用户感受得到的"配置改了不生效 / 老 session 报错"路径:
- **改 baseUrl / apiKey / apiFormat 不重启**。`SavedProvider.revision` 自增 + `RuntimeOverride.providerRevision` 快照比较:每次 `updateProvider` revision +1下次 `set_runtime_config` 携带的 revision ≠ 运行中会话的快照 → short-circuit 失败 → 强制 CLI restart → 子进程拿到新的 `ANTHROPIC_BASE_URL` / `ANTHROPIC_AUTH_TOKEN` env。
- **重命名 model 后 resume 旧会话报"model 不存在"**。`getRuntimeSettings` 加 stale-modelId guard如果 persisted `runtimeOverride.modelId` 不在 provider 四个槽里main / haiku / sonnet / opus自动 fallback 到 `provider.models.main`,跟既有的 stale-providerId guard 对称。
- **short-circuit 比较抽成 pure helper**。把四元组 + revision 的等值判定抽成 `runtimeOverridesMatch` 纯函数,加 10 个单测把行为锁死,未来再加字段忘记同步比较逻辑会立刻 fail。
## 修复
- **Solo Council 面板时序 bug**#55。agent 通过 `tool_use` 派遣后、`backgroundAgentTasks` store 尚未填充前,卡片错误显示"待命"并收起面板。新增第三层 fallback扫描无对应 `tool_result` 的 pending `Agent` tool_use合成 `displayStatus: 'running'` 行保持面板可见。优先级链:`backgroundAgentTasks (live)` > `background_task messages` > `pending Agent tool_use` > `standby placeholder`
- **WorkspaceService outside-workspace 测试隔离**。CI 上 `rejects until registered access root` 测试因 module-level `registeredRoots` 在跨 test file 间残留而失败:在 describe block 加 `beforeEach(clearFilesystemAccessRootsForTests)` 防御。
- **桌面端默认暗色主题**#53)。新安装用户默认主题从 `white` 改为 `dark`,已有偏好的老用户不受影响。`index.html` prepaint `data-theme` 同步改为 `dark`,消除首帧白闪。
- **插件推荐目录扩展**#54。image-gen / reverse-engineering 这两个 cc-haha-builtin 插件进入 `PLUGIN_CATALOG` 推荐网格;`installCatalogPlugin` 对无 `marketplaceSource` 的内置条目校验 seed 已注册而非静默失败。
## 验证
- 桌面端 `tsc --noEmit` clean合并产物 + 测试修复后)。
- 桌面端测试 1789/1792 通过3 个失败全部是 main pre-existing 的 electron/terminal Windows-only 问题,非本版回归)。
- 服务端 providers 测试 95/95chatStore 131/131settingsStore + WorkspacePanel 65/65。
- v0.4.2 合并 PR#57CI 9/9 全绿change-policy / desktop / desktop-native / docs / server / adapter / coverage / pr-quality-gate / label-and-summarize
## 升级注意
- **provider revision 字段**。`SavedProvider.revision` 是 optional`providers.json` 无此字段视为 0首次 `updateProvider` 时自动 +1 补上 — 零破坏。
- **`messageQueue``queuedUserMessages` 双 queue 共存**。HEAD 自有的 `messageQueue` + 上游的 `queuedUserMessages` 两个字段都保留 — 它们底层语义略有不同(前者是 streaming 中的 FIFO后者是 active-turn prompt queue未来某个版本会收敛但当前不冲突。
- **Solo Council fallback**。纯显示层修复,不影响 agent 调度逻辑。
- **暗色主题默认**。仅影响全新安装;不喜欢可在设置中切回 white / light / system。