mirror of
https://github.com/NanmiCoder/cc-haha
synced 2026-07-27 15:13:37 +08:00
6.1 KiB
6.1 KiB
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 duration,trickling 的 provider 不会无限挂着;trace 里中断的请求显式记录而非幽灵 pending;non-streaming fallback 在 chat status 显式告知;移除过激的"杀慢流"逻辑。
- Active-turn prompt 队列(#755 一组 4 commits)。streaming 中输入的消息进队列;重连后队列消息不再被 replay 重发;guided queued prompts 立即可见;i18n 补
pendingMessageGuide/Edit/Delete/EditInput等键。 - Providers 列表拖拽排序(#753)。后端落
providerOrder字段持久化 +reorderProvidersAPI;前端拖拽用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快照比较:每次updateProviderrevision +1;下次set_runtime_config携带的 revision ≠ 运行中会话的快照 → short-circuit 失败 → 强制 CLI restart → 子进程拿到新的ANTHROPIC_BASE_URL/ANTHROPIC_AUTH_TOKENenv。 - 重命名 model 后 resume 旧会话报"model 不存在"。
getRuntimeSettings加 stale-modelId guard:如果 persistedruntimeOverride.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派遣后、backgroundAgentTasksstore 尚未填充前,卡片错误显示"待命"并收起面板。新增第三层 fallback:扫描无对应tool_result的 pendingAgenttool_use,合成displayStatus: 'running'行保持面板可见。优先级链:backgroundAgentTasks (live)>background_task messages>pending Agent tool_use>standby placeholder。 - WorkspaceService outside-workspace 测试隔离。CI 上
rejects until registered access root测试因 module-levelregisteredRoots在跨 test file 间残留而失败:在 describe block 加beforeEach(clearFilesystemAccessRootsForTests)防御。 - 桌面端默认暗色主题(#53)。新安装用户默认主题从
white改为dark,已有偏好的老用户不受影响。index.htmlprepaintdata-theme同步改为dark,消除首帧白闪。 - 插件推荐目录扩展(#54)。image-gen / reverse-engineering 这两个 cc-haha-builtin 插件进入
PLUGIN_CATALOG推荐网格;installCatalogPlugin对无marketplaceSource的内置条目校验 seed 已注册而非静默失败。
验证
- 桌面端
tsc --noEmitclean(合并产物 + 测试修复后)。 - 桌面端测试 1789/1792 通过(3 个失败全部是 main pre-existing 的 electron/terminal Windows-only 问题,非本版回归)。
- 服务端 providers 测试 95/95;chatStore 131/131;settingsStore + WorkspacePanel 65/65。
- v0.4.2 合并 PR(#57)CI 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。