Commit Graph

3 Commits

Author SHA1 Message Date
roboomp 1745529368 fix(debug): accept directory programs for dlv and auto-select dlv mode
The debug tool ran validateLaunchProgram before adapter selection and
rejected any directory program with `launch program resolves to a
directory`, while dlv's default `mode=debug` requires a Go package
path (a directory or .go source file). Every Go-module launch failed:
passing the module dir was rejected outright, and passing the compiled
binary failed at dlv with `not a valid go module`.

- Add `acceptsDirectoryProgram` to DapAdapterConfig/DapResolvedAdapter
  and flag dlv in dap/defaults.json.
- In DebugTool.execute(launch), resolve the adapter first, then call
  validateLaunchProgram with the resolved adapter — the directory
  rejection only fires when the adapter does not advertise the flag.
- Add resolveLaunchOverrides in dap/config.ts: for dlv, derive `mode`
  from the program shape (directory or .go file → debug; other file
  → exec). Plumbed through DapLaunchSessionOptions.extraLaunchArguments
  and spread between adapter.launchDefaults and the hard-coded launch
  fields in session.ts.
- Refresh tests: cover the no-dir-support adapter rejection, dlv on a
  package directory keeping mode=debug, and dlv on a binary switching
  to mode=exec.

Fixes #2020
2026-06-07 02:59:02 +00:00
can1357 970e115140 feat(dap): added socket-mode transport and improved session initialization for DAP adapters
- Added socket-mode transport support for DAP adapters, enabling network socket debuggers like dlv alongside stdio mode.
- Improved extensionless binary debugging to prioritize native debuggers and adapters with root markers.
- Fixed DAP session initialization to subscribe to stop events before launching/attaching, preventing missed stopOnEntry events.
- Refactored session event handling to fetch stack frames outside dispatch loop, eliminating deadlocks and improving responsiveness.
- Enhanced evaluate requests to default to top stopped frame when frameId is not explicitly provided.
2026-04-08 04:16:45 +02:00
can1357 f4be4f6232 feat(dap): introduced Debug Adapter Protocol tool for launch/attach debugging with breakpoints and inspection
- Added Debug Adapter Protocol (DAP) tool enabling launch/attach debugging with breakpoint management, stepping, stack traces, and variable inspection.
- Added debug adapter configurations for gdb, lldb-dap, debugpy, and dlv with automatic language and project detection via root markers.
- Added debug session management with conditional breakpoints, flow control (continue/step/pause), scopes, variables, and expression evaluation.
- Added `debug.enabled` setting to control debug tool availability and integrated debug tool into agent's builtin tools registry.
- Added environment variable configuration (TERM, GPG_TTY, NO_COLOR, PYTHONUNBUFFERED) to prevent terminal blocking in non-interactive execution.
2026-04-08 01:42:25 +02:00