breakpoint-mcp 1.85.1 → 1.87.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/README.md +1 -1
  2. package/addon/breakpoint_mcp/bridge_secret.gd +49 -0
  3. package/addon/breakpoint_mcp/operations.gd +1 -1
  4. package/addon/breakpoint_mcp/plugin.cfg +1 -1
  5. package/addon/breakpoint_mcp/runtime_bridge.gd +48 -2
  6. package/dist/annotations.js +3 -3
  7. package/dist/annotations.js.map +1 -1
  8. package/dist/bridge.js +27 -1
  9. package/dist/bridge.js.map +1 -1
  10. package/dist/capabilities.js +1 -1
  11. package/dist/cli/doctor.js +65 -6
  12. package/dist/cli/doctor.js.map +1 -1
  13. package/dist/cli/init.js +1 -1
  14. package/dist/cli/tools.js +2 -2
  15. package/dist/index.js +11 -5
  16. package/dist/index.js.map +1 -1
  17. package/dist/mutation-guard.js +1 -1
  18. package/dist/mutation-guard.js.map +1 -1
  19. package/dist/peers.js +1 -1
  20. package/dist/peers.js.map +1 -1
  21. package/dist/port-holder.js +235 -0
  22. package/dist/port-holder.js.map +1 -0
  23. package/dist/ports.js +117 -1
  24. package/dist/ports.js.map +1 -1
  25. package/dist/recipes.js +1 -1
  26. package/dist/schemas.js +18 -0
  27. package/dist/schemas.js.map +1 -1
  28. package/dist/tool-census.js +2 -2
  29. package/dist/tools/assetgen.js +4 -4
  30. package/dist/tools/assetgen.js.map +1 -1
  31. package/dist/tools/backend.js +4 -4
  32. package/dist/tools/backend.js.map +1 -1
  33. package/dist/tools/cli.js +18 -2
  34. package/dist/tools/cli.js.map +1 -1
  35. package/dist/tools/csdap.js +3 -1
  36. package/dist/tools/csdap.js.map +1 -1
  37. package/dist/tools/dap.js +23 -26
  38. package/dist/tools/dap.js.map +1 -1
  39. package/dist/tools/editor/animation.js +1 -1
  40. package/dist/tools/editor/animation.js.map +1 -1
  41. package/dist/tools/editor/audio.js +4 -4
  42. package/dist/tools/editor/audio.js.map +1 -1
  43. package/dist/tools/editor/core.js +1 -1
  44. package/dist/tools/editor/core.js.map +1 -1
  45. package/dist/tools/editor/filesystem.js +1 -1
  46. package/dist/tools/editor/filesystem.js.map +1 -1
  47. package/dist/tools/editor/node.js +2 -2
  48. package/dist/tools/editor/node.js.map +1 -1
  49. package/dist/tools/editor/physics.js +1 -1
  50. package/dist/tools/editor/physics.js.map +1 -1
  51. package/dist/tools/editor/project_input_test.js +7 -7
  52. package/dist/tools/editor/project_input_test.js.map +1 -1
  53. package/dist/tools/editor/resource.js +5 -5
  54. package/dist/tools/editor/resource.js.map +1 -1
  55. package/dist/tools/editor/scene.js +5 -5
  56. package/dist/tools/editor/scene.js.map +1 -1
  57. package/dist/tools/editor/shader.js +2 -2
  58. package/dist/tools/editor/shader.js.map +1 -1
  59. package/dist/tools/editor/signal.js +1 -1
  60. package/dist/tools/editor/signal.js.map +1 -1
  61. package/dist/tools/editor/spatial.js +3 -3
  62. package/dist/tools/editor/spatial.js.map +1 -1
  63. package/dist/tools/editor/tiles.js +4 -4
  64. package/dist/tools/editor/tiles.js.map +1 -1
  65. package/dist/tools/editor/ui.js +5 -5
  66. package/dist/tools/editor/ui.js.map +1 -1
  67. package/dist/tools/netcode.js +4 -4
  68. package/dist/tools/netcode.js.map +1 -1
  69. package/dist/tools/processes.js +7 -2
  70. package/dist/tools/processes.js.map +1 -1
  71. package/dist/tools/runtime.js +15 -19
  72. package/dist/tools/runtime.js.map +1 -1
  73. package/dist/tools/tabletop.js +6 -6
  74. package/dist/tools/tabletop.js.map +1 -1
  75. package/package.json +1 -1
