* feat: 适配 zed acp 协议
* docs: 完善 acp 文档
* feat: integrate feature branches + daemon/job 命令层级化 + 跨平台后台引擎
Cherry-picked from origin/lint/preview (637c908), excluding lint-only changes.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix: correct detectMimeFromBase64 to decode raw bytes from base64
Cherry-picked from origin/lint/preview (ee36954).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix: daemon 子进程 spawn 跨平台修复 + CliLaunchSpec 集中化重构
Cherry-picked from origin/lint/preview (c5f52cd), excluding lint-only formatting changes.
- 新建 src/utils/cliLaunch.ts: 集中化 CLI 子进程启动层
- 修复 --daemon-worker=kind 等号格式解析
- 修复 daemon/bg fast path 缺少 setShellIfWindows()
- 修复 checkPathExists 用 existsSync 替代 execSync('dir')
- 7 个 spawn 站点迁移到 CliLaunchSpec
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix: merge tsconfig.base.json into tsconfig.json with full compiler options
The cherry-pick from 637c908 dropped jsx/strict/etc settings when removing
tsconfig.base.json. This commit restores them in a single tsconfig.json.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix: merge tsconfig.base.json into tsconfig.json with full compiler options
The cherry-pick from 637c908 dropped jsx/strict/etc settings when removing
tsconfig.base.json. This commit restores them in a single tsconfig.json.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Eliminate unsafe `as any` casts across 21 non-test source files,
replacing them with specific type annotations:
- Bridge transport: use StdoutMessage type for write/writeBatch calls
- print.ts: type msg.request as Record<string, unknown> for unknown
SDK control subtypes; use StdoutMessage for output.enqueue()
- API providers (openai/grok/gemini): import ChatCompletion types,
type streams as AsyncIterable<ChatCompletionChunk>, type request
bodies as ChatCompletionCreateParamsStreaming
- Computer use executor: use Partial<ResolvePrepareCaptureResult>
for cross-platform screenshot result
- Components: replace Ink color string casts with proper typing
- Win32 bridge: type stdin as Writable after null check
All 2453 tests pass with 0 failures.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
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>