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
HitMargin
fec8ec6abd
fix: correct contributors link in README
2026-04-06 13:02:09 +08:00
HitMargin
5bf3c93895
feat: add contributors auto-update workflow
...
- Add GitHub Actions workflow to auto-generate contributors.svg
- Update README to use local contributors.svg file
- Use dynamic repository detection for forked repos
🤖 Generated with Claude Code
2026-04-06 12:55:19 +08:00
HitMargin
a15340f555
Merge branch 'claude-code-best:main' into main
2026-04-06 12:30:53 +08:00
HitMargin
eb62b4704e
e
2026-04-06 12:23:59 +08:00
HitMargin
81ecd82b65
Test
2026-04-06 11:53:11 +08:00
claude-code-best
919011a372
fix: 修复 login 表单的 enter 覆盖问题
2026-04-06 11:28:01 +08:00
claude-code-best
3923af4834
fix: 修复 login 面板的左右切换能力
2026-04-06 11:23:49 +08:00