package/README.md CHANGED
@@ -3,7 +3,7 @@
3
3
  The MCP **host** for [Breakpoint MCP](https://github.com/jlivingston-Cipher/godot-breakpoint-mcp) —
4
4
  a [Model Context Protocol](https://modelcontextprotocol.io) server that exposes the
5
5
  Godot game engine to AI coding assistants across four planes: headless CLI, the live
6
- editor, Godot's own LSP + DAP, and a runtime bridge inside the running game. **292 tools
6
+ editor, Godot's own LSP + DAP, and a runtime bridge inside the running game. **293 tools
7
7
  + 6 MCP resources**, built against the stable `@modelcontextprotocol/sdk` 1.x API.
8
8
  Developed and tested with **Claude**; because MCP is an open protocol, other clients can
9
9
  connect too (currently untested — reports welcome).
@@ -18,6 +18,9 @@ extends RefCounted
18
18
  ## addon. Defense-in-depth, not a remote-RCE fix (loopback already blocks the net).
19
19
 
20
20
  const SECRET_PATH := "res://.godot/breakpoint_mcp.secret"
21
+ ## The shortest BREAKPOINT_RUNTIME_SECRET an opted-in debug export accepts (see
22
+ ## runtime_listen_policy). The minted secret is 64 hex characters.
23
+ const EXPORT_SECRET_MIN_LEN := 32
21
24
 
22
25
 
23
26
  ## Return the shared secret, minting + persisting a fresh one if none exists.
@@ -45,6 +48,52 @@ static func load_or_mint() -> String:
45
48
  return hex
46
49
 
47
50
 
51
+ ## 🔴 325 (BP-0023) — WHETHER THE RUNTIME BRIDGE MAY LISTEN AT ALL, decided before any
52
+ ## socket is opened or any file is touched. The plugin registers runtime_bridge.gd as an
53
+ ## autoload, and an autoload ships inside every export: a game built with this addon
54
+ ## switched on opened 127.0.0.1:9081 on every launch. Measured on macOS against the
55
+ ## official 4.7 release template (325): from an app bundle the game cannot write to — a
56
+ ## quarantined download, an App Store or administrator install — the mint fails and the
57
+ ## bridge ran with NO authentication, answering `runtime.call_method`; from a bundle it
58
+ ## can write to, it minted a secret INTO Contents/Resources/.godot/, a file written inside
59
+ ## the player's copy of a shipped app.
60
+ ##
61
+ ## The rule: listen only in a development run — a game started by an EDITOR build (the
62
+ ## editor's Run buttons, Breakpoint's own launchers, CI): see is_development_build for why
63
+ ## that is "editor" AND NOT "template". An exported DEBUG build may opt in with
64
+ ## BREAKPOINT_RUNTIME_EXPORTED=1, and only with its secret supplied in
65
+ ## BREAKPOINT_RUNTIME_SECRET (the same variable the host reads): an export never mints, so
66
+ ## it never writes into its own install and never runs open. A RELEASE export never
67
+ ## listens, whatever its environment says.
68
+ ##
69
+ ## Pure — no OS calls, no files — so the decision is unit-tested headless; the caller
70
+ ## passes the four facts in. `warn` is true only when someone ASKED for an exported
71
+ ## bridge and is being refused; a plain shipped game stays silent.
72
+ static func runtime_listen_policy(editor_build: bool, debug_build: bool, exported_optin: String, env_secret: String) -> Dictionary:
73
+ if editor_build:
74
+ return {"listen": true, "secret_source": "project", "warn": false, "reason": "development run (editor build)"}
75
+ var optin := exported_optin.strip_edges().to_lower()
76
+ if not (optin == "1" or optin == "true"):
77
+ return {"listen": false, "secret_source": "", "warn": false, "reason": "exported build: the runtime bridge listens only in development runs"}
78
+ if not debug_build:
79
+ return {"listen": false, "secret_source": "", "warn": true, "reason": "BREAKPOINT_RUNTIME_EXPORTED is honoured only in a debug export; a release export never listens"}
80
+ if env_secret.strip_edges().length() < EXPORT_SECRET_MIN_LEN:
81
+ return {"listen": false, "secret_source": "", "warn": true, "reason": "BREAKPOINT_RUNTIME_EXPORTED=1 needs BREAKPOINT_RUNTIME_SECRET of at least %d characters; an exported build never mints its own" % EXPORT_SECRET_MIN_LEN}
82
+ # The validated secret travels IN the decision, so nothing downstream re-reads the
83
+ # environment and could see a different value from the one checked here.
84
+ return {"listen": true, "secret_source": "env", "secret": env_secret.strip_edges(), "warn": false, "reason": "debug export, opted in with BREAKPOINT_RUNTIME_EXPORTED"}
85
+
86
+
87
+ ## A development run is an EDITOR build that is NOT an export TEMPLATE. Both are compiled-in
88
+ ## feature tags, and the second condition is what makes the first trustworthy: custom
89
+ ## features — an export preset's list, or `_custom_features` in an override.cfg, which the
90
+ ## official templates read from beside the game by default — can ADD "editor" to a
91
+ ## template's tags but can never remove "template" (325, review finding 1). Pure, so both
92
+ ## halves are unit-tested; runtime_bridge.gd passes OS.has_feature() for each.
93
+ static func is_development_build(has_editor: bool, has_template: bool) -> bool:
94
+ return has_editor and not has_template
95
+
96
+
48
97
  ## Constant-time equality over the UTF-8 bytes of two strings. Folds any length
49
98
  ## difference into the result and always scans the longer input, so it never
50
99
  ## short-circuits on the first differing byte (no timing side channel on the
@@ -8,7 +8,7 @@ extends RefCounted
8
8
 
9
9
  const Codec := preload("res://addons/breakpoint_mcp/variant_json.gd")
10
10
  const Remedies := preload("res://addons/breakpoint_mcp/error_remedies.gd")
11
- const ADDON_VERSION := "1.16.0"
11
+ const ADDON_VERSION := "1.17.0"
12
12
 
13
13
  var _plugin: EditorPlugin
14
14
 
@@ -3,5 +3,5 @@
3
3
  name="Breakpoint MCP"
4
4
  description="Exposes the live Godot editor and the running game to an MCP host so an AI assistant can drive them: scene/node/resource CRUD with full undo/redo, project settings, ClassDB, editor + in-game screenshots, and an in-game runtime bridge (live SceneTree, property get/set, method calls, signals, input injection, Performance monitors). Pairs with the breakpoint-mcp MCP host."
5
5
  author="James Livingston"
6
- version="1.16.0"
6
+ version="1.17.0"
7
7
  script="plugin.gd"
@@ -2,7 +2,8 @@ extends Node
2
2
  ## Breakpoint Runtime Bridge — runs INSIDE the running game as an autoload.
3
3
  ##
4
4
  ## The editor plugin auto-registers this as an autoload singleton
5
- ## ("BreakpointRuntimeBridge"), so it is present whenever the project runs. It opens
5
+ ## ("BreakpointRuntimeBridge"), so it is present whenever the project runs. In a
6
+ ## development run — a game started by an editor build — it opens
6
7
  ## a loopback TCP server on 127.0.0.1:9081 (override BREAKPOINT_RUNTIME_PORT) speaking
7
8
  ## the SAME newline-delimited JSON protocol as the editor bridge, and exposes the
8
9
  ## live SceneTree: read/write properties, call methods, emit signals, inject
@@ -10,6 +11,10 @@ extends Node
10
11
  ##
11
12
  ## NOTE: this script is intentionally NOT @tool — it must run in the game, not
12
13
  ## the editor. All handlers run on the main thread (socket polled from _process).
14
+ ##
15
+ ## An EXPORTED game carries this autoload too, and there it stays closed: no socket, no
16
+ ## secret written, no logger hooked (325, BP-0023 — see bridge_secret.gd's
17
+ ## runtime_listen_policy for the one opt-in, debug exports only).
13
18
 
14
19
  ## The addon version this GAME is running, answered on `ping`.
15
20
  ##
@@ -20,7 +25,7 @@ extends Node
20
25
  ## and the process that is already running keeps the addon it loaded. Held in lockstep
21
26
  ## with `plugin.cfg` and with `operations.gd`'s copy by contract_check check 14, which
22
27
  ## exists because two of those literals disagreed for two releases.
23
- const ADDON_VERSION := "1.16.0"
28
+ const ADDON_VERSION := "1.17.0"
24
29
  const Codec := preload("res://addons/breakpoint_mcp/variant_json.gd")
25
30
  const Remedies := preload("res://addons/breakpoint_mcp/error_remedies.gd")
26
31
  const DEFAULT_PORT := 9081
@@ -88,9 +93,38 @@ var _tree_dirty: bool = false
88
93
  var _log_dirty: bool = false
89
94
  var _log_capture = null # registered Logger (Godot 4.5+) or null
90
95
  var _in_capture: bool = false
96
+ ## 🔴 325 (BP-0023): the listen decision, taken first in _ready (bridge_secret.gd's
97
+ ## runtime_listen_policy). Read by _setup_auth for where the secret comes from.
98
+ var _policy: Dictionary = {}
99
+
100
+
101
+ ## The four facts the listen policy is decided on. A method and not inline so the
102
+ ## headless smoke can stand an exported build up inside an editor binary — the only
103
+ ## binary CI has — by overriding this one function and nothing else.
104
+ func _policy_facts() -> Dictionary:
105
+ return {
106
+ "editor_build": BridgeSecret.is_development_build(OS.has_feature("editor"), OS.has_feature("template")),
107
+ "debug_build": OS.is_debug_build(),
108
+ "exported_optin": OS.get_environment("BREAKPOINT_RUNTIME_EXPORTED"),
109
+ "env_secret": OS.get_environment("BREAKPOINT_RUNTIME_SECRET"),
110
+ }
91
111
 
92
112
 
93
113
  func _ready() -> void:
114
+ # 🔴 325 (BP-0023): an exported game must not open a control port. Decide before
115
+ # anything binds, mints, hooks the logger or connects to the tree; when the answer
116
+ # is no, this node stays in the tree inert — `push_log` still works for game code
117
+ # that calls it — and a shipped game prints nothing unless someone asked for the
118
+ # bridge and is being refused.
119
+ var f := _policy_facts()
120
+ _policy = BridgeSecret.runtime_listen_policy(bool(f["editor_build"]), bool(f["debug_build"]), String(f["exported_optin"]), String(f["env_secret"]))
121
+ if not bool(_policy["listen"]):
122
+ set_process(false)
123
+ if bool(_policy["warn"]):
124
+ push_warning("[breakpoint_runtime] not listening: %s" % _policy["reason"])
125
+ else:
126
+ print_verbose("[breakpoint_runtime] not listening: %s" % _policy["reason"])
127
+ return
94
128
  # Keep servicing requests even while the game is paused (e.g. at a breakpoint).
95
129
  process_mode = Node.PROCESS_MODE_ALWAYS
96
130
  var env_port := OS.get_environment("BREAKPOINT_RUNTIME_PORT")
@@ -119,6 +153,18 @@ func _ready() -> void:
119
153
  ## hatch). If the secret can't be persisted, run WITHOUT auth rather than
120
154
  ## bricking the bridge (a broken mint must not lock out the host).
121
155
  func _setup_auth() -> void:
156
+ # An opted-in debug export (325): the secret comes from the environment or not at all.
157
+ # Never minted — that would write into the game's own install — and never insecure:
158
+ # BREAKPOINT_BRIDGE_INSECURE is a development-run escape hatch only.
159
+ if String(_policy.get("secret_source", "")) == "env":
160
+ _secret = String(_policy.get("secret", ""))
161
+ _auth_required = true
162
+ if _secret.length() < BridgeSecret.EXPORT_SECRET_MIN_LEN:
163
+ # Unreachable through runtime_listen_policy, which never says listen without a
164
+ # valid secret — but if it ever did, fail CLOSED: a random secret nobody holds,
165
+ # never the empty string const_time_eq would match an empty `auth` against.
166
+ _secret = Crypto.new().generate_random_bytes(32).hex_encode()
167
+ return
122
168
  var insecure := OS.get_environment("BREAKPOINT_BRIDGE_INSECURE").to_lower()
123
169
  if insecure == "1" or insecure == "true":
124
170
  _auth_required = false
@@ -1,6 +1,6 @@
1
1
  /** Tools that mutate nothing. */
2
2
  const READ_ONLY = [
3
- "anim_get_track_keys", "anim_list", "backend_detect", "breakpoint_doctor", "class_reference", "classdb_get_class", "cs_code_action",
3
+ "anim_get_track_keys", "anim_list", "backend_detect", "breakpoint_doctor", "breakpoint_ports", "class_reference", "classdb_get_class", "cs_code_action",
4
4
  "cs_completion", "cs_dbg_scopes", "cs_dbg_stack_trace", "cs_dbg_variables", "cs_definition", "cs_diagnostics",
5
5
  "cs_document_symbols", "cs_hover", "cs_references", "cs_signature_help", "cs_workspace_symbols", "dbg_scopes",
6
6
  "dbg_stack_trace", "dbg_variables", "docs_search", "editor_get_state", "editor_ping", "example_snippet",
@@ -56,7 +56,7 @@ const IDEMPOTENT = [
56
56
  "area_set_gravity", "area_set_monitoring", "asset_gen_configure", "asset_gen_placeholder",
57
57
  "audio_bus_set_volume", "audio_set_bus_layout", "audio_set_stream", "auth_scaffold", "backend_configure",
58
58
  "backend_detect", "board_create", "board_place", "board_tile_create", "board_tile_place",
59
- "body_set_collision_layer", "body_set_collision_mask", "body_set_physics_material", "breakpoint_doctor", "card_template_create",
59
+ "body_set_collision_layer", "body_set_collision_mask", "body_set_physics_material", "breakpoint_doctor", "breakpoint_ports", "card_template_create",
60
60
  "class_reference", "classdb_get_class", "cloudsave_scaffold", "control_set_anchors", "control_set_layout_preset",
61
61
  "control_set_size_flags", "control_set_theme", "cs_code_action", "cs_completion", "cs_dbg_attach",
62
62
  "cs_dbg_scopes", "cs_dbg_set_breakpoints", "cs_dbg_set_exception_breakpoints", "cs_dbg_set_variable",
@@ -120,7 +120,7 @@ export const ALL_ANNOTATED = [
120
120
  "audio_bus_set_volume", "audio_player_create", "audio_set_bus_layout", "audio_set_stream", "auth_scaffold",
121
121
  "backend_configure", "backend_detect", "board_create", "board_place", "board_tile_create", "board_tile_place",
122
122
  "body_create", "body_set_collision_layer", "body_set_collision_mask", "body_set_physics_material",
123
- "breakpoint_doctor", "camera_create", "card_deck_from_table", "card_hand_layout", "card_instance", "card_set_face",
123
+ "breakpoint_doctor", "breakpoint_ports", "camera_create", "card_deck_from_table", "card_hand_layout", "card_instance", "card_set_face",
124
124
  "card_template_create", "class_reference", "classdb_get_class", "cloudsave_scaffold", "collisionpolygon_add",
125
125
  "collisionshape_add", "container_add_child", "control_create", "control_set_anchors",
126
126
  "control_set_layout_preset", "control_set_size_flags", "control_set_theme", "cs_code_action", "cs_completion",
@@ -1 +1 @@
1
- {"version":3,"file":"annotations.js","sourceRoot":"","sources":["../src/annotations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"annotations.js","sourceRoot":"","sources":["../src/annotations.ts"],"names":[],"mappings":"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"}
package/dist/bridge.js CHANGED
@@ -6,6 +6,7 @@ import { findNonFinite, describeNonFinite, tolerate, TOLERANT_METHODS, nonFinite
6
6
  import { remedyForWireError } from "./remedies.js";
7
7
  import { closeDetail, closeRemedy } from "./close-cause.js";
8
8
  import { connectHint, connectRemedy } from "./connect-cause.js";
9
+ import { silentHolderRemedy } from "./port-holder.js";
9
10
  export class BridgeError extends Error {
10
11
  code;
11
12
  /**
@@ -253,6 +254,20 @@ export class BridgeClient {
253
254
  this.holdProbe = probe;
254
255
  }
255
256
  holdProbe = null;
257
+ /**
258
+ * 🆕 318 — WHO HOLDS THE PORT, ASKED ONLY WHEN THE SILENT-PEER SENTENCE IS ABOUT TO BE USED.
259
+ *
260
+ * `silentPeerRemedy` ended by handing the person `lsof -nP -iTCP:<port> -sTCP:LISTEN` to
261
+ * run. That is a command this host can run itself, and only this host can read the pid it
262
+ * prints against the children it started. A HOOK for the same reason `setHoldProbe` is one:
263
+ * the `.mjs` probes construct this class directly, and a client that never sets it gets
264
+ * exactly the sentence that shipped. Consulted at the deadline and nowhere else — a healthy
265
+ * call never runs lsof.
266
+ */
267
+ setHolderLookup(lookup) {
268
+ this.holderLookup = lookup;
269
+ }
270
+ holderLookup = null;
256
271
  /** Register a listener for addon-pushed resource-change events. */
257
272
  onResourceChanged(cb) {
258
273
  this.eventListeners.add(cb);
@@ -571,7 +586,18 @@ export class BridgeClient {
571
586
  // holding, the peer IS ours and is merely halted, so "nothing here speaks our
572
587
  // protocol" would be a confident wrong answer. Inference fills the gap the
573
588
  // positive fact leaves; it never overrules it.
574
- reject(new BridgeError(BRIDGE_TIMEOUT_CODE, `Bridge request '${method}' timed out after ${timeoutMs}ms`, this.holdProbe?.() ?? this.authDenialRemedy() ?? this.silentPeerRemedy() ?? undefined));
589
+ const positive = this.holdProbe?.() ?? this.authDenialRemedy();
590
+ const silent = positive === undefined ? this.silentPeerRemedy() : undefined;
591
+ // 🆕 318 — THE INFERENCE, FINISHED. Read the sentence NOW, before any await: the
592
+ // lookup takes milliseconds and a reconnect in that window resets `sawBridgeFrame`,
593
+ // which would let a peer that spoke vouch for — or against — a port it no longer holds.
594
+ const lookup = this.holderLookup;
595
+ if (silent === undefined || lookup === null) {
596
+ reject(new BridgeError(BRIDGE_TIMEOUT_CODE, `Bridge request '${method}' timed out after ${timeoutMs}ms`, positive ?? silent ?? undefined));
597
+ return;
598
+ }
599
+ const { host, port } = this;
600
+ void lookup(host, port).then((holder) => silentHolderRemedy(host, port, this.peerNoun, this.hostKnob, holder), () => undefined).then((named) => reject(new BridgeError(BRIDGE_TIMEOUT_CODE, `Bridge request '${method}' timed out after ${timeoutMs}ms`, named ?? silent)));
575
601
  }, timeoutMs);
576
602
  this.pending.set(id, { resolve: resolve, reject, timer, method });
577
603
  socket.write(payload, (err) => {
@@ -1 +1 @@
1
- {"version":3,"file":"bridge.js","sourceRoot":"","sources":["../src/bridge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bridge.js","sourceRoot":"","sources":["../src/bridge.ts"],"names":[],"mappings":"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"}
@@ -255,7 +255,7 @@ export function droppedToolMessage(name) {
255
255
  * earlier would wrap nothing.
256
256
  *
257
257
  * 🔴 THIS DELIBERATELY DOES NOT REGISTER THE TOOL. Least-privilege by
258
- * construction is the point of the drop: `tools/list` stays at 279 and no
258
+ * construction is the point of the drop: `tools/list` stays at 280 and no
259
259
  * withheld schema crosses the wire, so `wire_diff`, `token-cost` and every floor
260
260
  * over the advertised surface are unmoved. The ONLY thing that changes is the
261
261
  * sentence a caller gets back when it asks for one by name — which is the whole
@@ -41,6 +41,7 @@ import { BridgeClient } from "../bridge.js";
41
41
  import { resolveBridgeSecret } from "../secret.js";
42
42
  import { ADDON_REL, ADDON_SKEW_HINT, compareAddonVersions, readAddonVersion, } from "../addon-version.js";
43
43
  import { resolveBundledAddon } from "./init.js";
44
+ import { certainStop, holderBrief, holdersPhrase, whoHolds } from "../port-holder.js";
44
45
  /**
45
46
  * The withheld population, DERIVED from the checks' own `withholds` and from
46
47
  * which names the report actually carries.
@@ -355,7 +356,7 @@ export function checkCapabilities(config) {
355
356
  status: "ok",
356
357
  severity: "info",
357
358
  detail: dropped.length === 0
358
- ? `${state} — full 292-tool surface`
359
+ ? `${state} — full 293-tool surface`
359
360
  : `${state} (secure default) — ${dropped.length} higher-trust tool(s) dropped from the surface`,
360
361
  // The token list is DERIVED — `code-execution,network` was printed here
361
362
  // for as long as the `network` group has been deleted, so the remedy
@@ -442,6 +443,39 @@ export function addonRunningCheck(bridge, running, bundled) {
442
443
  detail: skew === "same" ? `matches this host (${running}, live on ${bridge})` : `(${pair})`,
443
444
  };
444
445
  }
446
+ /**
447
+ * 🆕 318 — what a holder reading may add to a bridge row, and the one thing it may change.
448
+ *
449
+ * `suffix` is the brief (`· held by Godot, pid 511`) and is appended to whatever the row
450
+ * already said. `stop` is the certain remedy when this server started the holder.
451
+ * `wrongProcess` is set only when EVERY process on the port is a program that is not Godot
452
+ * and not this server — the single reading that turns a row that would have passed into a
453
+ * failure, because every plane these four rows describe lives inside a Godot process. A
454
+ * renamed Godot binary is still recognised through `GODOT_BIN`'s basename; one renamed AND not
455
+ * named there would read as `not Godot`, which is why the hint names the program rather than
456
+ * asserting what it is for.
457
+ */
458
+ export function holderFacts(holder, portKnob) {
459
+ if (holder.kind === "unavailable")
460
+ return { suffix: "" };
461
+ if (holder.kind === "none_visible")
462
+ return { suffix: " · held by a process this account cannot see" };
463
+ const hs = holder.holders;
464
+ const suffix = ` · held by ${holderBrief(hs)}`;
465
+ const stop = hs.length === 1 ? certainStop(hs[0]) : undefined;
466
+ if (hs.every((h) => h.owner.kind === "other")) {
467
+ return {
468
+ suffix,
469
+ wrongProcess: `${capitalise(holdersPhrase(hs))} ${hs.length === 1 ? "holds" : "hold"} this port, so every call on this plane goes to ` +
470
+ `${hs.length === 1 ? "it" : "them"}. Quit ${hs.length === 1 ? "it" : "them"}, or set ${portKnob} to the port the ` +
471
+ `Godot side actually uses.`,
472
+ };
473
+ }
474
+ return stop ? { suffix, stop: `${capitalise(stop)}, then retry.` } : { suffix };
475
+ }
476
+ function capitalise(s) {
477
+ return s.length === 0 ? s : s[0].toUpperCase() + s.slice(1);
478
+ }
445
479
  export async function runDoctorChecks(config, opts) {
446
480
  const checks = [];
447
481
  // Capability groups — the secure-default surface + how to widen it (info only).
@@ -466,6 +500,7 @@ export async function runDoctorChecks(config, opts) {
466
500
  port: config.bridgePort,
467
501
  hint: 'Open the editor with the "Breakpoint MCP" plugin enabled — and if it was already open when you ran `breakpoint-mcp init`, close and reopen the project (Godot reads the enabled-plugin list only at project load).',
468
502
  secretEnv: ["BREAKPOINT_BRIDGE_SECRET"],
503
+ portKnob: "BREAKPOINT_BRIDGE_PORT",
469
504
  },
470
505
  {
471
506
  name: "runtime-bridge",
@@ -474,6 +509,7 @@ export async function runDoctorChecks(config, opts) {
474
509
  port: config.runtimePort,
475
510
  hint: "Launch the project (godot_run_project / dbg_launch) with the plugin enabled — it auto-registers the runtime autoload.",
476
511
  secretEnv: ["BREAKPOINT_RUNTIME_SECRET", "BREAKPOINT_BRIDGE_SECRET"],
512
+ portKnob: "BREAKPOINT_RUNTIME_PORT",
477
513
  },
478
514
  {
479
515
  name: "gdscript-lsp",
@@ -481,6 +517,7 @@ export async function runDoctorChecks(config, opts) {
481
517
  host: config.lspHost,
482
518
  port: config.lspPort,
483
519
  hint: "Godot's language server runs while the editor is open (Editor → Editor Settings → Network → Language Server).",
520
+ portKnob: "GODOT_LSP_PORT",
484
521
  },
485
522
  {
486
523
  name: "gdscript-dap",
@@ -488,6 +525,7 @@ export async function runDoctorChecks(config, opts) {
488
525
  host: config.dapHost,
489
526
  port: config.dapPort,
490
527
  hint: "Godot's debug adapter runs while the editor is open (Editor → Editor Settings → Network → Debug Adapter).",
528
+ portKnob: "GODOT_DAP_PORT",
491
529
  },
492
530
  ];
493
531
  // Filled by the handshakes below, read once after them: which bridge reported which
@@ -517,8 +555,15 @@ export async function runDoctorChecks(config, opts) {
517
555
  // process on 9080, and a stale secret (the addon regenerates it into
518
556
  // res://.godot/, so a copied or long-lived config goes quietly wrong).
519
557
  // Both then reported "reachable" here and failed on every real call.
520
- if (b.secretEnv) {
521
- const live = await handshakeOk(config, b, opts.timeoutMs);
558
+ // 🆕 318 — THE PORT IS OPEN, SO SOMETHING HOLDS IT; ASK WHAT. The lookup runs only on a
559
+ // port that accepted a connection, and a lookup that cannot answer leaves every row
560
+ // below exactly as it shipped. See `holderFacts` for what each answer is allowed to change.
561
+ const [holder, live] = await Promise.all([
562
+ whoHolds(b.host, b.port, config.godotBin),
563
+ b.secretEnv ? handshakeOk(config, b, opts.timeoutMs) : Promise.resolve(null),
564
+ ]);
565
+ const facts = holderFacts(holder, b.portKnob);
566
+ if (live !== null) {
522
567
  if (live.addonVersion !== null)
523
568
  liveAddonVersions.set(b.name, live.addonVersion);
524
569
  if (!live.ok) {
@@ -528,18 +573,32 @@ export async function runDoctorChecks(config, opts) {
528
573
  severity,
529
574
  liveness,
530
575
  tier: b.tier,
531
- detail: `${b.host}:${b.port} open, but no Breakpoint bridge answered`,
532
- hint: "Something holds that port without speaking the bridge protocol, or the shared secret is stale. Close other Godot instances, or delete res://.godot/breakpoint_mcp.secret and reopen the editor to remint it.",
576
+ detail: `${b.host}:${b.port} open, but no Breakpoint bridge answered${facts.suffix}`,
577
+ hint: facts.wrongProcess ?? facts.stop ?? "Something holds that port without speaking the bridge protocol, or the shared secret is stale. Close other Godot instances, or delete res://.godot/breakpoint_mcp.secret and reopen the editor to remint it.",
533
578
  };
534
579
  }
535
580
  }
581
+ else if (facts.wrongProcess !== undefined) {
582
+ // Godot's own LSP and DAP ports get only a connect, so a program that is not Godot on
583
+ // 6005 used to read `reachable` and every gd_* call then talked to it. Not a liveness
584
+ // fact: opening the editor does not clear it, because the editor cannot bind a held port.
585
+ return {
586
+ name: b.name,
587
+ status: "fail",
588
+ severity,
589
+ liveness: false,
590
+ tier: b.tier,
591
+ detail: `${b.host}:${b.port} answers, but the listener is not Godot${facts.suffix}`,
592
+ hint: facts.wrongProcess,
593
+ };
594
+ }
536
595
  return {
537
596
  name: b.name,
538
597
  status: "ok",
539
598
  severity,
540
599
  liveness,
541
600
  tier: b.tier,
542
- detail: `${b.host}:${b.port} reachable${b.secretEnv ? " · bridge answered" : ""}`,
601
+ detail: `${b.host}:${b.port} reachable${b.secretEnv ? " · bridge answered" : ""}${facts.suffix}`,
543
602
  };
544
603
  }));
545
604
  checks.push(...bridgeChecks);