mirror of
https://github.com/NanmiCoder/cc-haha
synced 2026-07-28 15:53:37 +08:00
4.4 KiB
4.4 KiB
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 复选框。 - 后台子代理工具活动流式回灌 desktop。
extractAgentToolActivities(message)把子代理消息里的tool_use/tool_result块抽出来,桌面端能在子代理跑动期间看到它的工具调用进度而不是只等最终结论。
新功能 / UI(融合上游)
- Cmd+K 全局会话搜索。Sidebar 在本地过滤输入框上方加了一颗带 ⌘K 标的 “Search chats” 按钮,点开
GlobalSearchModal;useKeyboardShortcuts把 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
stopGeneration的queueDrainPaused(按消息队列长度暂停 drain)保留我方,flush 流程与上游bufferedText合并以减少嵌套 set。 providerRuntimeEnv同时注入两边的 env:我方的thinkingIncompatible → CLAUDE_CODE_DISABLE_THINKING和上游的apiFormat==='anthropic' → ENABLE_TOOL_SEARCH。- desktop 版本号 / Code Council 品牌 / fork homepage 取我方。
- agent-limiter(streak gate + verification cap=12)、HTTP 同错误抑制(CLAUDE_CODE_RETRY_REPORT_AFTER)等 v0.5.x 新增能力全部保留。
非合并向修复
scripts/quality-gate/quarantine.json:server:providers-real的reviewAfter从2026-06-17顺延至2026-07-19。原 review 日已过导致change-policyjob 卡住;exitCriteria(把 live MiniMax 检查搬到 release-live lane)属于独立产品工作,超出本次合并范围。
测试
src/server/__tests__/provider-runtime-env.test.ts:两边 7 个 case 全合,覆盖thinkingIncompatible、toolSearchEnabled字符串/布尔/缺省、OpenAI proxy 不写 ENABLE_TOOL_SEARCH。src/services/api/withRetry.test.ts:旧 same-error 抑制 4 个 + 上游 stream-retry 9 个全合,0 fail。src/tools/AgentTool/agentToolUtils.test.ts:9 pass,包括上游的extractAgentToolActivities三场景。desktop/src/components/layout/Sidebar.test.tsx:36 pass,上游加的'Search chats'按钮在折叠/展开下的可见性、removed embedded project filter的兼容性都通过。desktop/src/pages/ActiveSession.test.tsx:14 pass,含上游compactEmptyHero → pb-6断言。desktop/src/__tests__/pages.test.tsx:30 pass。desktop/tsc -b --noEmit:通过。
范围
- 13 个文件冲突全部解决,其中 11 个 hunk 级融合,1 个(Sidebar.tsx)整文件取我方后 cherry-pick 上游搜索入口,1 个(chatStore.ts stop generation)按上游精简流程合并。
- 上游 commit 范围:
f793895f..ad33980c(NanmiCoder/main 含 v0.4.3 tag)。 - 上游放弃的内容:macOS 签名 / notarization 一系列 release-workflow 修复(不影响 win 流程);信号未观察到回归。