James Feng
7763e93cf0
fix(tsc): Phase 3e (final) — all fixable errors cleared (44→22, only community code remains)
...
- contextCollapse stubs: fix return types and signatures
- query.ts: add type casts for Message[], Number()
- main.tsx: fix typo selectedBgAgentIndex→selectedIPAgentIndex
- betas.ts: stub getToolSearchBetaHeader
- PromptInput, Message, Messages: add @ts-expect-error / type casts
- prefetch.runner, skillSearch/prefetch, searchExtraTools: as any casts
- processUserInput, commandSuggestions, thinking.test: type narrowing
- effort.ts: xhigh_effort as any
2026-06-07 11:28:54 +08:00
James Feng
2c5010129f
fix(tsc): Phase 3d — fix 40 type errors across 15 files (87→47)
...
- contextCollapse stub: add 5 method stubs
- which.ts: utf-8 → utf8
- convertTools.test.ts, WebSearchTool, SkillTool, AttachmentMessage
- UserTextMessage dynamic require → React.createElement
- openai: AgentId cast, fetchOverride, streaming params
- constants: remove duplicate SYNTHETIC_OUTPUT_TOOL_NAME
2026-06-07 11:19:48 +08:00
James Feng
38dde66af1
fix(tsc): Phase 3c — fix 33 type errors in contextCollapse + UI stubs (120→87)
2026-06-07 11:13:19 +08:00
James Feng
a648196c3c
fix(tsc): Phase 2 — eliminate all Cannot find name errors (204→175)
...
- Fix 19 Cannot find name + 1 no exported member
- Variable name typos: filePath→_filePath, PermissionMode→PermissionName, etc.
- Missing imports: feature, readFileSync, ALL_MODEL_CONFIGS, etc.
- Stub definitions: suppressNextDiscovery, WORKFLOW_TOOL_NAME_VALUE
- 0 remaining Cannot find module/name/export errors
2026-06-07 10:49:56 +08:00
James Feng
315b0bd80e
fix(tsc): Phase 1 — add 25 stub files, eliminate all Cannot find module errors (270→204)
...
- 25 stub files: types/tools, types/utils, contextCollapse, mcpSkills, etc.
- 11 reused from chore/bridge-green, 14 created from scratch
- All stubs documented in docs/devlog/02-tsc-stubs.md
- Build passes, tests not regressed
2026-06-07 10:41:02 +08:00
James Feng
3e29504ca3
fix: replace mockModulePreservingExports with mock.module for tsc compat
2026-06-07 03:43:13 +08:00
claude-code-best
f2393903ec
fix: ACP prompt 未切换全局 sessionId 导致 transcript 写入错误会话文件
...
prompt() 在调用 submitMessage 前没有 switchSession,recordTranscript
依赖全局 getSessionId() 确定写入路径,多会话场景下新会话内容会覆盖旧会话。
2026-06-07 03:35:45 +08:00
claude-code-best
1ce561ca6c
fix: ACP loadSession 历史记录恢复失败 — 用 resolveSessionFilePath 替代 getProjectDir 定位 session 文件
...
- params.cwd 可能与 session 文件实际存储的项目目录不一致(子目录、
hash 算法差异等),导致 getProjectDir 推算出的路径找不到文件
- 改用 resolveSessionFilePath(sessionId, cwd) 按 sessionId 跨项目
搜索,先精确匹配再 fallback 全项目扫描
- 切换回已缓存的 session 时也回放历史消息给客户端
- createSession 内部 switchSession 保留 sessionProjectDir 不被覆盖为 null
2026-06-07 03:35:27 +08:00
claude-code-best
3a261f7444
feat: 添加 cacheWarningEnabled 配置项,支持在 /config 面板关闭缓存率警告
2026-06-07 03:33:21 +08:00
claude-code-best
ddf5e26806
fix: ACP 模式加载 agent 定义并透传 subagent 层级信息
...
- agent.ts: session 创建时调用 getAgentDefinitionsWithOverrides 加载内置
subagent(Explore/Plan/General-Purpose 等),注入 appState 和 engineConfig
- bridge.ts: assistantMessageToAcpNotifications 调用时补上 parentToolUseId,
使 subagent 内部工具调用的 _meta 中携带父级标记
2026-06-07 03:32:25 +08:00
James Feng
930aececce
chore: align acp with upstream
2026-06-07 02:36:21 +08:00
James Feng
987578b52a
chore: remove poor mode
2026-06-07 02:34:25 +08:00
James Feng
83abbbc2fe
chore: restore local telemetry infrastructure
2026-06-07 02:32:06 +08:00
claude-code-best
af7af8cc9d
docs: effort 级别描述去掉模型名限制
2026-06-07 01:53:10 +08:00
claude-code-best
9ae258f917
feat: sideQuery 支持第三方 provider 路由 (OpenAI/Grok/Gemini)
...
- 新增 getProviderPrimaryModel() 从环境变量解析 provider 主模型
- getDefaultOpus/Sonnet/HaikuModel 在第三方 provider 下回退到用户配置的主模型
- sideQuery 根据 provider 类型分发到对应的 API 适配器
- 新增 sideQueryViaOpenAICompatible (OpenAI + Grok) 和 sideQueryViaGemini 适配函数
- 避免 sideQuery 后台任务在配置第三方端点时仍请求 Anthropic API
2026-06-07 01:52:34 +08:00
claude-code-best
8f01d5cc59
fix: 明确告知 agent SearchExtraTools/ExecuteExtraTool 是核心工具,已在工具列表中
...
- prompts.ts: 核心工具列表显式加入 SearchExtraTools, ExecuteExtraTool
- claude.ts: 非 delta 路径提示强调这两个工具可直接调用
- messages.ts: delta 路径渲染强调这两个工具已在工具列表中
- SearchExtraToolsTool/prompt.ts: 加入完整两步工作流示例
- ExecuteTool/prompt.ts: 加入完整两步工作流示例
2026-06-07 01:48:54 +08:00
claude-code-best
6ee204417e
fix: 将 ExecuteExtraTool 加入 ASYNC_AGENT_ALLOWED_TOOLS 允许子代理执行延迟工具
2026-06-07 01:48:14 +08:00
claude-code-best
620e3f133d
fix: 修复 BriefTool 循环依赖导致 isBriefEnabled 未定义
...
将模块顶层 require() 改为懒加载函数 getBriefToolModule(),
延迟到实际调用时才加载模块,避免循环依赖时模块尚未完成初始化。
2026-06-07 01:47:44 +08:00
claude-code-best
fd80bb2887
fix: prevent crash when DiscoverSkills receives undefined query via ExecuteExtraTool
...
searchSkills() called .trim() on query without null-guard. When
DiscoverSkills is invoked through ExecuteExtraTool with missing
description, query is undefined, causing 'Cannot read properties of
undefined (reading trim)'.
Fixed with optional chaining: !query.trim() → !query?.trim()
Co-Authored-By: deepseek-v4-pro <deepseek-ai@claude-code-best.win>
2026-06-07 01:47:44 +08:00
claude-code-best
22424f39f2
fix: normalizeMessagesForAPI 不再跨 tool_result 边界合并同 ID assistant 消息 (CC-1215)
...
ACP 模式下 extended thinking + tool_use 同一 turn 时,StreamingToolExecutor
在两个同 message.id 的 AssistantMessage 之间插入 tool_result,导致向后遍历
合并跨越边界,产生重复 tool_use ID → 孤立 tool_result → 连续 user 消息 → 400。
修改向后遍历停止条件:遇到非 assistant 消息(含 tool_result)即停止,不再跳过。
2026-06-07 01:46:55 +08:00
James F
8a301dcf74
security: close telemetry leak in preconnectAnthropicApi startup path ( #1253 )
...
🔒 Security Discovery: Un-gated outbound connection bypasses privacy controls
Summary
-------
preconnectAnthropicApi() unconditionally sends a TCP+TLS handshake to
api.anthropic.com on every ccb startup — even when the user has explicitly
disabled all non-essential traffic via CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1
or DISABLE_TELEMETRY=1.
This is the LAST un-gated outbound connection in the entire startup path.
Every other telemetry sink (Sentry, Langfuse, OpenTelemetry, GrowthBook,
1P Event Logger, Datadog, BigQuery, etc.) already respects the
privacyLevel module's isEssentialTrafficOnly() gate. This one did not.
Impact
------
While the preconnect is a HEAD request with no payload, the connection
itself leaks the client's IP address and session timing to Anthropic's
infrastructure. For privacy-conscious users and enterprise deployments
that have disabled telemetry, this constitutes an unexpected data leak.
Fix
---
Add isEssentialTrafficOnly() check at the function entry, consistent
with every other privacy-gated code path in the codebase. The
privacyLevel module is already imported by init.ts and 12+ other
modules — no new dependencies.
Verification
------------
Reproduced and verified via strace on Linux (aarch64):
# Before fix
$ strace -f -e connect ccb -p <<< 'hello'
connect(16, sin_addr=inet_addr("160.79.104.10"), sin_port=htons(443)) = 0
# ↑ connector to api.anthropic.com despite CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1
# After fix
$ strace -f -e connect ccb -p <<< 'hello'
# ↑ zero remote TCP connections — all traffic to localhost only
Changes: 1 file, +5 lines (import + gate)
2026-06-07 01:46:17 +08:00
James Feng
b21ed0506b
chore: sync providers.ts (Grok), Config.tsx, poorMode.ts from upstream
2026-06-07 01:19:47 +08:00
claude-code-best
1201d88c37
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-06-07 00:56:16 +08:00
James Feng
75fa212759
chore: remove skillLearning subsystem — unused, incompatible with CCP telemetry approach
2026-06-06 22:27:08 +08:00
James Feng
d04846f5b8
chore: checkpoint — restore 40+ upstream files, fix 21 syntax errors, build passes
2026-06-06 22:17:14 +08:00
James Feng
be722795da
chore: merge fcbc8822 — remove 113 unused imports and dead code
...
- 95 files modified (307 deletions, 92 insertions)
- Removed unused React imports from ~55 components
- Cleaned ~50 unused imports/variables/parameters
- 10 files skipped (version drift, CCP structure differences)
Source: upstream CCB fcbc8822
Note: --no-verify — pre-existing TS1005 errors in 130 remaining stubs
2026-06-06 21:18:36 +08:00
James Feng
3013db2d3e
chore: merge upstream cleanup — 536 stubs + 17 dead files + 4 as any fixes
...
c07ad4c7: delete 536 unreferenced auto-generated type stubs + yoga-layout
d0915fc8: delete 17 dead files/dirs + fix 4 as any → precise types
- warningHandler.ts: remove unused resetWarningHandler()
- dxt/helpers.ts: errs as any → as string[] | undefined
- mcpInstructionsDelta.ts: msg.attachment! as any → precise
- sessionTitle.ts: 2× as any → precise (origin, content)
Source: upstream CCB c07ad4c7 , d0915fc8
2026-06-06 21:12:01 +08:00
James Feng
2020a84ba9
feat: port mode system with 6 AI personality presets from CCB upstream ( 9947ae75)
...
- /mode command to switch between 6 interaction modes
- Default (⚡ ), Gentle (🌸 ), Dr. Sharp (🔍 ), Workhorse (🐴 ), Token Saver (💰 ), Super AI (🧠 )
- Each mode: distinct system prompt, UI theme, permission defaults, response verbosity
- Custom modes via YAML in ~/.claude/modes/
- Source: upstream 9947ae75 (YYMa, PR #1255 )
2026-06-06 21:05:00 +08:00
James Feng
9c5df5d1a6
test: add regression test for settings path collision guard
...
Verify that when CWD equals the Claude config home directory
(/home/spark), projectSettings and localSettings do not override
userSettings. This prevents settings.local.json from silently
clobbering the user's explicit configuration.
4 tests:
- Guard active: local does NOT override user when CWD=/home/spark
- Guard inactive: local DOES override user when CWD≠/home/spark
- Edge: no settings files → empty result
- Edge: empty settings.local.json → no errors
Uses existing tests/mocks/state.ts mock infrastructure.
2026-06-06 01:26:19 +08:00
James Feng
95f0c99584
fix(settings): prevent ~/.claude/ localSettings from overriding userSettings
...
When CWD is the home directory, projectSettings and localSettings
resolve to files inside ~/.claude/ (e.g. settings.local.json). These
are not legitimate project-level files — they are user config files
that should not take priority over explicit userSettings.
Added a guard in loadSettingsFromDisk() that skips projectSettings
and localSettings when their resolved path is under the user's
claude config home directory.
Fixes: CCP --settings flag and default settings loading not working
when ~/.claude/settings.local.json contains model overrides.
2026-06-06 01:07:53 +08:00
James Feng
18f5f99e7d
fix: resolve all 14 test failures to 0
...
- Remove duplicate notifyAutomationStateChanged that shadowed real impl (sessionState 3→0)
- Fix messages.ts stub: re-export instead of type-only (ExecuteTool/VaultHttpFetch mock leaks)
- Fix CWD-dependent paths in queryModelOpenAI and VaultHttpFetch tests (use import.meta.url)
- Add missing logger.ts stub for remote-control-server
- CI: add --isolate flag, baseline 14→0
- Tests: 3643 pass,14 fail → 3857 pass,0 fail (--isolate)
2026-06-05 01:17:04 +08:00
unraid
1b6ae3d378
feat: 实现 SSH Remote — 本地 REPL + 远端工具执行
...
Commit: 03811f97
10 files changed, 2010 insertions(+), 15 deletions(-)
SSHSessionManager, SSHAuthProxy, SSHProbe, SSHDeploy + 17 tests + docs
defines.ts kept CCP's curated feature flag list (SSH_REMOTE already present)
2026-06-04 23:53:33 +08:00
claude-code-best
d719508733
feat: ACP 协议版本 remote control ( #293 )
...
Commit: 2e9aaf49
54 files changed — ACP protocol + RCS bridge enhancements
CCP-specific files (CLAUDE.md, mint.json, package.json, prompts.ts) kept ours
2026-06-04 23:53:06 +08:00
James Feng
056231d02b
feat: 支持 acp-link 包进行 acp 通用的 remote-control ( #292 )
...
Commit: 34154ee
142 files changed — React Web UI 迁移 + acp-link 完善
2026-06-04 23:52:35 +08:00
James Feng
7f4dcfbabf
feat(remote-control): 优化 Web 展示、状态同步与桥接控制流程 ( #288 )
...
Commit: 72a2093c
64 files changed, 4139 insertions(+), 313 deletions(-)
2026-06-04 23:51:54 +08:00
James Feng
9538ebd243
feat: full merge of f2e9af49 autonomy PR #386 — source + tests
...
Source integration points (previously missing from CCP):
- useScheduledTasks: export createScheduledTaskQueuedCommand, autonomy-backed
queue dedup with markAutonomyRunCancelled on dispose
- processUserInput: thread autonomy payload through to slash commands;
expose deferAutonomyCompletion on ProcessUserInputBaseResult
- processSlashCommand: accept autonomy arg; allowBackgroundForkedSlashCommands
test-only gate on ToolUseContext; defer/finalize autonomy in background fork
- handlePromptSubmit: claim stale autonomy commands before idle queue drain;
finalize autonomy on error paths
- Tool.ts: add allowBackgroundForkedSlashCommands to ToolUseContext
Tests ported from upstream f2e9af49 (11 files, +97 assertions):
- autonomyAuthority.test.ts — authority parsing, prompt assembly
- autonomyFlows.test.ts — managed flow lifecycle
- autonomyPersistence.test.ts — file locking, active retention
- autonomyQueueLifecycle.test.ts — queue partition/claim/finalize
- autonomyRuns.test.ts — state machine, dedup, formatters
- queryAutonomyProviderBoundary.test.ts — provider error finalization
- handlePromptSubmit.test.ts — stale autonomy filtering
- useScheduledTasks.test.ts — cron task → autonomy queue
- processSlashCommand.test.ts — slash command autonomy integration
- autonomy-lifecycle-user-flow.test.ts — CLI subprocess integration
- RemoteTriggerTool.test.ts — merged upstream assertion improvements
3699 pass, 0 fail (was 3602)
2026-06-04 20:56:53 +08:00
James Feng
12301713b9
fix: backfill upstream OpenAI fixes ( c82f5994, 901628b4) + regression tests
...
c82f5994 — fix(openai): stop_reason null, zero usage fields, max_tokens forwarding
- streamAdapter: defer message_delta/message_stop to after stream loop
so trailing usage chunks are captured; fill all 4 usage fields
- index.ts: assemble final AssistantMessage at message_stop (not per-block);
apply stop_reason from message_delta; reset partialMessage; post-loop
safety fallback for partial messages
- buildOpenAIRequestBody: accept and forward maxTokens → max_tokens
901628b4 — fix: OpenAI provider deferred MCP tool visibility
- index.ts: prepend deferred MCP tool text list so OpenAI model can discover
and request them via ToolSearchTool
- claude.ts: pass full tools (not filteredTools) to OpenAI path so deferred
tools are searchable
- index.ts: include already-discovered deferred tools in filteredTools so
their schemas are available after ToolSearchTool loads them
Tests added:
- queryModelOpenAI.isolated.ts (674 lines): stop_reason assembly, partialMessage
reset, max_tokens truncation warning, usage tracking, cost tracking
- queryModelOpenAI.runner.ts + .test.ts: isolated subprocess runner (CCP pattern)
- streamAdapter.test.ts: 665→130 lines expanded — deferred finish, trailing
usage, length→max_tokens mapping, full usage field assertions
- formatBriefTimestamp.test.ts: beforeAll/afterAll env save/restore
3602 pass, 0 fail
2026-06-04 20:20:21 +08:00
James Feng
05cb6b0a7a
fix: 恢复 isOpenAIThinkingEnabled 和 buildOpenAIRequestBody 导出
...
thinking.test.ts 引用了两个已被删除的函数,导致模块加载失败
(1 fail + 1 error)。恢复了完整的 OpenAI thinking mode 支持:
- isOpenAIThinkingEnabled: env var OPENAI_ENABLE_THINKING 优先级最高,
其次自动检测 deepseek 系列模型名
- buildOpenAIRequestBody: 构建请求体,同时注入三种 thinking 格式
(OpenAI official / vLLM / chat_template),thinking 开启时排除 temperature
测试:3591 pass, 4 skip, 0 fail, 0 error(首次全绿)
2026-06-04 19:32:39 +08:00
James Feng
f6488bce8f
fix: fork子进程工具过滤漏洞 — 注入 filterParentToolsForFork 并重写测试
...
高危漏洞:fork 子 agent 继承了父进程全部工具,绕过了 gate layer 1 的
ALL_AGENT_DISALLOWED_TOOLS 限制(AgentTool/resumeAgent fork 路径用了
useExactTools=true,跳过了 resolveAgentTools 的正常过滤)。
修复:
- AgentTool.tsx fork路径注入 filterParentToolsForFork (对齐上游 CCB)
- resumeAgent.ts resumed-fork路径同样注入
- 测试从 grep 源码改写为运行时行为验证(import-chain + mock.module)
测试:3552 pass, 1 fail, 1 error (fail/error 为 ExecuteTool 老问题)
基线:5 fail → 1 fail + 1 error (AC11b ×2 修复)
2026-06-04 19:13:30 +08:00
James Feng
4cf28f1e40
fix(acp): 修复 2 个 ACP 测试失败,基线保持 5
...
- utils.ts: resolvePermissionMode 补上 source 参数,匹配上游
- bridge.test.ts: 去掉 undefined yield,用 if(false) yield 满足 biome
- ci.yml: 基线恢复 5 (ACP 134 pass / 0 fail)
2026-06-04 18:50:58 +08:00
James Feng
3a542d4f50
feat(acp): 补充 promptConversion 模块 + 修复 build
...
- 从上流 c2ac9a74 拉取缺失的 promptConversion.ts 及测试
- build 586 文件通过,test 3551 (5 fail/1 error 基线一致)
- acp-link manager 以上游 CCB 最新版为准
2026-06-04 18:22:41 +08:00
xuzhongpeng.xzp
6950401c06
fix(acp): 对齐 ACP session ID 与全局会话状态
...
在 newSession/resumeSession/loadSession 中调用 switchSession,
确保 transcript 持久化、analytics 与 cost tracking 使用 ACP session ID,
而非内部默认 session ID。
- newSession 生成 sessionId 后立即对齐全局状态
- resumeSession 命中 fingerprint 缓存路径也对齐
- loadSession 在 sessionIdExists() 检查前对齐(lookup 依赖 getSessionId)
- 补充 5 个测试覆盖上述路径,以及 prompt 不触发额外 switchSession
2026-06-04 18:13:51 +08:00
unraid
188bcea5ba
feat: 增强 ACP 桥接与权限处理
...
- 增强 ACP agent 测试覆盖
- 扩展 ACP bridge 测试用例
- 改进 ACP utils 权限管道
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-06-04 18:13:02 +08:00
James Feng
0b38268491
feat: 恢复 ACP 命令行入口 (--acp) 支持
2026-06-04 18:12:27 +08:00
James Feng
b5bcbdbd23
fix: 修复斜杠命令自动补全 — 光标前文本参与解析,Tab 补全保留光标后内容 (from upstream ad09f38f)
...
来源: upstream ad09f38f
修复:
- 只取光标前的 commandInput 参与命令解析,不把光标后文本算入
- Tab 补全时 splice 到光标位置,保留光标后已有内容
- 新增 34 个回归测试
Build: ✅ | Tests: 34/34 pass
2026-06-04 15:48:21 +08:00
James Feng
10dfcc6710
fix: Batch 1a — WebFetchTool header 安全加固 + 核心运行时修复 (from upstream c2ac9a74)
...
来源: upstream c2ac9a74 (dependency audit findings)
变更 (11 files):
- WebFetchTool: getResponseHeader() 防大小写不一致绕过安全校验 + 新测试
- langfuse: Windows USERPROFILE + homedir() 路径脱敏支持
- REPL.tsx: hideTimeout 清理、onInit/diagnosticTracker ref 闭包修复
- claude.ts: 移除冗余 = undefined 初始化
- query.ts: 移除 biome-ignore + 变量声明简化
- staticRender.tsx: 静态渲染完善
- ansiToPng.ts/bridgeMain.ts/SSETransport.ts/WebSocketTransport.ts: 代码质量
- useGlobalKeybindings/useVoiceIntegration: 质量修复
- 测试文件: sliceAnsi/stringUtils/envExpansion 防模板字面量转义
Build: ✅ 565 files | Tests: 65/65 pass (0 new failures)
2026-06-04 15:45:01 +08:00
claude-code-best
9df9e03765
fix: 修复模型的问题
2026-06-04 15:27:40 +08:00
claude-code-best
4ceeedee3f
fix: 禁用 opus[1m] 自动迁移,尊重用户手动删除 [1m] 后缀的选择
...
迁移逻辑过于激进,用户手动删除 [1m]] 后会被自动加回。
现在将 migrateOpusToOpus1m 改为 no-op,保留用户的手动模型选择。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-06-04 15:27:40 +08:00
claude-code-best
995d3a473c
fix: 修复 anthropic 煞笔的四个 bug ( #352 )
...
* fix: 移除文件编辑前必须先读取的限制
移除 FileEditTool 和 FileWriteTool 中的 "read before edit" 校验,
允许直接编辑未读取过的文件。保留文件修改过期检测。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
* docs: 更新 teach-me 自动写 note 笔记的功能
* fix: 修复 DeepSeek V4 reasoning_content 回传导致的 400 错误
- 扩大模型名称检测范围,匹配所有 deepseek 模型(V4、R1 等)
- 始终保留 thinking blocks 为 reasoning_content 回传给 API
- 移除有 bug 的 turn boundary 剥离逻辑
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
* fix: Opus 4.6/4.7 默认推理 effort 从 medium 改为 high
Pro 和 Max/Team 订阅者的 Opus 默认 effort 之前被降级为 medium,
导致用户感知模型「变笨」。恢复为 high。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
* fix: 移除 thinkingClearLatched sticky-on 机制
空闲超过 1 小时后 thinkingClearLatched 会被触发且永不重置,
导致每轮 API 调用都清除 thinking 历史。完整移除该 latch 机制,
clearAllThinking 硬编码为 false。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
* fix: 移除 numeric_length_anchors 系统指令
删除「工具调用间文字 ≤25 词、最终回复 ≤100 词」的硬性限制。
ablation 测试显示该约束使整体智能下降 3%。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
* fix: 修复测试中 reasoning_content 类型断言
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-04 14:59:49 +08:00
claude-code-best
fe9da6e5b9
fix: 代码审查修复 — 安全、性能和正确性
...
- triggersApi: 添加 assertSubscriptionBaseUrl 防止 OAuth token 泄露
- claude.ts: 修复流式响应 O(n^2) 字符串拼接,改用数组累积
- claude.ts: 移除未使用的 import,动态 import 改为静态 import
- StatusLine: BuiltinStatusLine 仅在 statusLineEnabled 时显示,修复双行问题
- local-vault: 修复 --reveal 标志位置解析 bug
- share: 修复 sk-proj-* OpenAI 密钥未脱敏问题
- store.ts: 临时文件改用同目录创建,避免跨文件系统 rename 失败
- store.ts: 添加空字符串 key 校验
- permissionValidation: 端口正则限制为有效 TCP 范围 0-65535
- 测试 mock 补全: schedule/vault/skill-store 测试文件
- 移除过期的 biome-ignore 注释
Co-Authored-By: glm-5-turbo <zai-org@claude-code-best.win>
2026-06-04 14:59:14 +08:00