cc-haha/release-notes/v0.5.21.md
2026-06-19 15:48:02 +08:00

4.4 KiB
Raw Blame History

v0.5.21

合并上游 NanmiCoder/cc-haha v0.4.3:吃到 mid-stream retry / 1M provider context / subagent 流式输出三处 bug 修复,融合 Cmd+K 全局会话搜索、模型 1M context 复选框、WorkspacePanel Navigator 切换三处新 UI保留 cc-haha 这边 #71-#79 的 skills / project rules / agent-limiter / chat 重试去噪。

修复(来自上游)

  • mid-stream 流式重试withRetry 现在会识别 api_error / overloaded_error 这类没有 HTTP status 的中流错误,按 CLAUDE_STREAM_TRANSIENT_RETRY_MAX(默认 2重试避免一次工具调用半途出错就直接打断会话。配套新增 RetriableStreamError / isRetryableStreamError / getMaxStreamTransientRetries
  • provider 1M context 支持SavedProvider 新增 model1mSupport: { main, haiku, sonnet, opus }。打开后 runtime 会把模型 ID 转成 <model>[1m] 形式,与上游约定的 1M context window 协议对齐。Settings 页每个模型槽下方多出一个 1M 复选框。
  • 后台子代理工具活动流式回灌 desktopextractAgentToolActivities(message) 把子代理消息里的 tool_use / tool_result 块抽出来,桌面端能在子代理跑动期间看到它的工具调用进度而不是只等最终结论。

新功能 / UI融合上游

  • Cmd+K 全局会话搜索。Sidebar 在本地过滤输入框上方加了一颗带 ⌘K 标的 “Search chats” 按钮,点开 GlobalSearchModaluseKeyboardShortcuts 把 Cmd+K 也桥接到这个 modal。我方原本的局部 filter input 行为完全不动,两个能力并存。
  • WorkspacePanel Navigator 切换。Tab 栏右侧多出 account_tree / right_panel_close 切换按钮;同时把 tab 改成上游的嵌套 button 结构(role="tab" + aria-selected),可访问性更好。脏标记 仍然保留。
  • 空 session hero 紧凑模式。当底部 docked terminal 可见(compactEmptyHero)时,欢迎页内边距从 pb-32 收缩到 pb-6,避免被终端面板挡住。

保留我方(功能冲突按 “优先保留我们的” 原则)

  • Sidebar 整体项目子目录、JSONL 导入导出、批量删除)取我方。上游全文搜索作为新功能 UI 已通过 GlobalSearchModal + 触发按钮回灌,没有丢失。
  • chatStore stopGenerationqueueDrainPaused(按消息队列长度暂停 drain保留我方flush 流程与上游 bufferedText 合并以减少嵌套 set。
  • providerRuntimeEnv 同时注入两边的 env我方的 thinkingIncompatible → CLAUDE_CODE_DISABLE_THINKING 和上游的 apiFormat==='anthropic' → ENABLE_TOOL_SEARCH
  • desktop 版本号 / Code Council 品牌 / fork homepage 取我方。
  • agent-limiterstreak gate + verification cap=12、HTTP 同错误抑制CLAUDE_CODE_RETRY_REPORT_AFTER等 v0.5.x 新增能力全部保留。

非合并向修复

  • scripts/quality-gate/quarantine.jsonserver:providers-realreviewAfter2026-06-17 顺延至 2026-07-19。原 review 日已过导致 change-policy job 卡住exitCriteria把 live MiniMax 检查搬到 release-live lane属于独立产品工作超出本次合并范围。

测试

  • src/server/__tests__/provider-runtime-env.test.ts:两边 7 个 case 全合,覆盖 thinkingIncompatibletoolSearchEnabled 字符串/布尔/缺省、OpenAI proxy 不写 ENABLE_TOOL_SEARCH。
  • src/services/api/withRetry.test.ts:旧 same-error 抑制 4 个 + 上游 stream-retry 9 个全合0 fail。
  • src/tools/AgentTool/agentToolUtils.test.ts9 pass包括上游的 extractAgentToolActivities 三场景。
  • desktop/src/components/layout/Sidebar.test.tsx36 pass上游加的 'Search chats' 按钮在折叠/展开下的可见性、removed embedded project filter 的兼容性都通过。
  • desktop/src/pages/ActiveSession.test.tsx14 pass含上游 compactEmptyHero → pb-6 断言。
  • desktop/src/__tests__/pages.test.tsx30 pass。
  • desktop/ tsc -b --noEmit:通过。

范围

  • 13 个文件冲突全部解决,其中 11 个 hunk 级融合1 个Sidebar.tsx整文件取我方后 cherry-pick 上游搜索入口1 个chatStore.ts stop generation按上游精简流程合并。
  • 上游 commit 范围:f793895f..ad33980cNanmiCoder/main 含 v0.4.3 tag
  • 上游放弃的内容macOS 签名 / notarization 一系列 release-workflow 修复(不影响 win 流程);信号未观察到回归。