mirror of
https://github.com/claude-code-best/claude-code.git
synced 2026-06-21 15:55:50 +00:00
refactor: 解耦 BRIDGE_MODE 与 DAEMON,禁用 DAEMON 降低内存占用
- 从 DEFAULT_BUILD_FEATURES 注释掉 DAEMON(内存占用过高)
- remoteControlServer 命令门控从 feature('DAEMON') && feature('BRIDGE_MODE')
改为仅 feature('BRIDGE_MODE'),bridge 不再依赖 daemon
- --daemon-worker 快速路径改为运行时检测,未启用时输出明确错误提示
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -46,7 +46,7 @@ export const DEFAULT_BUILD_FEATURES = [
|
|||||||
'KAIROS_BRIEF', // Kairos 定时摘要(定时汇报当前状态)
|
'KAIROS_BRIEF', // Kairos 定时摘要(定时汇报当前状态)
|
||||||
'AWAY_SUMMARY', // 离线摘要(用户离开后生成总结)
|
'AWAY_SUMMARY', // 离线摘要(用户离开后生成总结)
|
||||||
'ULTRAPLAN', // 超级规划模式,深度分析后生成实施计划
|
'ULTRAPLAN', // 超级规划模式,深度分析后生成实施计划
|
||||||
'DAEMON', // 守护进程模式,长驻 supervisor 管理后台 worker
|
// 'DAEMON', // 守护进程模式,长驻 supervisor 管理后台 worker(已禁用:内存占用过高)
|
||||||
'ACP', // ACP 代理协议,支持外部 agent 接入
|
'ACP', // ACP 代理协议,支持外部 agent 接入
|
||||||
'WORKFLOW_SCRIPTS', // 工作流脚本(.claude/workflows/ 中的 YAML/MD)
|
'WORKFLOW_SCRIPTS', // 工作流脚本(.claude/workflows/ 中的 YAML/MD)
|
||||||
'HISTORY_SNIP', // 历史消息裁剪,压缩上下文窗口
|
'HISTORY_SNIP', // 历史消息裁剪,压缩上下文窗口
|
||||||
|
|||||||
@@ -75,7 +75,7 @@ const bridge = feature('BRIDGE_MODE')
|
|||||||
? require('./commands/bridge/index.js').default
|
? require('./commands/bridge/index.js').default
|
||||||
: null
|
: null
|
||||||
const remoteControlServerCommand =
|
const remoteControlServerCommand =
|
||||||
feature('DAEMON') && feature('BRIDGE_MODE')
|
feature('BRIDGE_MODE')
|
||||||
? require('./commands/remoteControlServer/index.js').default
|
? require('./commands/remoteControlServer/index.js').default
|
||||||
: null
|
: null
|
||||||
const voiceCommand = feature('VOICE_MODE')
|
const voiceCommand = feature('VOICE_MODE')
|
||||||
|
|||||||
@@ -3,9 +3,14 @@ import { isBridgeEnabled } from '../../bridge/bridgeEnabled.js'
|
|||||||
import type { Command } from '../../commands.js'
|
import type { Command } from '../../commands.js'
|
||||||
|
|
||||||
function isEnabled(): boolean {
|
function isEnabled(): boolean {
|
||||||
if (!feature('DAEMON') || !feature('BRIDGE_MODE')) {
|
if (!feature('BRIDGE_MODE')) {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
if (feature('DAEMON')) {
|
||||||
|
return isBridgeEnabled()
|
||||||
|
}
|
||||||
|
// DAEMON feature disabled — still allow the command but warn at runtime
|
||||||
|
// that headless/daemon worker mode is unavailable.
|
||||||
return isBridgeEnabled()
|
return isBridgeEnabled()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -170,7 +170,12 @@ async function main(): Promise<void> {
|
|||||||
// perf-sensitive. No enableConfigs(), no analytics sinks at this layer —
|
// perf-sensitive. No enableConfigs(), no analytics sinks at this layer —
|
||||||
// workers are lean. If a worker kind needs configs/auth (assistant will),
|
// workers are lean. If a worker kind needs configs/auth (assistant will),
|
||||||
// it calls them inside its run() fn.
|
// it calls them inside its run() fn.
|
||||||
if (feature('DAEMON') && (args[0] === '--daemon-worker' || args[0]?.startsWith('--daemon-worker='))) {
|
if (args[0] === '--daemon-worker' || args[0]?.startsWith('--daemon-worker=')) {
|
||||||
|
if (!feature('DAEMON')) {
|
||||||
|
console.error('Error: --daemon-worker requires DAEMON feature to be enabled. Set FEATURE_DAEMON=1 or add DAEMON to DEFAULT_BUILD_FEATURES.')
|
||||||
|
process.exitCode = 1
|
||||||
|
return
|
||||||
|
}
|
||||||
const kind = args[0] === '--daemon-worker' ? args[1] : args[0].split('=')[1]
|
const kind = args[0] === '--daemon-worker' ? args[1] : args[0].split('=')[1]
|
||||||
const { runDaemonWorker } = await import('../daemon/workerRegistry.js')
|
const { runDaemonWorker } = await import('../daemon/workerRegistry.js')
|
||||||
await runDaemonWorker(kind)
|
await runDaemonWorker(kind)
|
||||||
|
|||||||
Reference in New Issue
Block a user