diff --git a/packages/coding-agent/src/dap/config.ts b/packages/coding-agent/src/dap/config.ts index 8827c2ac1..abeab9f86 100644 --- a/packages/coding-agent/src/dap/config.ts +++ b/packages/coding-agent/src/dap/config.ts @@ -87,7 +87,22 @@ function mergeAdapters( ): Record { const merged: Record = { ...base }; for (const [name, config] of Object.entries(overrides)) { - const candidate = isRecord(merged[name]) && isRecord(config) ? { ...merged[name], ...config } : config; + const existing = merged[name]; + const candidate = + isRecord(existing) && isRecord(config) + ? { + ...existing, + ...config, + launchDefaults: + isRecord(existing.launchDefaults) || isRecord(config.launchDefaults) + ? { ...existing.launchDefaults, ...normalizeObject(config.launchDefaults) } + : undefined, + attachDefaults: + isRecord(existing.attachDefaults) || isRecord(config.attachDefaults) + ? { ...existing.attachDefaults, ...normalizeObject(config.attachDefaults) } + : undefined, + } + : config; const normalized = normalizeAdapterConfig(candidate); if (normalized) { merged[name] = normalized; diff --git a/packages/coding-agent/test/debug/dap-config.test.ts b/packages/coding-agent/test/debug/dap-config.test.ts index 579ee5384..995198453 100644 --- a/packages/coding-agent/test/debug/dap-config.test.ts +++ b/packages/coding-agent/test/debug/dap-config.test.ts @@ -62,7 +62,7 @@ describe("DAP adapter configuration", () => { adapters: { debugpy: { args: ["-m", "debugpy.adapter", "--log-dir", ".debugpy-logs"], - launchDefaults: { request: "launch", justMyCode: false }, + launchDefaults: { justMyCode: false }, }, }, }),