Skip to content

Commit 72c48d7

Browse files
committed
fix(runtime): type snapshot timeouts via internal SandboxConfig
1 parent ec0ed62 commit 72c48d7

1 file changed

Lines changed: 6 additions & 10 deletions

File tree

src/runtime/agent-builder.ts

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ import {
4545
WorkspaceCwdArchiveEngine,
4646
} from '../claude-home/index.js'
4747
import { ConfigError, InvalidConfigError } from '../internal/errors.js'
48-
import type { AgentConfig, SandboxConfig, ToolDefinition, UserMemoryConfig } from '../public/types.js'
48+
import type { AgentConfig, SandboxConfig, ToolDefinition, UserMemoryConfig, _SandboxConfig } from '../public/types.js'
4949
import { createSandboxMcpServer } from '../sandbox/sandbox-tools.js'
5050
import type { SandboxInstance, SandboxRuntime } from '../sandbox/types.js'
5151
import { WorkspaceSnapshotEngine } from '../sandbox/workspace-snapshot/index.js'
@@ -380,18 +380,14 @@ export function buildClaudeQueryOptions(
380380
// 启用时构造 WorkspaceSnapshotEngine,实际触发(bootstrap / snapshot)由 create-agent
381381
// 在 startSession / send-end 时挂载(Task 8)。
382382
//
383-
// 注意:必须用条件展开避免把 undefined 透到 engine —— `{ ...DEFAULT, ...opts }`
384-
// 模式下,显式赋 undefined 会覆盖默认值,导致 setTimeout(undefined) 立即触发,
385-
// bootstrap 会以 SandboxRestoreTimeout: init timeout after undefinedms 失败。
383+
// 公开 SandboxConfig 是 Pick + index signature,超时字段类型为 unknown。
384+
// 内部按完整 _SandboxConfig 读取;engine 用 `??` 处理未传的 timeout。
386385
const snapshotEnabled = resolveSnapshotMode(config.sandbox)
386+
const sandbox = config.sandbox as _SandboxConfig | undefined
387387
const snapshotEngine = snapshotEnabled
388388
? new WorkspaceSnapshotEngine({
389-
...(config.sandbox?.workspaceSnapshotTimeoutMs !== undefined && {
390-
snapshotTimeoutMs: config.sandbox.workspaceSnapshotTimeoutMs,
391-
}),
392-
...(config.sandbox?.workspaceInitTimeoutMs !== undefined && {
393-
initTimeoutMs: config.sandbox.workspaceInitTimeoutMs,
394-
}),
389+
snapshotTimeoutMs: sandbox?.workspaceSnapshotTimeoutMs,
390+
initTimeoutMs: sandbox?.workspaceInitTimeoutMs,
395391
})
396392
: undefined
397393

0 commit comments

Comments
 (0)