CyberScrubber
8b2532a9c1
docs: fix documentation deviations from source code ( #220 )
...
* docs: 修正 docs/conversation 文档与源码的偏差(multi-turn/streaming/the-loop)
- multi-turn: TranscriptWriter→Project 私有类, 会话路径改用 sanitized-cwd,
补充 StoredCostState.lastDuration 字段, 模型切换改为 setModel(),
QueryEngine 状态补全 loadedNestedMemoryPaths/hasHandledOrphanedPermission,
行号改为符号引用
- streaming: STALL_THRESHOLD_MS 10s→30s, 新增 90s 主动空闲看门狗描述,
非流式降级补充 didFallBackToNonStreaming/executeNonStreamingRequest,
行号改为符号引用
- the-loop: 终止条件 7→11, 继续条件重整为 5 组层级结构,
max_output_tokens 拆分 escalate/recovery 子阶段,
prompt-too-long 拆分 collapse_drain/reactive_compact 子策略,
State 类型修正 autoCompactTracking 为可选, 行号改为符号引用
- 全部: 添加 sourceRef 版本锚定(3ec5675 )
* docs: 修正 docs/extensibility 文档与源码的偏差(custom-agents/hooks/skills)
- custom-agents: Verification 模型修正为 inherit, 补充 Plugin Agent 字段限制
(permissionMode/hooks/mcpServers 被安全忽略, isolation 仅 worktree),
加载流程修正为 6 层优先级, 补充 memory snapshot 门控条件
- hooks: 事件数 22→27(补充 Notification), Hook 类型定义位置修正为 3 个文件,
行号改为符号引用, Zod schema 范围修正, 去重键修正为四部分复合键,
registerFrontmatterHooks/clearSessionHooks 区分定义位置和调用位置
- skills: 字段数 17→16, 权限层级 4→5(补充 remote canonical auto-allow),
SAFE_SKILL_PROPERTIES 28→30, skillUsageTracking 路径修正,
行号改为符号引用
- mcp-protocol: 全部验证通过, 无需修改
- 全部: 添加 sourceRef 版本锚定(3ec5675 )
* Revert "docs: 修正 docs/extensibility 文档与源码的偏差(custom-agents/hooks/skills)"
* docs: 修正 docs/extensibility 文档与源码的偏差(hooks/skills/mcp-protocol)
hooks:
- 事件数 22→27(补充 Notification 事件)
- Hook 类型定义位置修正为 3 个文件分布
(schemas/hooks.ts / types/hooks.ts / utils/hooks/sessionHooks.ts)
- Zod schema 引用从硬编码行号改为符号引用
- hookSpecificOutput 表从 6 扩展至 15 个事件
(补全 permissionDecisionReason / PostToolUseFailure / SubagentStart 等)
- 去重键从 pluginRoot\0command 修正为四部分复合键
(pluginRoot\0shell\0command\0ifCondition)
- 全部硬编码行号改为符号引用以避免版本漂移
skills:
- parseSkillFrontmatterFields 字段数 17→16
- SAFE_SKILL_PROPERTIES 属性数 28→30
- checkPermissions 层级 4→5
- 第 2 层描述从"官方市场"修正为"远程 canonical"
mcp-protocol:
- 配置层级从"三级"修正为
"enterprise 独占或合并 user/project/local + plugin + claude.ai"
* docs: 修正 system-prompt.mdx 中 Boundary 章节的层级与可读性
- Boundary 插入条件从 ### 降为 blockquote,不再打断三种分块模式的并列结构
- 表格中 Boundary 缓存策略列补充说明其分割作用
- 新增 Boundary 概念释义(blockquote),解释其分割静态区/动态区以实现全局缓存的设计意图
2026-04-09 17:53:11 +08:00
claude-code-best
2da6514095
feat: 支持自托管的 remote-control-server ( #214 )
...
* feat: 支持自托管的 remote-control-server (#214 )
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
v4
v1.1.0
2026-04-09 17:40:50 +08:00
HitMargin
f17b7c7163
修复使用/help 后再按左右键报错 ( #212 )
...
* 添加status命令里更多模型api介绍
* Fix: /help error
---------
Co-authored-by: HitMargin <hitmargin@qq.com >
2026-04-09 09:18:35 +08:00
claude-code-best
7f694168d0
docs: update contributors
2026-04-08 13:33:42 +00:00
guunergooner
a3505aeec4
feat: Add DeepSeek thinking mode support for OpenAI compatibility layer ( #206 )
...
* feat: Add DeepSeek thinking mode support for OpenAI compatibility layer
- Add DeepSeek reasoning models support (deepseek-reasoner and DeepSeek-V3.2)
- Automatic thinking mode detection based on model name
- Inject thinking parameters in request body (both official API and vLLM formats)
- Preserve reasoning_content in message conversion for tool call iterations
- Extract buildOpenAIRequestBody() for testability
- Treat multimodal inputs (e.g. images) as new turn boundaries
- Fix env var cleanup in tests to prevent state leak
Signed-off-by: guunergooner <tongchao0923@gmail.com >
* docs: update contributors
---------
Signed-off-by: guunergooner <tongchao0923@gmail.com >
Co-authored-by: guunergooner <18660867+guunergooner@users.noreply.github.com >
2026-04-08 21:33:26 +08:00
CyberScrubber
73a18c30db
docs: 完善上下文工程核心定义与架构说明(docs/context) Provider 系统、Boundary 条件及兼容层说明 ( #204 )
...
- system-prompt.mdx: 新增 Provider 概述(1P/3P)与 Boundary 插入条件
- system-prompt.mdx: 新增 OpenAI/Gemini 兼容层章节
- compaction.mdx: 修正 COMPACTABLE_TOOLS 示例并补充 Microcompact 类型
- token-budget.mdx: 补充 3P Provider Token 计数差异说明
2026-04-08 18:09:26 +08:00
claude-code-best
ae6ae6cfb0
docs: update contributors
2026-04-08 10:09:13 +00:00
bonerush
91ee1428fa
Fix bug OpenAI tooluse,Improve error messaging for deferred-loading tools under OpenAI‑compatible models. ( #199 )
...
* fix: reorder tool and user messages for OpenAI API compatibility (#168 )
Fixes #168
OpenAI requires that an assistant message with tool_calls be immediately
followed by tool messages. Previously, convertInternalUserMessage
output user content before tool results, causing 400 errors.
Now tool messages are pushed first.
* fix: 修复OpenAI兼容层中deferred tools处理问题
提交描述:
修复了在使用OpenAI兼容API时TaskCreate工具调用失败的问题。
问题:
- 当使用OpenAI兼容API模型时,调用TaskCreate工具出现"InputValidationError: The required
parameter `subject` is missing"错误
- OpenAI兼容层没有正确处理deferred tools的过滤逻辑,导致工具schema没有被正确发送给模型
修复:
1. 在OpenAI兼容层中添加了与Anthropic API路径一致的deferred tools处理逻辑
2. 导入必要的工具搜索相关函数: isToolSearchEnabled, extractDiscoveredToolNames,
isDeferredTool等
3. 实现工具过滤逻辑:
- 检查工具搜索是否启用
- 构建deferred tools集合
- 过滤工具列表: 只包含非deferred工具或已发现的deferred工具
- 为deferred tools设置deferLoading标志
4. 修正了extractDiscoveredToolNames函数的导入路径错误
影响:
- 解决了TaskCreate工具调用时的参数验证错误
- 确保OpenAI兼容层与Anthropic API路径在处理deferred tools时行为一致
- 支持工具搜索功能在OpenAI兼容模式下正常工作
修改的文件:
- src/services/api/openai/index.ts - 主要修复文件
测试建议:
1. 使用OpenAI兼容API模型时,TaskCreate工具应该可以正常调用
2. 如果工具搜索功能启用,可能需要先使用ToolSearchTool来发现TaskCreate工具
3. 验证工具调用时不再出现"InputValidationError"错误
这个修复确保了当使用OpenAI兼容API(如Ollama、DeepSeek、vLLM等)时,deferred
tools(如TaskCreate)能够被正确处理,解决了工具调用失败的问题。
* fix: 更新工具模式未发送提示,增加OpenAI兼容模型使用指南
2026-04-08 18:08:59 +08:00
Slayer
d52300ff44
完善沙箱文档 ( #195 )
...
* document sandbox design and behavior
* expand sandbox design details
2026-04-08 16:49:24 +08:00
claude-code-best
79b472f9d1
docs: update contributors
2026-04-08 06:06:29 +00:00
bonerush
bdea5a2632
fix: Fix deferred tools handling in OpenAI compatibility layer ( #193 )
...
* fix: reorder tool and user messages for OpenAI API compatibility (#168 )
Fixes #168
OpenAI requires that an assistant message with tool_calls be immediately
followed by tool messages. Previously, convertInternalUserMessage
output user content before tool results, causing 400 errors.
Now tool messages are pushed first.
* fix: 修复OpenAI兼容层中deferred tools处理问题
提交描述:
修复了在使用OpenAI兼容API时TaskCreate工具调用失败的问题。
问题:
- 当使用OpenAI兼容API模型时,调用TaskCreate工具出现"InputValidationError: The required
parameter `subject` is missing"错误
- OpenAI兼容层没有正确处理deferred tools的过滤逻辑,导致工具schema没有被正确发送给模型
修复:
1. 在OpenAI兼容层中添加了与Anthropic API路径一致的deferred tools处理逻辑
2. 导入必要的工具搜索相关函数: isToolSearchEnabled, extractDiscoveredToolNames,
isDeferredTool等
3. 实现工具过滤逻辑:
- 检查工具搜索是否启用
- 构建deferred tools集合
- 过滤工具列表: 只包含非deferred工具或已发现的deferred工具
- 为deferred tools设置deferLoading标志
4. 修正了extractDiscoveredToolNames函数的导入路径错误
影响:
- 解决了TaskCreate工具调用时的参数验证错误
- 确保OpenAI兼容层与Anthropic API路径在处理deferred tools时行为一致
- 支持工具搜索功能在OpenAI兼容模式下正常工作
修改的文件:
- src/services/api/openai/index.ts - 主要修复文件
测试建议:
1. 使用OpenAI兼容API模型时,TaskCreate工具应该可以正常调用
2. 如果工具搜索功能启用,可能需要先使用ToolSearchTool来发现TaskCreate工具
3. 验证工具调用时不再出现"InputValidationError"错误
这个修复确保了当使用OpenAI兼容API(如Ollama、DeepSeek、vLLM等)时,deferred
tools(如TaskCreate)能够被正确处理,解决了工具调用失败的问题。
2026-04-08 12:56:10 +08:00
HitMargin
3683f22529
补全status界面里的信息 ( #189 )
...
* docs: update contributors
* docs: update contributors
* docs: update contributors
* docs: update contributors
* 添加status命令里更多模型api介绍
---------
Co-authored-by: HitMargin <hitmargin@qq.com >
2026-04-08 10:56:46 +08:00
claude-code-best
4e4111be92
Merge branch 'refactor/ink-v2'
2026-04-07 23:56:47 +08:00
claude-code-best
e86573ac2f
fix: 修复 -r 模式下键盘输入无响应
...
两个根因:
1. earlyInput 的 readableHandler 残留在 stdin 上
setAppCallbacks() 在反编译项目中从未被调用,导致
stopCapturingEarlyInput() 是 no-op,readableHandler
在 Ink 的 handleReadable 之前消费所有 stdin 数据。
修复:在 handleSetRawMode(true) 时移除非自身的 readable listeners。
2. React 19 layout effect cleanup 顺序问题
React 19 先运行新树的 layout effects,再清理旧树。
当旧树(showSetupDialog)比新树(launchResumeChooser)
有更多 useInput hooks 时,旧树 cleanup 把
rawModeEnabledCount 降到 0,错误关闭 raw mode。
修复:当 count=0 但仍有活跃 EventEmitter listeners 时恢复 count。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-07 23:54:09 +08:00
claude-code-best
3e1c6bcc3f
Merge branch 'main' into refactor/ink-v2
2026-04-07 22:41:35 +08:00
claude-code-best
cf26c73e39
docs: update contributors
2026-04-07 14:41:24 +00:00
claude-code-best
d6bfc34b71
fix: 修复 ant 模式
2026-04-07 22:40:59 +08:00
claude-code-best
91b9366f64
refactor: 大规模迁移原有组件到 ink 包内
2026-04-07 22:26:45 +08:00
claude-code-best
042e186b0b
docs: update contributors
2026-04-07 11:54:11 +00:00
mcjjin
0d8f494c4b
fix(computer-use): 修复权限检查和应用列表获取的问题 ( #157 )
...
* docs: update contributors
* fix(computer-use): 修复权限检查和应用列表获取的问题
修复 macOS 平台下权限检查的 JXA 回退逻辑,确保在没有原生模块时仍能正确检测权限
改进应用列表获取方式,使用 mdls 获取真实的 bundleId 而非生成伪 ID
* docs: update contributors
* docs: update contributors
* docs: update contributors
---------
Co-authored-by: mcjjin <8590489+mcjjin@users.noreply.github.com >
Co-authored-by: claude-code-best <claude-code-best@proton.me >
Co-authored-by: claude-code-best <272536312+claude-code-best@users.noreply.github.com >
2026-04-07 19:53:59 +08:00
bonerush
5d7e54751a
fix: reorder tool and user messages for OpenAI API compatibility ( #168 ) ( #177 )
...
Fixes #168
OpenAI requires that an assistant message with tool_calls be immediately
followed by tool messages. Previously, convertInternalUserMessage
output user content before tool results, causing 400 errors.
Now tool messages are pushed first.
2026-04-07 19:27:25 +08:00
claude-code-best
52a9cc0414
fix: 修复 ant 模式
2026-04-07 19:15:29 +08:00
claude-code-best
f268b16b31
feat: 将 keybinding 纳入 ink 管辖
2026-04-07 17:51:01 +08:00
claude-code-best
e5782e732c
Revert "Revert "feat: 第一个可以用的 ink 组件抽象 ( #158 )" ( #175 )"
...
This reverts commit 88d4c3ba24 .
2026-04-07 16:17:48 +08:00
claude-code-best
4e1e681a46
fix: 删除 debug 限制
2026-04-07 16:13:15 +08:00
claude-code-best
a7d9a220bf
fix: 修复 main 文件及 "production" 的问题
2026-04-07 16:13:15 +08:00
claude-code-best
dab0783941
docs: update contributors
2026-04-07 07:36:44 +00:00
Dosion
0c53796d15
feat: restore daemon supervisor and remoteControlServer command ( #170 )
...
Reverse-engineer the missing daemon + remoteControlServer implementation
by tracing the call chain from existing code:
- src/daemon/main.ts: restore from stub to full supervisor (spawn/monitor
workers, exponential backoff restart, graceful shutdown)
- src/daemon/workerRegistry.ts: restore from stub to worker dispatcher
(remoteControl kind → runBridgeHeadless())
- src/commands/remoteControlServer/: new slash command /remote-control-server
(alias /rcs) for managing the daemon from REPL
- build.ts + scripts/dev.ts: enable DAEMON feature flag
Both official CLI 2.1.92 and our codebase had the command registered in
commands.ts but the directory and daemon implementation were missing.
The bottom layer (runBridgeHeadless in bridgeMain.ts) was already complete.
Co-authored-by: unraid <local@unraid.local >
2026-04-07 15:36:29 +08:00
guunergooner
4b44047931
fix: prevent iTerm2 terminal response sequences from leaking into REPL input ( #172 )
...
The earlyInput capture's escape sequence detection was too simplistic — it
only checked if the byte after ESC fell in 0x40-0x7E range, treating it as
a terminator. This caused DCS sequences (e.g. XTVERSION `\x1bP>|iTerm2
3.6.4\x1b\\`) and CSI parameter sequences (e.g. DA1 `\x1b[?64;...c`) to
partially leak into the input buffer as `>|iTerm2 3.6.4?64;1;2;4;6;17;18;21;22c`.
Fix by handling each escape sequence type per ECMA-48:
- CSI (`ESC [`): skip parameter + intermediate bytes, then final byte
- DCS/OSC/SOS/PM (`ESC P/]/X/^`): scan to BEL or ST terminator
- Other: keep single-byte skip
Closes #171
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-07 15:11:06 +08:00
claude-code-best
88d4c3ba24
Revert "feat: 第一个可以用的 ink 组件抽象 ( #158 )" ( #175 )
...
This reverts commit c445f43f8d .
2026-04-07 15:05:03 +08:00
claude-code-best
ca0c3265e6
docs: update contributors
2026-04-07 05:59:56 +00:00
uk0
70baa6f7db
feat: add Grok (xAI) API adapter with custom model mapping ( #152 )
...
Add xAI Grok as a new API provider. Reuses OpenAI-compatible message/tool
converters and stream adapter with Grok-specific client and model mapping.
Default model mapping:
opus → grok-4.20-reasoning
sonnet → grok-3-mini-fast
haiku → grok-3-mini-fast
Users can customize mapping via:
- GROK_MODEL env var (override all)
- GROK_MODEL_MAP env var (JSON family map, e.g. {"opus":"grok-4"})
- GROK_DEFAULT_{FAMILY}_MODEL env vars
Activation: CLAUDE_CODE_USE_GROK=1 or modelType: "grok" in settings.json
Also integrates with /provider command for runtime switching.
2026-04-07 09:24:55 +08:00
claude-code-best
dfa7aa1d29
docs: update contributors
2026-04-06 15:57:02 +00:00
claude-code-best
c445f43f8d
feat: 第一个可以用的 ink 组件抽象 ( #158 )
2026-04-06 23:56:45 +08:00
claude-code-best
3ea64eeb0f
docs: update contributors
2026-04-06 14:09:43 +00:00
Dosion
33949ce5a2
Merge pull request #156 from amDosion/feat/ultraplan-enablement
...
feat: enable /ultraplan and harden GrowthBook fallback chain
2026-04-06 22:09:28 +08:00
claude-code-best
35bc4f395d
Merge pull request #153 from amDosion/feat/growthbook-enablement
...
feat: enable GrowthBook local gate defaults for P0/P1 features
2026-04-06 17:18:59 +08:00
claude-code-best
379e40f12a
fix: 回退全屏模式
2026-04-06 17:10:16 +08:00
unraid
1b47333d72
feat: enable GrowthBook local gate defaults for P0/P1 features
...
Add LOCAL_GATE_DEFAULTS mapping in growthbook.ts with 27 feature gate
defaults (25 boolean + 2 object config). Insert local defaults into the
fallback chain of all getter functions so they work regardless of whether
GrowthBook is enabled or disabled:
env overrides → config overrides → in-memory cache → disk cache
→ LOCAL_GATE_DEFAULTS → caller defaultValue
P0 (local): keybindings, streaming tool exec, cron, JSON tools,
ultrathink, explore/plan agents, deep link, immediate model switch
P1 (API): session memory, auto memory, prompt suggestions, brief mode,
verification agent, away summary, auto dream, idle return prompt
Kill switches: 10 gates kept true to prevent remote disable
New compile flags: AGENT_TRIGGERS, ULTRATHINK, BUILTIN_EXPLORE_PLAN_AGENTS,
LODESTONE, EXTRACT_MEMORIES, VERIFICATION_AGENT, KAIROS_BRIEF, AWAY_SUMMARY
Bypass all local defaults: CLAUDE_CODE_DISABLE_LOCAL_GATES=1
2026-04-06 17:00:30 +08:00
claude-code-best
2c660daf2c
docs: 加点 emoji 好看点
2026-04-06 15:07:21 +08:00
claude-code-best
4d62f6312a
docs: update contributors
2026-04-06 06:59:29 +00:00
claude-code-best
dc8ce1bbb0
feat: 添加 interview 模式
2026-04-06 14:59:06 +08:00
claude-code-best
3fff2a0743
feat: 新增 teach-me skill 帮助大家学习
2026-04-06 14:34:44 +08:00
claude-code-best
dd2bd12626
feat: 为 project 级 skill 添加黄色 [local] 标签区分显示
...
在斜杠命令列表和 SkillsMenu 中,对 projectSettings/localSettings
来源的 skill 显示黄色 [local] 标签,方便区分项目级和用户级技能。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-06 14:34:44 +08:00
claude-code-best
ca630488c6
docs: update contributors
2026-04-06 06:18:59 +00:00
claude-code-best
f05a6c9fdd
Merge pull request #129 from 2228293026/main
...
provider (api) 指令查询/切换模型api类型 分离OpenAl和Anthropic模型的环境变量 分离 Gemini和Anthropic环境变量 通过github action更新contributors
2026-04-06 14:18:47 +08:00
HitMargin
767d6fae06
Merge branch 'claude-code-best:main' into main
2026-04-06 13:50:34 +08:00
claude-code-best
6e598fc4c9
Merge pull request #149 from uk0/fix/openai-tool-compat
...
fix: OpenAI adapter tool calling compatibility
2026-04-06 13:48:36 +08:00
uk0
e88dcb2f9e
fix: OpenAI adapter tool calling compatibility
...
Two fixes for OpenAI-compatible provider compatibility:
1. Sanitize JSON Schema `const` → `enum` in tool parameters.
Many OpenAI-compatible endpoints (Ollama, DeepSeek, vLLM, etc.)
do not support the `const` keyword in JSON Schema. Recursively
convert `const: value` to `enum: [value]` which is semantically
equivalent.
2. Force stop_reason to `tool_use` when tool_calls are present.
Some backends incorrectly return finish_reason "stop" even when
the response contains tool_calls. Without this fix, the query
loop treats the response as a normal end_turn and never executes
the requested tools.
2026-04-06 13:31:28 +08:00
2228293026
7d88b4df97
docs: update contributors
2026-04-06 05:02:32 +00:00