claude-code-best
2f86485d9c
refactor: 精简系统提示词 — 合并沟通风格段落、精简 memory/工具描述、截断 gitStatus
...
- 合并 getOutputEfficiencySection + getSimpleToneAndStyleSection 为精简的 Communication style
- 精简 auto memory 指令:删除 4 种类型的详细说明和示例,仅保留核心 description
- 精简 Agent 工具:删除 forkExamples 和 currentExamples 大段示例
- 精简 Bash 工具:合并 sleep 相关指导
- 精简 EnterPlanMode/ExitPlanMode:删除详细 GOOD/BAD 示例
- gitStatus MAX_STATUS_CHARS 从 2000 降到 1000
- 同步更新 prompt engineering audit 测试断言
Co-Authored-By: glm-5-turbo <zai-org@claude-code-best.win >
2026-05-09 17:14:41 +08:00
claude-code-best
547ce9e848
fix: 修复 prefetch 测试 — turn-zero 推荐已禁用,测试期望值同步更新
...
getTurnZeroSearchExtraToolsPrefetch 在 commit 2cf18c4c 中被禁用(始终返回 null),
但测试仍期望匹配时返回非 null attachment。更新三个用例全部期望 null。
2026-05-09 17:02:40 +08:00
claude-code-best
2cf18c4c49
docs: 添加 ToolSearch 设计指南 + 禁用 turn-zero 工具推荐弹窗
...
- 新增 docs/design/tool-search-design-guide.md,涵盖架构、搜索算法、执行管道、演进历史
- 禁用 getTurnZeroSearchExtraToolsPrefetch,消除用户输入时的频繁弹窗
- inter-turn 发现机制保持不变
Co-Authored-By: glm-5-turbo <zai-org@claude-code-best.win >
2026-05-09 16:45:56 +08:00
claude-code-best
bd2253846f
refactor: 统一 Tool Search 目录重命名与 prompt 强化
...
- 重命名 toolSearch/ → searchExtraTools/,ToolSearchTool → SearchExtraToolsTool
- 强化 ExecuteExtraTool prompt:明确强调必须通过 ExecuteExtraTool 调用 deferred tools
- 优化 system prompt 工具优先级引导:core tools 直接调用,deferred tools 必须用 ExecuteExtraTool
- available-deferred-tools 标签追加 ExecuteExtraTool 使用说明
- tool_discovery attachment 消息强化 ExecuteExtraTool 调用指引
- 禁用 turn-zero 用户输入工具推荐(频繁弹窗)
Co-Authored-By: glm-5-turbo <zai-org@claude-code-best.win >
2026-05-09 16:45:05 +08:00
Bill
b52c10ddb9
fix: 修复CI格式检查失败
2026-05-09 16:21:07 +08:00
claude-code-best
af0d7dc851
feat: 将 Agents/Teams 工具纳入 Tool Search 按需发现
...
将 TeamCreate、TeamDelete、SendMessage 从 CORE_TOOLS 移除,
使其成为 deferred 工具,通过 ToolSearch 按需发现以减少 context token。
swarm 模式下 SendMessage 保持 always loaded,TeamCreate/TeamDelete
在 swarm 未启用时调用返回启用提示。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-09 15:45:20 +08:00
claude-code-best
3ac866be98
fix: 修复缓存命中率警告消息不显示 — 改用 system 类型消息绕过 isMeta 过滤
2026-05-09 15:22:34 +08:00
claude-code-best
c14b7eadd2
fix: 修复 Tool Search 缓存失效 — deferred 工具不再动态注入 tools 数组
...
移除 deferred 工具的 "discover then include" 逻辑,让 tools 数组在整个会话中
保持稳定(只有 core tools + ToolSearch + ExecuteExtraTool),避免每次发现新
工具时 tools JSON 变化导致 prompt cache 失效。
同时强化工具优先级引导:core tools 优先直接调用,ToolSearch/ExecuteExtraTool
仅作为发现和调用 deferred 工具的最后手段。当模型搜索已加载的 core tool 时,
ToolSearch 返回明确的拒绝提示。
Co-Authored-By: glm-5.1[1m] <zai-org@claude-code-best.win >
2026-05-09 14:56:22 +08:00
claude-code-best
8c157f0767
refactor: 统一自建 Tool Search — 移除 tool_reference/defer_loading 依赖,全 provider 通用
...
- 重命名 ExecuteTool → ExecuteExtraTool,作为一等工具始终可用
- ToolSearchTool 输出改为纯文本(区分 core/deferred),移除 tool_reference blocks
- 移除 modelSupportsToolReference() 及相关 GrowthBook 配置
- 移除 API 侧 defer_loading 字段和 tool search beta header 注入
- 简化 system prompt(工具使用指南从 ~120 行压缩到 ~10 行)
- extractDiscoveredToolNames 支持文本格式解析(向后兼容旧 session 的 tool_reference)
- 更新 promptEngineeringAudit 测试以匹配简化后的 prompt 结构
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-09 14:19:31 +08:00
claude-code-best
4fc95bd5a7
feat: Remote Control 条件工具注入 — PushNotification/SendUserFile/Brief 仅 bridge 启用时可用
...
- PushNotificationTool、SendUserFileTool 添加 isEnabled() 使用 isBridgeEnabled()
- BriefTool 的 isEnabled() 从 isBriefEnabled() 改为 isBridgeEnabled()
- ExecuteTool 添加 isEnabled() 兜底检查,不可用时返回友好错误
- useReplBridge bridge 首次连接时插入 system 消息通知模型新工具可用
- 移除 toolSearch 中 firstParty base URL 白名单检测,默认启用 tool search
Co-Authored-By: glm-5.1[1m] <zai-org@claude-code-best.win >
2026-05-09 09:45:52 +08:00
claude-code-best
7be08f53bd
feat: 实现 Tool Search 基础设施层(CORE_TOOLS 白名单 + TF-IDF 索引 + ExecuteTool + 搜索增强)
...
- 新增 CORE_TOOLS 白名单常量(31 个核心工具),重构 isDeferredTool 为白名单制判定
- 新建 TF-IDF 工具索引模块(toolIndex.ts),复用 localSearch.ts 算法函数
- 新建 ExecuteTool 跨 API provider 统一工具执行入口
- 增强 ToolSearchTool:TF-IDF 搜索路径、discover: 模式、并行搜索合并、文本模式回退
- 新增 27 个单元测试,precheck 零错误通过(4108 tests pass)
Co-Authored-By: glm-5.1[1m] <zai-org@claude-code-best.win >
v6-start
2026-05-08 22:29:15 +08:00
Bill
c7cb3d8f93
feat: /login支持codex订阅登录
2026-05-08 20:35:34 +08:00
claude-code-best
02dd796706
Merge pull request #435 from bonerush/fix/conditional-hooks-ctrlo-error
...
fix: 修复条件式 hook 调用导致的 "Rendered fewer hooks than expected" 错误
2026-05-08 19:21:30 +08:00
Bonerush
8ba51edec1
fix: 修复条件式 hook 调用导致的 "Rendered fewer hooks than expected" 错误
...
修复在 dev 模式下按下 Ctrl+O 切换 transcript 视图时 React 抛出
"Rendered fewer hooks than expected" 崩溃的问题。
## 根因分析
项目中有大量 hook(useState / useMemo / useRef / useSyncExternalStore 等)
被包裹在 `feature()` 三元表达式中条件调用,例如:
const value = feature('X') ? useHook() : defaultValue;
在 build 模式下 `feature()` 是编译时常量,死代码消除会移除未使用的分支,
hooks 数量在编译后是确定的。但在 dev 模式下(scripts/dev.ts 注入
--feature 启用全部 31 个 feature),`feature()` 是运行时调用,
但始终返回 true,因此所有 hooks 都会被调用,原本不会出问题。
真正的触发器是 REPL.tsx 第 5381 行的提前返回:
if (screen === 'transcript') { return transcriptReturn; }
当用户按下 Ctrl+O 进入 transcript 模式时,该提前返回之后的所有 hooks
(如 displayedAgentMessages 的 useMemo)都不会被调用,导致 React 在
下一次渲染时检测到 hooks 数量与上次不一致而崩溃。
此外,其他文件中也存在相同的条件式 hook 模式——虽然 dev 模式下
feature() 返回 true,所以这些路径实际上不会被触发,但它们是
潜在的隐患:若将来有人通过环境变量关闭某个 feature,
同样的崩溃会立即出现。
## 修复策略
采用统一模式:**始终无条件调用 hook,将 feature() gate 应用到值上**。
// Before (unsafe — hook count varies by feature flag)
const value = feature('X') ? useHook() : defaultValue;
// After (safe — hook always called, gate on the value)
const rawValue = useHook();
const value = feature('X') ? rawValue : defaultValue;
## 修改清单
### 核心修复(REPL.tsx)
- 将 `displayedAgentMessages` useMemo 及依赖变量(viewedTask /
viewedTeammateTask / viewedAgentTask / usesSyncMessages /
rawAgentMessages / displayedMessages)从 transcript 提前返回
之后移至之前,确保两模式下 hooks 调用顺序一致
- 修复 `disableMessageActions` / `useAssistantHistory` /
`voiceIntegration` 的条件式 hook 调用
### 条件式 hook 修复(11 个文件)
- src/hooks/useGlobalKeybindings.tsx — isBriefOnly / toggleBrief
keybinding 改为 isActive 门控
- src/hooks/useReplBridge.tsx — 5 个 BRIDGE_MODE 选值改为无条件调用
- src/hooks/useVoiceIntegration.tsx — 4 个 VOICE_MODE 选值修复
- src/components/PromptInput/Notifications.tsx — 4 个 feature 选值修复
- src/components/PromptInput/PromptInput.tsx — briefOwnsGap /
companionSpeaking 修复
- src/components/PromptInput/PromptInputFooterLeftSide.tsx — 4 个
VOICE_MODE 选值修复
- src/components/PromptInput/PromptInputQueuedCommands.tsx — isBriefOnly
- src/components/Spinner.tsx — briefEnvEnabled 修复
- src/components/TextInput.tsx — voiceState / audioLevels /
animationFrame 修复
- src/components/messages/AttachmentMessage.tsx — isDemoEnv 修复
- src/components/messages/UserPromptMessage.tsx — isBriefOnly /
viewingAgentTaskId / briefEnvEnabled 修复
- src/components/messages/UserToolResultMessage/UserToolSuccessMessage.tsx
— isBriefOnly 修复
### 其他修复
- src/components/FeedbackSurvey/useFrustrationDetection.ts — 将 3 个
提前返回合并为 shouldSkip 变量,handleTranscriptSelect 提前 return
- src/hooks/useIssueFlagBanner.ts — useRef 移到 USER_TYPE 检查之前
- src/hooks/useUpdateNotification.ts — useState 改为 useRef,
避免版本号变化触发不必要重渲染
### 构建/开发配置
- build.ts — 添加 `sourcemap: 'linked'`
- scripts/dev.ts — NODE_ENV 从 'production' 改为 'development'
Closes #434
2026-05-08 13:17:25 +08:00
claude-code-best
73e54d4bbc
chore: 2.2.1
v2.2.1
2026-05-07 23:50:09 +08:00
claude-code-best
2fdfb844cb
Merge pull request #428 from xiaoFjun-eng/main
...
修复type
2026-05-07 22:31:12 +08:00
claude-code-best
4230f0fff1
chore: remove learn directory study notes
...
Co-Authored-By: glm-5-turbo <zai-org@claude-code-best.win >
2026-05-07 14:34:39 +08:00
claude-code-best
7fe448d9e9
feat: 改为使用 ccb 的邮箱
2026-05-07 12:06:40 +08:00
claude-code-best
aa06cea904
fix: 修正 GLM 模型 GitHub 署名邮箱为 zai-org
...
Co-Authored-By: glm-5.1[1m] <zai-org@users.noreply.github.com >
2026-05-07 11:35:40 +08:00
claude-code-best
c43efecbab
feat: 署名邮箱改为 GitHub noreply 格式并新增模型映射
...
Co-Authored-By: glm-5.1[1m] <zhipuai@users.noreply.github.com >
2026-05-07 11:32:48 +08:00
claude-code-best
cb4a6e76cf
feat: 添加自动邮箱映射功能并完善署名系统
...
- 新增 attributionEmail.ts 实现模型名到邮箱的自动映射
- 重构署名逻辑,统一使用 getRealModelName() 和 getAttributionEmail()
- 将产品名从 Claude Code 更新为 Claude Code Best
- 更新 PRODUCT_URL 指向 claude-code-best fork 仓库
Co-Authored-By: glm-4.7 <noreply@zhipuai.cn >
2026-05-07 11:12:40 +08:00
claude-code-best
f7f69b759c
fix: 修复模型别名未解析导致署名显示 "haiku" 而非真实模型名
...
去掉 getUserSpecifiedModelSetting() 分支,统一走 getMainLoopModel()(解析别名)
+ resolveProviderModel()(解析 provider 映射)的完整链路。
Co-Authored-By: opus[1m] <noreply@anthropic.com >
2026-05-07 11:10:01 +08:00
claude-code-best
771e3dbcf0
fix: 修复非 Anthropic provider 署名模型名获取错误
...
getRealModelName() 现在会检查 provider 特定环境变量(OPENAI_MODEL、GEMINI_MODEL、GROK_MODEL),
确保通过这些变量设置模型时署名显示真实名称而非 Anthropic 默认模型名。
Co-Authored-By: opus[1m] <noreply@anthropic.com >
2026-05-07 10:57:14 +08:00
claude-code-best
e3c0699f5b
feat: 添加 prompt 缓存命中率检测与警告功能
...
每次 API 请求后自动计算缓存命中率,低于阈值(默认 80%)时在对话流中显示黄色警告消息。
同时更新 /context 命令输出中显示缓存命中率。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-05-07 10:49:06 +08:00
claude-code-best
e8759f3402
fix: 禁用 opus[1m] 自动迁移,尊重用户手动删除 [1m] 后缀的选择
...
迁移逻辑过于激进,用户手动删除 [1m]] 后会被自动加回。
现在将 migrateOpusToOpus1m 改为 no-op,保留用户的手动模型选择。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-05-07 09:33:56 +08:00
claude-code-best
958ac3a0d5
feat: 开启部分被关闭的 feature
2026-05-07 09:14:58 +08:00
claude-code-best
5895362178
chore: 2.2.0
v2.2.0
2026-05-07 08:29:07 +08:00
claude-code-best
8cfe9b6dc3
feat: 启用 COORDINATOR_MODE feature flag
...
AgentSummary 30s fork 循环的内存泄露已在 commit 52b61c2c 修复(闭包
引用丢弃 + 上下文重建 + 消息/字符上限),重新启用该 feature。
用户可通过 /coordinator 命令或 CLAUDE_CODE_COORDINATOR_MODE=1 环境变量
激活多 worker 编排模式。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-07 08:28:28 +08:00
claude-code-best
12f5aedf99
fix: 恢复消息流中 diff 高亮渲染功能
...
还原 commit 51b8ad46 删除的 diff highlight 显示:FileEdit/FileWrite 工具
执行成功后重新展示 StructuredDiffList,拒绝时重新展示高亮代码预览或
带上下文的 diff 视图。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-07 08:28:28 +08:00
claude-code-best
c7efac6b8d
Merge pull request #423 from znygugeyx-ctrl/feat/statusline-refresh-interval
...
feat: 状态栏支持 refreshInterval 定时刷新
2026-05-06 23:53:36 +08:00
zny
2f150d3ecd
feat: 状态栏支持 refreshInterval 定时刷新
...
- Zod schema 补齐 refreshInterval 字段
- 通过 scheduleUpdate 复用 300ms debounce,event/settings/time 三路触发单飞
- 新增 docs/features/status-line.mdx 调研文档
2026-05-06 22:50:11 +08:00
claude-code-best
68c7ebb242
Merge pull request #419 from suger-m/codex/sub-agents-docs
...
docs: expand sub-agent architecture guide
2026-05-06 20:30:42 +08:00
claude-code-best
9e299a7208
Merge pull request #420 from claude-code-best/fix/third-party-api-user-id
...
fix: third-party API user_id validation error (DeepSeek, etc.)
2026-05-06 20:30:12 +08:00
Simple6K
941bcbd240
fix: third-party API user_id validation error (DeepSeek, etc.)
...
When ANTHROPIC_BASE_URL points to a non-Anthropic endpoint (e.g.
DeepSeek), the JSON-formatted user_id containing {, ", : characters
fails validation against ^[a-zA-Z0-9_-]+$. Send only the hex device_id
for third-party providers.
2026-05-06 17:47:31 +08:00
suger-m
fd66ddc45f
docs: expand sub-agent architecture guide
2026-05-06 17:26:49 +08:00
znygugeyx-ctrl
5c107e5f8c
Merge pull request #416 from znygugeyx-ctrl/feat/subagent-fork-render
...
feat: 参考 claude code 官方实现,改进 sub agent 以及 fork agent 的渲染方式
2026-05-06 09:57:52 +08:00
claude-code-best
c4e9efb7a8
Merge pull request #417 from shaleloop/sync/mcp-transform-2.1.128
...
fix: align mcp transform pipeline with Anthropic Claude Code 2.1.128
2026-05-06 09:51:37 +08:00
shaleloop
26ddbda849
fix: align mcp transform pipeline with Anthropic Claude Code 2.1.128
...
Add ImageLimits type and plumb optional limits through the chain:
callMCPTool/callMCPToolWithUrlElicitationRetry -> processMCPResult ->
transformMCPResult -> transformResultContent -> maybeResizeAndDownsampleImageBuffer.
When provided, limits override the module-level defaults
(IMAGE_TARGET_RAW_SIZE, IMAGE_MAX_WIDTH, IMAGE_MAX_HEIGHT,
API_IMAGE_MAX_BASE64_SIZE) inside maybeResizeAndDownsampleImageBuffer.
When undefined, behavior is unchanged for current callers.
Add _meta preservation in the text-block case of transformResultContent
(only when the caller opts in via includeMeta=true). transformMCPResult
passes includeMeta=true on the tool-result path; the prompt-handler call
site keeps the default false, preserving prior behavior.
Add skipLargeOutput early-return in processMCPResult after the IDE check:
when the caller passes skipLargeOutput=true and the content has no images,
the function returns content directly without large-output handling.
Add unwrap-to-text in processMCPResult for the persisted-content path:
when the large-string format gate is enabled
(MCP_TRUNCATION_PROMPT_OVERRIDE env var, or
tengu_mcp_subagent_prompt Statsig gate), and the content is a single
bare text block (no annotations, no _meta), unwrap to raw text and
switch the format description to 'Plain text'. Default-off; gate-off
behavior is unchanged.
Verified structurally against the 2.1.128 binary: function signatures,
the IDE check, gate logic, _meta-unwrap pattern, and imageLimits
plumbing match this implementation.
2026-05-05 14:53:57 -07:00
claude-code-best
872ee280e3
chore: 2.1.0
v2.1.0
memory-leak-fixed
2026-05-05 21:22:20 +08:00
claude-code-best
f5c9880d7d
Merge pull request #413 from claude-code-best/performance/20260505/memory-leak-fix
...
feat: 继续进行内存泄露修复及垃圾代码清理
2026-05-05 21:21:22 +08:00
claude-code-best
3f1c8468bf
fix: 调小 snapshots 的范围
2026-05-05 21:09:02 +08:00
claude-code-best
100e9d2da0
chore: 2.0.5
v2.0.5
2026-05-05 20:16:44 +08:00
claude-code-best
0ad6349434
chore: 清理 18 处未使用导入、变量和函数
...
移除未使用的导入(getSubscriptionType、isEnvDefinedFalsy、
getClaudeConfigHomeDir 等)、未使用的常量(ACCENT_COLOR、
NAME_MATCH_BONUS、CLIPBOARD_THRESHOLD)和死函数
(getOpus41Option、pasteViaClipboard),
为未使用参数添加 _ 前缀。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-05 20:15:51 +08:00
claude-code-best
1ac18aec0d
chore: 清理 4 处遗漏的未使用导入和参数
...
移除 autonomyStatus/betas/claudemd/executorCrossPlatform 中
未使用的导入和参数。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-05 20:05:50 +08:00
claude-code-best
fcbc882232
chore: 清理 src 下 113 项未使用导入和死代码
...
删除未使用的文件(BuiltinStatusLine.tsx、4 个重复的 .ts stub)、
移除约 55 个文件中未使用的 React 导入、
清理约 50 处未使用的导入/变量/参数。
净减少 ~296 行代码,precheck 4077 测试全部通过。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-05 20:05:15 +08:00
claude-code-best
a1108870e3
Merge pull request #412 from claude-code-best/feature/20260504/improve
...
feat: 内存碎片及死代码清理
2026-05-05 19:48:12 +08:00
claude-code-best
87b96199f9
feat: ai 的随机修复
2026-05-05 19:36:38 +08:00
claude-code-best
18d6656a6a
feat: 尝试改进 Error 处理以提升内存管理效率
2026-05-05 18:18:13 +08:00
claude-code-best
d0915fc880
chore: 清理 src 下 33 项死代码和类型断言
...
删除未使用的文件/目录(mcp/adapter、cli/update.ts 等)、
未使用的重导出文件(design-system/color.ts 等 12 个)、
7 个零引用的导出函数、修复 5 处 as any 为精确类型。
净减少 ~1194 行代码,precheck 4077 测试全部通过。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-05 16:07:30 +08:00
claude-code-best
cf2bf29dcd
feat: 尝试深度拷贝数据以分离引用
2026-05-05 12:41:01 +08:00