claude-code-best
3e1c6bcc3f
Merge branch 'main' into refactor/ink-v2
2026-04-07 22:41:35 +08: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
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
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
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
c445f43f8d
feat: 第一个可以用的 ink 组件抽象 ( #158 )
2026-04-06 23:56:45 +08: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
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
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
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
HitMargin
14dc54a093
gemini模型环境变量分离 provider指令支持切换gemini
2026-04-06 11:23:05 +08:00
claude-code-best
fc0bebf6b3
fix MACRO fallback ( #146 )
2026-04-06 10:54:35 +08:00
claude-code-best
eca1acc662
feat: 支持 openai 图片兼容
2026-04-06 10:48:27 +08:00
HitMargin
6f80e96fee
fix: make modelType take precedence over all env vars in getAPIProvider
2026-04-06 10:38:16 +08:00
HitMargin
a7a9659ddd
解决报错
2026-04-06 10:34:11 +08:00
HitMargin
26245e0bd0
Merge branch 'main' into main
2026-04-06 10:21:02 +08:00
uk0
cd70c1b7fd
fix MACRO fallback
2026-04-06 10:15:56 +08:00
claude-code-best
ced5080019
feat: 开启鼠标点击功能
2026-04-06 10:11:03 +08:00
yi7503
522a1a366d
feat: enable Computer Use on Windows and Linux ( #145 )
...
Remove macOS-only guards so Computer Use works cross-platform:
- main.tsx: allow CHICAGO_MCP on any known platform (not just macos)
- swiftLoader.ts: remove darwin-only throw, let the backend handle it
- computer-use-input: dispatch to darwin/win32/linux backends
- computer-use-swift: rename loadDarwin→loadBackend, dispatch all platforms
Co-authored-by: yi7503 <yi7503@gmail.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-06 09:57:55 +08:00
SaltedFish555
0da5ec09e8
feat: 添加gemini协议适配 ( #125 )
...
* feat: 添加gemini协议适配
* Remove unrelated local files from Gemini PR
2026-04-06 09:55:20 +08:00
HitMargin
1f8f90eb62
Merge branch 'claude-code-best:main' into main
2026-04-05 22:18:21 +08:00
claude-code-best
2b84333913
Merge pull request #137 from amDosion/feat/computer-use-windows
...
feat: Computer Use v2 — 跨平台 Executor + Python Bridge + GUI 无障碍
2026-04-05 21:02:32 +08:00
HitMargin
2f95d1a395
Merge branch 'claude-code-best:main' into main
2026-04-05 17:02:07 +08:00
unraid
c17edcb12e
feat: Computer Use — Windows 跨平台支持 + GUI 无障碍增强 + Python Bridge
...
三平台 Computer Use (macOS + Windows + Linux),Windows 专项增强。
- MCP server: toolCalls/tools/executor/mcpServer 等 12 文件完整实现
- 平台抽象层: platforms/{win32,darwin,linux}.ts
- 跨平台 executor: executorCrossPlatform.ts
- CHICAGO_MCP + VOICE_MODE feature flags 启用
- windowMessage.ts: SendMessageW (WM_CHAR Unicode + 剪贴板粘贴)
- windowBorder.ts: 4 叠加窗口边框 (30fps 跟踪)
- uiAutomation.ts: UI Automation 元素树/点击/写值
- accessibilitySnapshot.ts: 无障碍快照 → 模型感知 GUI
- bridge.py + bridgeClient.ts: Python 长驻进程 (替代 per-call PS)
- window_management: min/max/restore/close/focus (Win32 API)
- click_element / type_into_element: 按名称操作 (无需坐标)
- 截图自动附带 Accessibility Snapshot
- 17 种方法, stdin/stdout JSON 通信
- 窗口枚举 1.5ms vs PS 500ms, 截图 360ms vs PS 800ms
- 依赖: mss + Pillow + pywinauto
2026-04-05 15:47:20 +08:00
HitMargin
a50971f26f
ConsoleOAuthFlow: 添加 base_url URL 格式验证
2026-04-05 14:17:40 +08:00
HitMargin
41f733a60f
验证 OAuth 流程中的 base_url 防止无效 URL
2026-04-05 13:58:50 +08:00
HitMargin
282f2f4367
删除误导注释
2026-04-05 13:37:12 +08:00
HitMargin
1e53943e06
修复小问题
2026-04-05 13:29:52 +08:00
HitMargin
a0141c1ba5
ConsoleOAuthFlow格式化恢复
2026-04-05 11:59:48 +08:00
HitMargin
eb6fbe518e
分离OpenAI和Anthropic模型的环境变量
2026-04-05 03:31:06 +08:00
xutianyi
354c11f035
fix: improve size calculation for LRU cache and handle nested object content
2026-04-05 01:43:18 +08:00
HitMargin
ec5dfed19e
fix provider指令切换模型类型
2026-04-05 00:53:04 +08:00
HitMargin
0c9fd37e01
Merge branch 'claude-code-best:main' into main
2026-04-04 23:30:38 +08:00
claude-code-best
5b1a52b8e0
更新大量 tsx 原始文件; 已经迁移 login panel; 部分 ( #121 )
...
* style(B1-1): 格式化 ink/buddy/cli/context/screens/tasks/services/keybindings/state (43 files)
纯格式化:移除分号、React Compiler import、import 多行展开。
修复了 Box.tsx 和 ScrollBox.tsx 中无效的 global.d.ts import。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* style(B1-2): 格式化 commands (79 files)
纯格式化:移除分号、React Compiler import、import 多行展开。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* style(B1-3): 格式化 components/messages,permissions,mcp,sandbox,shell (104 files)
纯格式化:移除分号、React Compiler import、import 多行展开。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* style(B1-4): 格式化 components/PromptInput,FeedbackSurvey,tasks,agents,skills,design-system,wizard (73 files)
纯格式化:移除分号、React Compiler import、import 多行展开。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* style(B1-5): 格式化 components其余 + hooks + tools (232 files)
纯格式化:移除分号、React Compiler import、import 多行展开。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* style(B1-6): 格式化 main/entrypoints/utils/moreright (21 files)
纯格式化:移除分号、React Compiler import、import 多行展开。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* docs: 更新 README,新增 Run.ps1/TODO.md,删除 V6.md
- README.md: 大幅重写,更详细版本历史和配置示例
- Run.ps1: 新增 Windows 启动脚本
- TODO.md: 新增包完成清单
- V6.md: 删除(架构重构规划已不适用)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix: 修复以前的问题
* fix: 修复 login 面板的问题
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-04 23:24:27 +08:00
HitMargin
b5d1dbc9d0
provider指令切换模型类型
2026-04-04 23:15:49 +08:00
claude-code-best
e8f417e59f
Merge remote-tracking branch 'origin/feature/computer-use/mac-support'
2026-04-04 16:42:51 +08:00
claude-code-best
f83198e506
feat: 删除 npm deprecation-warning 的黄色指引
2026-04-04 16:40:10 +08:00
claude-code-best
462fe69d80
fix: 修复 openai 的 cost 计算问题
2026-04-04 16:37:50 +08:00
claude-code-best
ab7556e355
feat: auto dream 开启
2026-04-04 16:28:09 +08:00
claude-code-best
765569b3cf
feat: 更新 Computer Use 用户指南,添加 macOS 和 Windows 支持文档链接
2026-04-04 12:24:11 +08:00
claude-code-best
ad1f90a00e
feat: 恢复 mac 版本的 Computer Use
2026-04-04 11:36:43 +08:00
HitMargin
6fefff2ef2
claude-code with OpenAI mode fix ( #102 )
...
Co-authored-by: HitMargin <hitmargin@qq.com>
2026-04-04 10:54:13 +08:00
Dosion
913702d97e
feat: built-in status line with usage quota display ( #89 )
...
* feat: built-in status line with usage quota display
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 00:15:23 +08:00
claude-code-best
86d2c8f9e8
Merge remote-tracking branch 'amDosion/feat/computer-use-windows'
2026-04-04 00:12:52 +08:00
unraid
ca086b045a
fix: resolve Windows Computer Use request_access and screenshot errors
...
Two root causes fixed:
1. swiftLoader.ts: require('@ant/computer-use-swift') returns a module
with { ComputerUseAPI } class, not an instance. macOS native .node
exports a plain object. Fixed by detecting class export and calling
new ComputerUseAPI().
2. executor.ts resolvePrepareCapture: toolCalls.ts expects result to have
{ hidden: string[], displayId: number } fields. Our ComputerUseAPI
returns { base64, width, height } only. Fixed by backfilling missing
fields with defaults.
Verified: request_access → screenshot → left_click all work on Windows.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 00:09:51 +08:00
claude-code-best
8cb1a15ca5
Merge branch 'pr/amDosion/93'
2026-04-04 00:00:40 +08:00
unraid
3707c3c0ba
feat: Windows Computer Use enhancement — PrintWindow, UI Automation, OCR
...
New Windows-native capabilities:
- windowCapture.ts: PrintWindow API for per-window screenshot (works on
occluded/background windows)
- windowEnum.ts: EnumWindows for precise window enumeration with HWND
- uiAutomation.ts: IUIAutomation for UI tree reading, element clicking,
text input, and coordinate-based element identification
- ocr.ts: Windows.Media.Ocr for screen text recognition (en-US + zh-CN)
Updated win32.ts backend to use EnumWindows for listRunning() and added
captureWindowTarget() for window-specific screenshots.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 00:00:02 +08:00
claude-code-best
4c0b2aaedb
feat: 绕过 Claude Code 内的 claude 的账号需要; 但是浏览器扩展还是要权限
2026-04-03 23:57:27 +08:00
JiayuWang(王嘉宇)
fdb2442ad4
test: add coverage for toRelativePath and getDirectoryForPath ( #95 )
...
These two exported functions in src/utils/path.ts lacked unit tests.
toRelativePath wraps Node's path.relative() and keeps the absolute
path when the result would start with '..' (i.e. the target is outside
the CWD). Four tests cover: child-of-cwd, outside-cwd, cwd-itself,
and the type-safety invariant.
getDirectoryForPath uses statSync to distinguish directories from files,
falling back to dirname() for non-existent paths and bypassing the
filesystem for UNC paths (NTLM credential-leak prevention). Three tests
cover: existing directory, known file, and non-existent path.
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-03 23:36:19 +08:00
claude-code-best
00b044e8b2
支持 OpenAI Chat 兼容协议 ( #99 )
...
* feat: 完成 openai 接口兼容
* feat: 完成 openai 协议兼容
* fix: 修复测试用例
2026-04-03 23:33:17 +08:00
unraid
e3264a1691
feat: enable Computer Use with macOS + Windows + Linux support
...
Phase 1: Replace @ant/computer-use-mcp stub (12 files, 6517 lines).
Phase 2: Remove 8 macOS-only guards in src/:
- main.tsx: remove getPlatform()==='macos' check
- swiftLoader.ts: remove darwin-only throw
- executor.ts: extend platform guard, clipboard dispatch, paste key
- drainRunLoop.ts: skip CFRunLoop pump on non-darwin
- escHotkey.ts: non-darwin returns false (Ctrl+C fallback)
- hostAdapter.ts: non-darwin permissions granted
- common.ts: dynamic platform + screenshotFiltering
- gates.ts: enabled:true, subscription check removed
Phase 3: Add Linux backends (xdotool/scrot/xrandr/wmctrl):
- computer-use-input/backends/linux.ts (173 lines)
- computer-use-swift/backends/linux.ts (278 lines)
Verified on Windows x64: mouse, screenshot, displays, foreground app.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 23:17:14 +08:00
JiayuWang(王嘉宇)
465e9f01c6
test: add coverage for formatRelativeTimeAgo and formatLogMetadata ( #94 )
...
These two exported functions in src/utils/format.ts had no test
coverage. formatRelativeTimeAgo wraps formatRelativeTime and forces
numeric:'always' for past dates; formatLogMetadata assembles parts
(time, branch, size/count, tag, agentSetting, prNumber) into a
' · '-separated string.
Added 8 tests for formatRelativeTimeAgo covering past dates, future
dates, equal-to-now, and the no-'ago'-for-future invariant. Added
9 tests for formatLogMetadata covering all optional fields and the
separator format.
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-03 22:17:58 +08:00
claude-code-best
2cc626c1c3
fix: 修复测试文件
2026-04-03 20:11:09 +08:00
claude-code-best
5a7d06fe99
refactor(buddy): align companion system with official CLI ( #82 )
...
* refactor(buddy): align companion system with official CLI
## Summary
Reverse-engineered the official Claude Code CLI (v2.1.91) buddy/companion
system and aligned our implementation to match.
## Changes (7 files)
### Added
- `src/buddy/CompanionCard.tsx` (+109)
JSX bordered card matching official vc8: rarity header, colored sprite,
name, personality, 10-bar stats, last reaction in nested border.
- `src/buddy/companionReact.ts` (+156)
Reaction system matching official ZUK+Dc8: 45s rate limiting, @-mention
detection, transcript builder (12 msgs, 5000 chars), POST buddy_react API.
### Modified
- `src/commands/buddy/index.ts`
type: local -> local-jsx, description/argumentHint/immediate/isHidden.
- `src/commands/buddy/buddy.ts`
LocalCommandCall -> LocalJSXCommandCall signature (onDone, context, args).
Removed mute/unmute/rehatch (official uses off/on only).
/buddy show returns CompanionCard JSX instead of plain text.
Pet auto-unmutes. companionMuted writes globalConfig (matches UI read source).
- `src/screens/REPL.tsx` (line 2808)
globalThis.fireCompanionObserver -> import triggerCompanionReaction.
- `src/state/AppStateStore.ts` — comment fix.
- `src/types/global.d.ts` — removed fireCompanionObserver declaration.
## Data flow (verified consistent)
- companionMuted: saveGlobalConfig() <-> getGlobalConfig() (6 read sites)
- companionReaction: setAppState() <-> useAppState() (4 sites)
- companionPetAt: setAppState() <-> useAppState() (2 sites)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* fix(buddy): address CodeRabbit review findings
- buddy.ts: return type Promise<null> → Promise<React.ReactNode>
to match LocalJSXCommandCall interface (CompanionCard path returns
ReactElement, not null).
- CompanionCard.tsx: clamp stat value to 0..100 before .repeat()
to prevent negative count runtime error on out-of-range values.
Import path alias suggestions (src/ vs ../) dismissed — project
convention uses relative paths (verified against color.ts, help.ts).
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* fix(buddy): address second round CodeRabbit findings
- buddy.ts:105: remove unsafe (context as any).messages cast.
ToolUseContext already declares messages: Message[] at Tool.ts:250,
so context.messages is properly typed. Other commands (feedback,
copy, export) access it the same way without cast.
- companionReact.ts:154: wrap resp.json() in try/catch for defensive
JSON parsing. Malformed 200 responses now return null instead of
propagating to the outer catch.
Rate-limit timing (set before API call) kept as-is — matches official
ZUK pattern: prevents retry-storm on transient failures.
src/ path alias suggestions dismissed — project uses relative paths.
Auto-unmute on /buddy view kept — matches official behavior.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: unraid <local@unraid.local>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 17:22:54 +08:00
claude-code-best
cf44cc32e4
Merge branch 'pr/amDosion/60'
2026-04-03 17:21:09 +08:00
unraid
e74d1f0836
fix(buddy): address second round CodeRabbit findings
...
- buddy.ts:105: remove unsafe (context as any).messages cast.
ToolUseContext already declares messages: Message[] at Tool.ts:250,
so context.messages is properly typed. Other commands (feedback,
copy, export) access it the same way without cast.
- companionReact.ts:154: wrap resp.json() in try/catch for defensive
JSON parsing. Malformed 200 responses now return null instead of
propagating to the outer catch.
Rate-limit timing (set before API call) kept as-is — matches official
ZUK pattern: prevents retry-storm on transient failures.
src/ path alias suggestions dismissed — project uses relative paths.
Auto-unmute on /buddy view kept — matches official behavior.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 17:16:16 +08:00
unraid
7d4adce1b6
fix(buddy): address CodeRabbit review findings
...
- buddy.ts: return type Promise<null> → Promise<React.ReactNode>
to match LocalJSXCommandCall interface (CompanionCard path returns
ReactElement, not null).
- CompanionCard.tsx: clamp stat value to 0..100 before .repeat()
to prevent negative count runtime error on out-of-range values.
Import path alias suggestions (src/ vs ../) dismissed — project
convention uses relative paths (verified against color.ts, help.ts).
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 17:00:01 +08:00
unraid
991119491c
refactor(buddy): align companion system with official CLI
...
## Summary
Reverse-engineered the official Claude Code CLI (v2.1.91) buddy/companion
system and aligned our implementation to match.
## Changes (7 files)
### Added
- `src/buddy/CompanionCard.tsx` (+109)
JSX bordered card matching official vc8: rarity header, colored sprite,
name, personality, 10-bar stats, last reaction in nested border.
- `src/buddy/companionReact.ts` (+156)
Reaction system matching official ZUK+Dc8: 45s rate limiting, @-mention
detection, transcript builder (12 msgs, 5000 chars), POST buddy_react API.
### Modified
- `src/commands/buddy/index.ts`
type: local -> local-jsx, description/argumentHint/immediate/isHidden.
- `src/commands/buddy/buddy.ts`
LocalCommandCall -> LocalJSXCommandCall signature (onDone, context, args).
Removed mute/unmute/rehatch (official uses off/on only).
/buddy show returns CompanionCard JSX instead of plain text.
Pet auto-unmutes. companionMuted writes globalConfig (matches UI read source).
- `src/screens/REPL.tsx` (line 2808)
globalThis.fireCompanionObserver -> import triggerCompanionReaction.
- `src/state/AppStateStore.ts` — comment fix.
- `src/types/global.d.ts` — removed fireCompanionObserver declaration.
## Data flow (verified consistent)
- companionMuted: saveGlobalConfig() <-> getGlobalConfig() (6 read sites)
- companionReaction: setAppState() <-> useAppState() (4 sites)
- companionPetAt: setAppState() <-> useAppState() (2 sites)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 16:36:22 +08:00
claude-code-best
a7604f6591
feat: /login 命令新增自定义 anthropic 终端登陆
2026-04-03 14:22:47 +08:00
claude-code-best
a02a9fc4c2
fix: 修复定义导入缺失的问题
2026-04-03 14:14:35 +08:00
claude-code-best
e944633dd8
fix: 修复 ERROR getAntModels is not defined
...
Fixes #69
2026-04-03 11:56:49 +08:00
claude-code-best
e74c009e02
feat: 添加 GrowthBook 自定义服务器适配器
...
通过 CLAUDE_GB_ADAPTER_URL/KEY 环境变量连接自定义 GrowthBook 实例,
无配置时所有 feature 读取返回代码默认值。支持 GrowthBook Cloud(非 remoteEval),
含完整文档和 feature key 列表。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-03 10:37:15 +08:00
claude-code-best
78144b4dba
feat: 关闭 Datadog 日志发送
2026-04-03 09:49:59 +08:00
claude-code-best
e32c159f35
feat: 关闭自动更新
2026-04-03 09:39:32 +08:00
claude-code-best
119518599e
feat: 更新 sentry 错误上报
2026-04-03 09:39:25 +08:00
unraid
e784f231d4
fix: validate and encode target sessionId in peer messages
...
- Trim and normalize target before use
- Validate with validateBridgeId allowlist (same as bridgeApi.ts)
- URL-encode compatTarget to prevent path traversal/injection
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 04:23:32 +08:00
unraid
8645d37b25
fix: add Authorization header to peer message requests
...
getBridgeAccessToken() provides the OAuth Bearer token, matching
the auth pattern used by bridgeApi.ts and codeSessionApi.ts.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 04:15:24 +08:00
unraid
1d38eae536
fix: address CodeRabbit review findings
...
- webhookSanitizer: redact before truncate to avoid split secrets at boundary
- webhookSanitizer: return safe placeholder on error instead of raw content
- peerSessions: use discriminated union return type for type safety
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 04:08:04 +08:00
unraid
74e51e7e73
feat: enable Remote Control (BRIDGE_MODE) with stub completions
...
- Add BRIDGE_MODE to DEFAULT_FEATURES in dev.ts
- Implement peerSessions.ts: cross-session messaging via bridge API
- Implement webhookSanitizer.ts: redact secrets from webhook payloads
- Replace any stubs in controlTypes.ts with Zod schema-inferred types
- Fix tengu_bridge_system_init default to true for app "active" status
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 03:50:36 +08:00
claude-code-best
e48da3956c
feat: 修正 web search 工具
2026-04-03 00:47:37 +08:00
claude-code-best
d04e00fc2c
feat: 调整预先检查的代码
2026-04-02 23:00:48 +08:00
claude-code-best
c252294dd7
feat: 移除反蒸馏代码
2026-04-02 22:56:23 +08:00
claude-code-best
4337b82e6c
Merge branch 'pr/programming-pupil/33'
2026-04-02 21:41:55 +08:00
claude-code-best
7dfbcd0e79
feat: 更新 buddy 的一些功能
2026-04-02 21:41:19 +08:00
claude-code-best
70f32e25f3
Merge branch 'main' into pr/smallflyingpig/36
...
# Conflicts:
# src/entrypoints/cli.tsx
2026-04-02 21:25:53 +08:00
claude-code-best
87fdd455cc
chore: 删除调试代码
2026-04-02 21:23:36 +08:00
claude-code-best
991ccc673c
chore: 删除 src 下面的 src
2026-04-02 21:22:31 +08:00
claude-code-best
be82b71c3e
feat: 补全 auto mode 分类器 prompt 模板,支持 FEATURE_* 环境变量注入
...
- 重建 yolo-classifier-prompts/ 三个缺失的 prompt 文件
- dev.ts/build.ts 扫描 FEATURE_* 环境变量注入 Bun --feature
- AUTO_MODE_ENABLED_DEFAULT 由 feature flag 决定,开 feature 即开 auto mode
- 补充 docs/safety/auto-mode.mdx prompt 模板章节
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-02 21:18:39 +08:00
claude-code-best
68ccf28be8
feat: 尝试修复 auto mode
2026-04-02 20:57:52 +08:00
claude-code-best
4ab4506de2
fix: 修复 USER_TYPE=ant 时 TUI 无法启动的问题
...
反编译版本中 global.d.ts 声明的全局函数运行时未定义,
通过显式 import、stub 组件和全局 polyfill 修复。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-02 20:31:04 +08:00
claude-code-best
ce29527a67
test: 添加一大堆测试文件
2026-04-02 20:28:08 +08:00
claude-code-best
ac1f02958c
fix: 批量修正 external 字面量
2026-04-02 17:01:39 +08:00
claude-code-best
799dacc407
test: 新增一波测试文件
2026-04-02 16:21:24 +08:00
claude-code-best
8697c91668
feat: 完成测试 16-17
2026-04-02 16:03:20 +08:00
claude-code-best
006ad97fbb
test: 新增测试代码文件
2026-04-02 14:44:56 +08:00
Jiguo Li
e815002f96
Merge branch 'main' into main
2026-04-02 13:35:28 +08:00
编程界的小学生
2e4d6e2122
Update hooks.ts
2026-04-02 11:12:36 +08:00
Jiguo Li
4d1bc87eb4
Merge branch 'claude-code-best:main' into main
2026-04-02 10:12:49 +08:00
claude-code-best
4f323efb61
test: Phase 5 — 添加 12 个测试文件 (+209 tests, 1177 total)
...
新增覆盖: effort, tokenBudget, displayTags, taggedId,
controlMessageCompat, MCP normalization/envExpansion,
gitConfigParser, formatBriefTimestamp, hyperlink, windowsPaths, notebook
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-02 10:11:43 +08:00
claude-code-best
28e40ddc67
refactor: 用 Bun 原生 define 替换 cli.tsx 中的 globalThis 注入
...
- 删除 cli.tsx 顶部的 globalThis.MACRO / BUILD_* / feature polyfill
- 新增 scripts/defines.ts 作为 MACRO define 映射的单一来源
- 新增 scripts/dev.ts,通过 bun run -d 在转译时注入 MACRO 常量
- build.ts 引用 getMacroDefines() 实现构建时内联
- 清理 global.d.ts (移除 BUILD_*, MACRO 函数声明)
- 55 个 MACRO 消费文件零改动
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-02 09:51:48 +08:00
claude-code-best
21ac9e441f
test: Phase 2-4 — 添加 12 个测试文件 (+321 tests, 968 total)
...
Phase 2 (轻 Mock): envUtils, sleep/sequential, memoize, groupToolUses, dangerousPatterns, outputLimits
Phase 3 (补全): zodToJsonSchema, PermissionMode, envValidation
Phase 4 (工具模块): mcpStringUtils, destructiveCommandWarning, commandSemantics
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-02 09:29:01 +08:00
claude-code-best
acfaac5f14
test: Phase 1 — 添加 8 个纯函数测试文件 (+134 tests)
...
- errors.test.ts: 28 tests (isAbortError, toError, errorMessage, getErrnoCode, isFsInaccessible, classifyAxiosError 等)
- shellRuleMatching.test.ts: 22 tests (permissionRuleExtractPrefix, hasWildcards, matchWildcardPattern, parsePermissionRule 等)
- argumentSubstitution.test.ts: 18 tests (parseArguments, parseArgumentNames, generateProgressiveArgumentHint, substituteArguments)
- CircularBuffer.test.ts: 12 tests (add, addAll, getRecent, toArray, clear, length)
- sanitization.test.ts: 14 tests (partiallySanitizeUnicode, recursivelySanitizeUnicode)
- slashCommandParsing.test.ts: 8 tests (parseSlashCommand)
- contentArray.test.ts: 6 tests (insertBlockAfterToolResults)
- objectGroupBy.test.ts: 5 tests (objectGroupBy)
总计:781 tests / 40 files
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-02 08:50:29 +08:00
claude-code-best
a28a44f9f7
test: 添加 FileEditTool/permissions/filterToolsByDenyRules 测试
...
- FileEditTool/utils.test.ts: 24 tests (normalizeQuotes, stripTrailingWhitespace, findActualString, preserveQuoteStyle, applyEditToFile)
- permissions/permissions.test.ts: 13 tests (getDenyRuleForTool, getAskRuleForTool, getDenyRuleForAgent, filterDeniedAgents)
- tools.test.ts: 扩展 5 tests (filterToolsByDenyRules 过滤逻辑)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-02 07:36:50 +08:00
claude-code-best
43af260322
test: 添加 json/truncate/path/tokens 模块测试
...
- json.test.ts: 27 tests (safeParseJSON, safeParseJSONC, parseJSONL, addItemToJSONCArray)
- truncate.test.ts: 24 tests (truncateToWidth, truncateStartToWidth, truncatePathMiddle, truncate, wrapText)
- path.test.ts: 15 tests (containsPathTraversal, normalizePathForConfigKey)
- tokens.test.ts: 22 tests (getTokenCountFromUsage, getTokenUsage, tokenCountFromLastAPIResponse, etc.)
使用 mock.module() 切断 log.ts/tokenEstimation.ts/slowOperations.ts 重依赖链
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-01 23:56:37 +08:00
claude-code-best
c57950e15e
test: 添加消息处理单元测试 (测试计划 06)
...
为消息创建、查询、文本提取、规范化等函数添加 56 个测试用例,
覆盖 createAssistantMessage、createUserMessage、isSyntheticMessage、
extractTag、isNotEmptyMessage、normalizeMessages 等核心功能。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-01 22:43:31 +08:00
claude-code-best
183421361e
test: 添加配置与设置系统单元测试 (测试计划 09)
...
为 SettingsSchema、PermissionsSchema、AllowedMcpServerEntrySchema
验证,MCP 类型守卫,设置常量函数,以及 validation 工具函数添加
62 个测试用例。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-01 22:39:21 +08:00
claude-code-best
3df4b95ff9
test: 添加 Git 工具函数单元测试 (测试计划 08)
...
为 normalizeGitRemoteUrl 添加 18 个测试用例,覆盖 SSH、HTTPS、
ssh://、CCR 代理 URL 格式、大小写规范化及边界条件。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-01 22:30:45 +08:00
claude-code-best
f81a767f83
test: 添加 Cron 调度单元测试 (测试计划 07)
...
覆盖 parseCronExpression、computeNextCronRun、cronToHuman,
包含有效/无效表达式、字段范围验证、下次运行计算、人类可读描述,
共 38 个测试用例。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-01 22:23:26 +08:00
claude-code-best
25839ab454
test: 添加模型路由单元测试 (测试计划 05)
...
覆盖 isModelAlias、isModelFamilyAlias、getAPIProvider、
isFirstPartyAnthropicBaseUrl、firstPartyNameToCanonical,共 40 个测试用例。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-01 22:20:25 +08:00
claude-code-best
583d04331b
test: 添加权限规则解析器单元测试 (测试计划 04)
...
覆盖 escapeRuleContent、unescapeRuleContent、permissionRuleValueFromString、
permissionRuleValueToString、normalizeLegacyToolName,共 25 个测试用例。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-01 22:18:00 +08:00
claude-code-best
c4344c4df0
test: 添加 Context 构建单元测试 (测试计划 03)
...
覆盖 stripHtmlComments、isMemoryFilePath、getLargeMemoryFiles、
buildEffectiveSystemPrompt 等函数,共 25 个测试用例全部通过。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-01 22:14:23 +08:00
claude-code-best
cad6409bfe
test: 添加 Utils 纯函数单元测试 (测试计划 02)
...
覆盖 xml, hash, stringUtils, semver, uuid, format, frontmatterParser,
file, glob, diff 共 10 个模块的纯函数测试。
json.ts 因模块加载链路过重暂跳过。
共 190 个测试用例(含已有 array/set)全部通过。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-01 22:03:02 +08:00
claude-code-best
67baea3c7f
test: 添加 Tool 系统单元测试 (测试计划 01)
...
覆盖 buildTool、toolMatchesName、findToolByName、getEmptyToolPermissionContext、
filterToolProgressMessages、parseToolPreset、parseGitCommitId、detectGitOperation
共 46 个测试用例全部通过。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-01 21:32:45 +08:00
Jiguo Li
8e9933ee59
Merge branch 'claude-code-best:main' into main
2026-04-01 19:30:34 +08:00
lijiguo
f71530a10c
修复buddy rehatch的问题
2026-04-01 18:18:23 +08:00
lijiguo
c57ad656ad
支持buddy命令
2026-04-01 17:55:35 +08:00
claude-code-best
221fb6eb05
fix: 修复 @ typeahead 文件搜索无结果的问题
...
execa 新版将 signal 选项重命名为 cancelSignal,导致 execFileNoThrowWithCwd
调用 git ls-files 时抛出 TypeError,文件索引始终为空。同时改进了
FileIndex 的模糊匹配算法,从多个词边界起始位置评分取最优,提升搜索排名质量。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-01 17:11:09 +08:00
claude-code-best
a889ed8402
fix: 移除 Settings 中未定义的 Gates 引用,修复 config 命令报错
...
Gates 是 Anthropic 内部组件,反编译版本中不存在,运行时引用导致 ReferenceError。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-01 15:40:00 +08:00
claude-code-best
2934f30084
fix: 彻底移除 /loop 及 cron 工具的 feature('AGENT_TRIGGERS') gate
...
上次提交仅移除了 isKairosCronEnabled 中的 gate,但 /loop 整条链路
仍被 feature('AGENT_TRIGGERS') 拦截导致无法使用:
- skills/bundled/index.ts: registerLoopSkill() 未被调用
- tools.ts: CronCreate/Delete/List 工具未加载
- constants/tools.ts: cron 工具名未加入 teammate 工具列表
- screens/REPL.tsx: useScheduledTasks hook 被跳过
- cli/print.ts: pipe 模式 cron 调度器未初始化
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-01 11:57:16 +08:00
claude-code-best
33fe4940e1
fix: 启用 /loop 命令,移除 feature('AGENT_TRIGGERS') gate
...
isKairosCronEnabled() 依赖 feature('AGENT_TRIGGERS'),在反编译版本中
feature() 始终返回 false,导致 /loop skill 被禁用。简化为仅检查
CLAUDE_CODE_DISABLE_CRON 环境变量。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-01 11:53:32 +08:00
claude-code-best
b32dd4549d
fix: 修复构建问题
2026-04-01 09:58:26 +08:00
claude-code-best
e443a8fa51
feat: 搭建单元测试基础设施 — Bun test runner + 示例测试
...
添加 bunfig.toml 配置、test script,以及三组示例测试:
- src/utils/array.ts (intersperse, count, uniq)
- src/utils/set.ts (difference, intersects, every, union)
- packages/color-diff-napi (ansi256FromRgb, colorToEscape, detectLanguage 等)
41 tests, 0 failures.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-01 02:08:38 +08:00
claude-code-best
7e15974be9
feat: 实现 4 个 NAPI 包 — modifiers/image-processor/audio-capture/url-handler
...
- modifiers-napi: 使用 Bun FFI 调用 macOS CGEventSourceFlagsState 检测修饰键
- image-processor-napi: 集成 sharp 库,macOS 剪贴板图像读取 (osascript)
- audio-capture-napi: 基于 SoX/arecord 的跨平台音频录制
- url-handler-napi: 完善函数签名(保持 null fallback)
- 修复 image-processor 类型兼容性问题
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-01 01:07:42 +08:00
claude-code-best
fac9341e73
feat: 全面清理类型错误 — tsc 零错误,any 标注全部消除
...
- 修复所有 33 个原始 tsc 编译错误(ink JSX 声明、类型不匹配、null check 等)
- 清理 176 处 `: any` 类型标注,全部替换为具体推断类型
- 修复清理过程中引入的 41 个回归错误
- 最终结果:0 tsc 错误,0 个非注释 any 标注
- Build 验证通过(25.75MB bundle)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-01 01:00:10 +08:00
claude-code-best
91f77ea571
feat: 完成一大波类型修复, 虽然 any 很多
2026-03-31 23:43:39 +08:00
claude-code-best
dd9cd782a7
feat: 问就是封包
2026-03-31 23:32:58 +08:00
claude-code-best
d7a729ca68
feat: 完成第二版类型清理
2026-03-31 23:03:47 +08:00
claude-code-best
4c0a655a1c
feat: 大规模清理 claude 的类型问题及依赖
2026-03-31 22:21:35 +08:00
claude-code-best
2c759fe6fa
feat: 类型修复
2026-03-31 21:46:46 +08:00
claude-code-best
c4d92178b7
feat: 完成大部分操作
2026-03-31 21:40:37 +08:00
claude-code-best
3d4cb096d1
feat: monorepo 构建完成
2026-03-31 21:21:46 +08:00
claude-code-best
751a684dcf
feat: 第一个可启动版本
2026-03-31 20:55:36 +08:00
claude-code-best
bd756cc369
feat: 完成stub
2026-03-31 20:40:16 +08:00
claude-code-best
f90eee85d8
feat: build
2026-03-31 19:22:47 +08:00