Skip to content

Add opt-in debugger protocol v2 support for Godot 3.6 and 4.6 - #1062

Draft
nowasm wants to merge 1 commit into
godotengine:masterfrom
nowasm:codex/upstream-debug-protocol-v2
Draft

nowasm wants to merge 1 commit into
godotengine:masterfrom
nowasm:codex/upstream-debug-protocol-v2

Conversation

@nowasm

@nowasm nowasm commented Oct 11, 2026

Copy link
Copy Markdown

Summary

Add opt-in dual-channel debugger protocol v2 adapters for Godot 3.6 and 4.6. The extension selects the Godot 3 or Godot 4 adapter from the project version. The new debug_protocol_v2 launch/attach setting selects v2 only when explicitly enabled; unmodified Godot builds continue to use the legacy debugger by default.

The v2 client supports separate control/data channels, acknowledged execution commands, stop-scoped lazy stack and variable requests, variable paging, cancellation, reconnection generation checks, and matching engine launch endpoints.

Related engine PRs

A matching custom engine build is required to enable v2. This PR can remain a draft while the engine PRs are reviewed.

Verification

  • TypeScript compile and lint pass (lint reports only pre-existing warnings).
  • 21 unit tests pass for protocol framing, session state, and adapter selection.
  • Godot 3.6 v2 integration: 2 tests pass, including 100 acknowledged steps, lazy variable paging, and same-line call stepping.
  • Godot 4.6 v2 integration: 1 test passes for channel pairing, variable paging, and 20 acknowledged steps.
  • Stock Godot 4.6 debugger regression: 8 tests pass.
  • Custom-engine integration tests are excluded from the default test glob.

The stock Godot 3 adapter source remains unchanged, and selection tests confirm it remains the default.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants