@skillcap/gdh 3.2.3 → 4.1.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 (86) hide show
  1. package/INSTALL-BUNDLE.json +1 -1
  2. package/README.md +6 -5
  3. package/RELEASE-SPAN-UPDATE-CONTRACTS.json +125 -0
  4. package/node_modules/@gdh/adapters/dist/index.d.ts.map +1 -1
  5. package/node_modules/@gdh/adapters/dist/index.js +0 -2
  6. package/node_modules/@gdh/adapters/dist/index.js.map +1 -1
  7. package/node_modules/@gdh/adapters/dist/skill-rendering.d.ts.map +1 -1
  8. package/node_modules/@gdh/adapters/dist/skill-rendering.js +26 -30
  9. package/node_modules/@gdh/adapters/dist/skill-rendering.js.map +1 -1
  10. package/node_modules/@gdh/adapters/package.json +7 -7
  11. package/node_modules/@gdh/authoring/dist/lsp.d.ts +12 -0
  12. package/node_modules/@gdh/authoring/dist/lsp.d.ts.map +1 -1
  13. package/node_modules/@gdh/authoring/dist/lsp.js +128 -3
  14. package/node_modules/@gdh/authoring/dist/lsp.js.map +1 -1
  15. package/node_modules/@gdh/authoring/package.json +2 -2
  16. package/node_modules/@gdh/cli/dist/bridge-session.d.ts.map +1 -1
  17. package/node_modules/@gdh/cli/dist/bridge-session.js +11 -25
  18. package/node_modules/@gdh/cli/dist/bridge-session.js.map +1 -1
  19. package/node_modules/@gdh/cli/dist/index.d.ts.map +1 -1
  20. package/node_modules/@gdh/cli/dist/index.js +26 -537
  21. package/node_modules/@gdh/cli/dist/index.js.map +1 -1
  22. package/node_modules/@gdh/cli/dist/migrate.d.ts.map +1 -1
  23. package/node_modules/@gdh/cli/dist/migrate.js +25 -0
  24. package/node_modules/@gdh/cli/dist/migrate.js.map +1 -1
  25. package/node_modules/@gdh/cli/package.json +11 -11
  26. package/node_modules/@gdh/core/dist/editor-operation-runner.d.ts.map +1 -1
  27. package/node_modules/@gdh/core/dist/editor-operation-runner.js +530 -1
  28. package/node_modules/@gdh/core/dist/editor-operation-runner.js.map +1 -1
  29. package/node_modules/@gdh/core/dist/index.d.ts +14 -10
  30. package/node_modules/@gdh/core/dist/index.d.ts.map +1 -1
  31. package/node_modules/@gdh/core/dist/index.js +16 -14
  32. package/node_modules/@gdh/core/dist/index.js.map +1 -1
  33. package/node_modules/@gdh/core/dist/migrations/entries/s3c26_to_s3c27_run_game_knowledge.d.ts +3 -0
  34. package/node_modules/@gdh/core/dist/migrations/entries/s3c26_to_s3c27_run_game_knowledge.d.ts.map +1 -0
  35. package/node_modules/@gdh/core/dist/migrations/entries/s3c26_to_s3c27_run_game_knowledge.js +91 -0
  36. package/node_modules/@gdh/core/dist/migrations/entries/s3c26_to_s3c27_run_game_knowledge.js.map +1 -0
  37. package/node_modules/@gdh/core/dist/migrations/managed-surface-classes.d.ts +7 -2
  38. package/node_modules/@gdh/core/dist/migrations/managed-surface-classes.d.ts.map +1 -1
  39. package/node_modules/@gdh/core/dist/migrations/managed-surface-classes.js +9 -3
  40. package/node_modules/@gdh/core/dist/migrations/managed-surface-classes.js.map +1 -1
  41. package/node_modules/@gdh/core/dist/migrations/managed-target-surface-inventory.d.ts +20 -9
  42. package/node_modules/@gdh/core/dist/migrations/managed-target-surface-inventory.d.ts.map +1 -1
  43. package/node_modules/@gdh/core/dist/migrations/managed-target-surface-inventory.js +22 -10
  44. package/node_modules/@gdh/core/dist/migrations/managed-target-surface-inventory.js.map +1 -1
  45. package/node_modules/@gdh/core/dist/migrations/registry.d.ts +1 -1
  46. package/node_modules/@gdh/core/dist/migrations/registry.d.ts.map +1 -1
  47. package/node_modules/@gdh/core/dist/migrations/registry.js +2 -0
  48. package/node_modules/@gdh/core/dist/migrations/registry.js.map +1 -1
  49. package/node_modules/@gdh/core/dist/run-game-knowledge-scaffold.d.ts +16 -0
  50. package/node_modules/@gdh/core/dist/run-game-knowledge-scaffold.d.ts.map +1 -0
  51. package/node_modules/@gdh/core/dist/run-game-knowledge-scaffold.js +89 -0
  52. package/node_modules/@gdh/core/dist/run-game-knowledge-scaffold.js.map +1 -0
  53. package/node_modules/@gdh/core/package.json +1 -1
  54. package/node_modules/@gdh/docs/dist/guidance.d.ts.map +1 -1
  55. package/node_modules/@gdh/docs/dist/guidance.js +29 -0
  56. package/node_modules/@gdh/docs/dist/guidance.js.map +1 -1
  57. package/node_modules/@gdh/docs/dist/templates/guidance/editor-bridge.md.tpl +4 -1
  58. package/node_modules/@gdh/docs/dist/templates/guidance/runtime.md.tpl +33 -0
  59. package/node_modules/@gdh/docs/package.json +2 -2
  60. package/node_modules/@gdh/editor/dist/index.d.ts +101 -0
  61. package/node_modules/@gdh/editor/dist/index.d.ts.map +1 -1
  62. package/node_modules/@gdh/editor/dist/index.js +166 -5
  63. package/node_modules/@gdh/editor/dist/index.js.map +1 -1
  64. package/node_modules/@gdh/editor/package.json +2 -2
  65. package/node_modules/@gdh/mcp/dist/bridge-tools.d.ts +3 -4
  66. package/node_modules/@gdh/mcp/dist/bridge-tools.d.ts.map +1 -1
  67. package/node_modules/@gdh/mcp/dist/bridge-tools.js +5 -77
  68. package/node_modules/@gdh/mcp/dist/bridge-tools.js.map +1 -1
  69. package/node_modules/@gdh/mcp/dist/index.d.ts.map +1 -1
  70. package/node_modules/@gdh/mcp/dist/index.js +832 -249
  71. package/node_modules/@gdh/mcp/dist/index.js.map +1 -1
  72. package/node_modules/@gdh/mcp/package.json +8 -8
  73. package/node_modules/@gdh/observability/package.json +2 -2
  74. package/node_modules/@gdh/runtime/dist/bridge-broker.d.ts +9 -1
  75. package/node_modules/@gdh/runtime/dist/bridge-broker.d.ts.map +1 -1
  76. package/node_modules/@gdh/runtime/dist/bridge-broker.js +267 -52
  77. package/node_modules/@gdh/runtime/dist/bridge-broker.js.map +1 -1
  78. package/node_modules/@gdh/runtime/dist/bridge-surface.js +11 -3
  79. package/node_modules/@gdh/runtime/dist/bridge-surface.js.map +1 -1
  80. package/node_modules/@gdh/runtime/package.json +2 -2
  81. package/node_modules/@gdh/scan/dist/onboard.d.ts.map +1 -1
  82. package/node_modules/@gdh/scan/dist/onboard.js +60 -180
  83. package/node_modules/@gdh/scan/dist/onboard.js.map +1 -1
  84. package/node_modules/@gdh/scan/package.json +3 -3
  85. package/node_modules/@gdh/verify/package.json +6 -6
  86. package/package.json +12 -12
@@ -51,8 +51,7 @@ const ONBOARD_TERMS = [
51
51
  "`inventory cache`: `.gdh-state/inventory.json`, derived machine-local project discovery data.",
52
52
  "`target prepare`: GDH's worktree/import readiness check; it can report a cold worktree before validation is trustworthy.",
53
53
  "`guidance status`: GDH's report for generated `.gdh/guidance/` visibility and freshness.",
54
- "`run config`: a project-owned GDH recipe for launching the game or related processes.",
55
- "`verification scenario`: a project-owned runtime proof recipe that can be run after a run config launches.",
54
+ "`run-game knowledge`: project-owned runtime knowledge under `.gdh/runtime-knowledge/run-game.md` that records how this project is actually launched.",
56
55
  "`machine-local path`: a path valid only on this computer, such as the Godot editor binary path; keep it in `.gdh-state/`, not committed config.",
57
56
  ];
58
57
  const STATUS_TERMS = [
@@ -89,11 +88,11 @@ const PREPARE_TERMS = [
89
88
  "`source target`: a sibling checkout used as the source for `.godot/` hydration.",
90
89
  ];
91
90
  const RUN_GAME_TERMS = [
92
- "`run config`: a project-owned GDH recipe under `.gdh/run-configurations/` for launching the game, client, server, or related runtime process.",
93
- "`verification scenario`: a reusable runtime proof under `.gdh/verification-scenarios/` that runs against a run config.",
94
- "`statusPromotion`: `run-config run` output that can report `candidate_observed` when a draft run config launches successfully.",
95
- "`observed`: a run-config status meaning it has launched successfully at least once; `draft` means GDH has not captured that proof yet.",
96
- "`bridge session`: a GDH-managed interactive game run started with `bridge session start`; it can be listed, inspected, driven, screenshotted, and stopped later.",
91
+ "`run-game knowledge`: `.gdh/runtime-knowledge/run-game.md`, the project-owned source of truth for how agents should run this game.",
92
+ "`run mode`: one project-specific way to start the game or a related process, such as editor play, headless smoke, dedicated server, client, Docker Compose, or a project wrapper script.",
93
+ "`run evidence`: logs, screenshots, bridge transcripts, command/cwd/env notes, and observations saved under `.gdh-state/runs/<timestamp>-<mode>/` when preserving them helps the task.",
94
+ "`stale run knowledge`: run-game knowledge that no longer matches source-backed launch behavior after project scripts, `project.godot`, scenes, services, env examples, export presets, or bridge setup change.",
95
+ "`runtime bridge`: the optional GDH bridge addon/autoload. Agents activate it through the project's real launch command by supplying bridge environment variables when bridge-backed inspection is useful.",
97
96
  ];
98
97
  const WARMUP_TERMS = [
99
98
  "`managed LSP`: the GDH-spawned headless Godot editor that serves diagnostics for `.gd`; edit-loop hooks are `.gd`-only, while scenes/resources need final evidence or project-specific validators.",
@@ -126,7 +125,7 @@ export const GDH_SKILL_DEFINITIONS = {
126
125
  "If `status` reports an incompatible lifecycle, missing project config, or blocking setup reason, stop broad probing and surface GDH recovery hints before running optional authoring/runtime inventory commands.",
127
126
  `Run \`${pin(version)} authoring check\` only when structured GDH status shows authoring capability is available or degraded; say why it was skipped when it is unavailable.`,
128
127
  `Run \`${pin(version)} lsp status\` only when \`authoring check\` reports LSP unavailable/degraded, changed files include \`.gd\`, or the user explicitly asks about LSP. Treat this as lifecycle visibility only, never as code-validity evidence.`,
129
- `Inspect \`${pin(version)} run-config list\` and \`${pin(version)} verification-scenario list\` and call out anything draft, missing, or blocked.`,
128
+ "Inspect `.gdh/runtime-knowledge/run-game.md` and call out whether run-game knowledge is still draft, missing, or stale.",
130
129
  "If GDH reports `godot_editor_not_configured`, explain that GDH checked `GDH_GODOT_EDITOR_BIN`, target-local `.gdh-state/local-paths.json`, `~/.gdh/config.json`, and safe common editor locations; ask for the local path and explicit permission before recording it only after those fail, and prefer reusable `~/.gdh/config.json` `godotEditorBinPath` over a target-local override when the path should apply across projects.",
131
130
  "Ask the human only for narrow unresolved environment or target facts.",
132
131
  "End with a concise readiness summary and the exact next development step.",
@@ -292,36 +291,33 @@ export const GDH_SKILL_DEFINITIONS = {
292
291
  "run-game": {
293
292
  id: "run-game",
294
293
  name: "gdh-run-game",
295
- description: "List, check, and run GDH game run configurations",
296
- shortDescription: "Run GDH game configs",
297
- objective: "List, inspect, check, and run GDH run configurations for the managed Godot target while preserving evidence and keeping run-config truth honest.",
294
+ description: "Use and maintain project-specific guidance for running the Godot game",
295
+ shortDescription: "Run the Godot game",
296
+ objective: "Run the managed Godot target using the project's real launch workflow, preserve useful evidence, and keep project-owned run-game knowledge accurate.",
298
297
  terms: RUN_GAME_TERMS,
299
298
  claudeTools: ["Read", "Grep", "Glob", "Bash", "AskUserQuestion"],
300
299
  userQuestions: [
301
- "Ask only when the user did not name a run config and there is no single obvious default.",
300
+ "Ask only when the user did not name a run mode and there is no single obvious default.",
302
301
  "If structured user-input tooling is unavailable, ask concise plain-text questions instead.",
303
302
  ],
304
303
  process: (version) => [
305
- "Use this skill when the user asks to run, start, launch, open, smoke-test, or verify the game/client/server; asks what run configs exist; names a run config; asks for runtime proof, screenshot, or a bridge session; or reports a previous game launch failed.",
306
- "Before running commands, identify the managed target directory that contains this skill. If the agent was launched from a repo root, app subdirectory, or sibling workspace, pass that target path as the optional positional `[target]` argument instead of relying on current working directory.",
307
- `Run \`${pin(version)} run-config list [target]\` and parse stdout JSON before guessing available launch options.`,
308
- `If the user asks what can run, also run \`${pin(version)} verification-scenario list [target]\` and summarize run configs by id, name, status, providers, project path, and \`draftReason\`; call out draft configs without treating draft as failure.`,
309
- "If the user asks to run the game but does not name a run config, choose the configured default from `.gdh/project.yaml` when present; if no default is present and more than one run config exists, ask one narrow question with the most relevant config ids.",
310
- `Run \`${pin(version)} run-config show [target] <run-config-id>\` for the selected config and read its launch kind, project path, env, feature flags, and pre-checks before launching.`,
311
- `Run \`${pin(version)} run-config check [target] <run-config-id>\` with any requested \`--provider\`, \`--param\`, \`--feature\`, \`--no-feature\`, or \`--env\` values before launching.`,
312
- "If check state is `blocked` or `misconfigured`, stop and report `summary`, `reasons`, failing `preChecks`, and the exact missing environment or project fact. Do not fall back to hand-built shell commands.",
313
- `For bounded evidence runs, run \`${pin(version)} run-config run [target] <run-config-id>\` with the same options. Add \`--live-workspace\` only when the user asked to affect the current checkout; default isolated runs are safer.`,
314
- `If the user needs an ongoing interactive game session, run \`${pin(version)} bridge session start [target] <run-config-id>\` after check passes. Use \`${pin(version)} bridge session list [target]\`, \`get [target] <session-id>\`, \`entries [target] <session-id>\`, \`invoke [target] <session-id> <entry-id>\`, \`screenshot [target] <session-id>\`, and \`stop [target] <session-id>\` for follow-up work. Do not invent a custom background shell launch when bridge session start is unavailable; report the blocker and offer a bounded \`run-config run\` instead.`,
315
- "After a successful run or session start, report the selected config, target path, state, artifact paths or session id, and `statusPromotion`. If `statusPromotion` is `candidate_observed`, tell the user the run config is eligible to be promoted from `draft` to `observed`; do not silently edit durable `.gdh/run-configurations/*.yaml` unless a supported promotion command or explicit project edit is requested.",
316
- "If the run revealed stale or wrong run-config details, update project-owned run-config YAML or runtime knowledge only with source-backed evidence and explicit user approval; keep machine-local paths in `.gdh-state/`, not committed config.",
304
+ "Use this skill when the user asks to run, start, launch, open, smoke-test, or verify the game/client/server; asks how this project runs; asks for runtime proof, logs, screenshot, or bridge-backed inspection; or reports that a previous launch failed.",
305
+ "Identify the managed target directory that contains this skill. Read `.gdh/project.yaml`, `.gdh/runtime-knowledge/run-game.md`, and nearby project-owned launch sources before asking the user for facts already present in the repo.",
306
+ "Relevant launch sources include README/run docs, package/task scripts, Makefile/justfile, Docker Compose/Tilt files, export presets, env examples, `project.godot` `run/main_scene`, project launch wrappers, and CI commands.",
307
+ "If `.gdh/runtime-knowledge/run-game.md` is missing, empty, draft, or contradicted by source-backed project files, inspect the launch sources first and update the file with the discovered run modes before or immediately after the run. Do not invent a GDH wrapper to make the project fit a fixed API.",
308
+ "Choose the run mode that matches the user's intent. If several modes are plausible and the user did not specify one, ask one narrow question naming the most relevant modes.",
309
+ "Before launching, note the working directory, command, important env vars, expected ready signal, stop/cleanup method, and where logs will go. Keep machine-local paths and secrets out of committed guidance.",
310
+ "Run the real project command. For Godot fallback commands, prefer the configured project root plus normal Godot CLI flags such as `--path <project-root>`, `--scene <path>` when testing a specific scene, `--headless` for non-visual smoke runs, `--audio-driver Dummy` when audio devices are irrelevant, and bounded quit/time behavior when the project supports it.",
311
+ "When evidence is useful, create `.gdh-state/runs/<timestamp>-<mode>/` and save command/cwd/env notes, exit code, and stdout/stderr logs there. Capture the process exit code immediately after the launch command with a portable variable name such as `exit_code`; avoid shell-reserved names such as zsh's `status`. Use `tee` or shell redirection only when it does not hide interactive output the task needs.",
312
+ `Use \`${pin(version)} bridge status [target]\` to check whether the GDH bridge addon/autoload is installed and healthy. To use the runtime bridge with a project-owned launch, run the project's real command with bridge env vars (GDH_BRIDGE_ENABLED=1, GDH_BRIDGE_PORT, GDH_BRIDGE_TOKEN, GDH_BRIDGE_SESSION_ID, optional GDH_BRIDGE_BIND_HOST=127.0.0.1) and record those non-secret session facts in the run evidence, not in committed guidance.`,
313
+ "After the run, report the mode, command, cwd, observed state, log/artifact paths, cleanup performed, and any run-game knowledge updates. If the run failed because the documented knowledge was stale, say which source-backed fact changed.",
317
314
  ],
318
315
  rules: () => [
319
- "Prefer GDH run-config and verification-scenario commands over ad hoc launch commands.",
320
- "Never treat `run-config check` as proof the game actually launched; it only proves launch readiness.",
321
- "Use bridge sessions for ongoing interactive runs; use run-config runs for bounded evidence.",
322
- "Do not use short timeout monitors or unmanaged background shell processes for long-running Godot sessions.",
323
- "Do not promote draft run configs based on memory or chat history; require successful run evidence.",
324
- "Keep output operational: target, selected config, check state, launch/session result, artifacts or session id, and next step.",
316
+ "Prefer project-owned launch workflows over GDH-owned wrappers.",
317
+ "Do not use the retired gdh run-config, gdh verification-scenario, or gdh verify run commands as the runtime path; run configs are retired as an agent-facing launch model.",
318
+ "Do not leave long-running processes behind. Track process ids when backgrounding, stop them when the task no longer needs them, and report any process you could not clean up.",
319
+ "Update `.gdh/runtime-knowledge/run-game.md` only with source-backed or freshly observed facts, and do not store secrets or machine-local paths there.",
320
+ "Keep output operational: target, selected run mode, command/cwd, result, evidence paths, cleanup, and next step.",
325
321
  ],
326
322
  },
327
323
  warmup: {
@@ -1 +1 @@
1
- {"version":3,"file":"skill-rendering.js","sourceRoot":"","sources":["../src/skill-rendering.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skill-rendering.js","sourceRoot":"","sources":["../src/skill-rendering.ts"],"names":[],"mappings":"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"}
@@ -11,12 +11,12 @@
11
11
  }
12
12
  },
13
13
  "dependencies": {
14
- "@gdh/authoring": "3.2.3",
15
- "@gdh/core": "3.2.3",
16
- "@gdh/docs": "3.2.3",
17
- "@gdh/observability": "3.2.3",
18
- "@gdh/runtime": "3.2.3",
19
- "@gdh/scan": "3.2.3"
14
+ "@gdh/authoring": "4.1.0",
15
+ "@gdh/core": "4.1.0",
16
+ "@gdh/docs": "4.1.0",
17
+ "@gdh/observability": "4.1.0",
18
+ "@gdh/runtime": "4.1.0",
19
+ "@gdh/scan": "4.1.0"
20
20
  },
21
- "version": "3.2.3"
21
+ "version": "4.1.0"
22
22
  }
@@ -1,4 +1,15 @@
1
1
  import type { GdhAuthoringCheckResult, GdhAuthoringLspWarmupResult, GdhAuthoringSeverityPolicy, GdhAuthoringStatusResult, GdhLspLauncherKind, GdhManagedLspStatusResult, GdhProjectConfig, GdhWorktreeIdentity } from "@gdh/core";
2
+ import { type GdhProcessTerminationResult } from "@gdh/core";
3
+ interface GdhDiscoveredManagedLspProcess {
4
+ readonly pid: number;
5
+ readonly command: string;
6
+ readonly projectPath: string;
7
+ readonly port: number;
8
+ }
9
+ interface GdhManagedLspProcessEnvironment {
10
+ readonly discoverManagedLspProcesses?: (projectPath: string) => Promise<readonly GdhDiscoveredManagedLspProcess[]>;
11
+ readonly terminateProcess?: (pid: number) => Promise<GdhProcessTerminationResult>;
12
+ }
2
13
  type GdhManagedLspLifecycleCommand = "check" | "stop" | "restart" | "prune" | "doctor";
3
14
  type GdhManagedLspLifecycleCommandStatus = "ready" | "degraded" | "unavailable" | "stopped" | "pruned" | "not_found";
4
15
  export interface GdhManagedLspLifecycleCommandResult {
@@ -66,6 +77,7 @@ export declare function pruneManagedLsp(input: {
66
77
  readonly targetPath: string;
67
78
  readonly status: GdhAuthoringStatusResult;
68
79
  readonly projectConfig: GdhProjectConfig | null;
80
+ readonly processEnvironment?: GdhManagedLspProcessEnvironment | undefined;
69
81
  }): Promise<GdhManagedLspLifecycleCommandResult>;
70
82
  export declare function doctorManagedLsp(input: {
71
83
  readonly targetPath: string;
@@ -1 +1 @@
1
- {"version":3,"file":"lsp.d.ts","sourceRoot":"","sources":["../src/lsp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lsp.d.ts","sourceRoot":"","sources":["../src/lsp.ts"],"names":[],"mappings":"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"}
@@ -466,6 +466,34 @@ export async function pruneManagedLsp(input) {
466
466
  const persisted = await readPersistedInstance(worktree);
467
467
  const expectedIdentity = await resolveCurrentManagedLspIdentity(worktree, path.resolve(input.targetPath, input.status.primaryProjectPath ?? "."));
468
468
  if (persisted === null) {
469
+ const orphanCleanup = await cleanupDuplicateManagedLspProcesses({
470
+ projectPath: path.resolve(input.targetPath, input.status.primaryProjectPath ?? "."),
471
+ activePid: null,
472
+ processEnvironment: input.processEnvironment,
473
+ });
474
+ if (orphanCleanup.discovered.length > 0) {
475
+ return createLifecycleCommandResult({
476
+ targetPath: input.targetPath,
477
+ command: "prune",
478
+ status: "pruned",
479
+ summary: "Pruned orphaned managed authoring.lsp Godot processes for this worktree.",
480
+ reasons: dedupe([
481
+ ...stateLock.recoveredReasons,
482
+ "lsp_instance_not_found",
483
+ "orphan_lsp_processes_pruned",
484
+ ]),
485
+ worktree,
486
+ instance: null,
487
+ transportStatus: "unknown",
488
+ transportReasons: ["orphan_lsp_processes_pruned"],
489
+ transportRawPayload: { duplicateCleanup: orphanCleanup },
490
+ cleanupStatus: "pruned",
491
+ cleanupReason: "orphan_lsp_processes_pruned",
492
+ killedPid: orphanCleanup.terminated.some((entry) => !entry.termination.stillRunning),
493
+ recommendations: ["Run `gdh lsp status` when a managed instance is needed again."],
494
+ statusResult: null,
495
+ });
496
+ }
469
497
  return createLifecycleCommandResult({
470
498
  targetPath: input.targetPath,
471
499
  command: "prune",
@@ -513,6 +541,33 @@ export async function pruneManagedLsp(input) {
513
541
  statusResult: null,
514
542
  });
515
543
  }
544
+ const duplicateCleanup = await cleanupDuplicateManagedLspProcesses({
545
+ projectPath: persisted.instance.projectPath,
546
+ activePid: persisted.instance.pid,
547
+ processEnvironment: input.processEnvironment,
548
+ });
549
+ if (duplicateCleanup.discovered.length > 0) {
550
+ return createLifecycleCommandResult({
551
+ targetPath: input.targetPath,
552
+ command: "prune",
553
+ status: "pruned",
554
+ summary: "Pruned duplicate managed authoring.lsp Godot processes and kept the reusable instance.",
555
+ reasons: dedupe([...stateLock.recoveredReasons, "duplicate_lsp_processes_pruned"]),
556
+ worktree,
557
+ instance: persisted.instance,
558
+ transportStatus: "healthy",
559
+ transportReasons: [],
560
+ transportRawPayload: {
561
+ ...(validation.rawPayload ?? {}),
562
+ duplicateCleanup,
563
+ },
564
+ cleanupStatus: "pruned",
565
+ cleanupReason: "duplicate_lsp_processes_pruned",
566
+ killedPid: duplicateCleanup.terminated.some((entry) => !entry.termination.stillRunning),
567
+ recommendations: [],
568
+ statusResult: null,
569
+ });
570
+ }
516
571
  return createLifecycleCommandResult({
517
572
  targetPath: input.targetPath,
518
573
  command: "prune",
@@ -1594,9 +1649,7 @@ async function cleanupPersistedInstance(worktree, instance, reason, options = {}
1594
1649
  : validatePersistedInstanceIdentity(instance, options.expectedIdentity);
1595
1650
  if (identityValidation.reusable) {
1596
1651
  termination = await terminateProcess({ pid: instance.pid });
1597
- killedPid =
1598
- termination.state === "graceful_exit" ||
1599
- termination.state === "hard_killed";
1652
+ killedPid = termination.state === "graceful_exit" || termination.state === "hard_killed";
1600
1653
  killReason = killedPid ? reason : null;
1601
1654
  }
1602
1655
  }
@@ -1622,6 +1675,74 @@ async function cleanupPersistedInstance(worktree, instance, reason, options = {}
1622
1675
  processMayStillBeAlive: termination?.stillRunning ?? false,
1623
1676
  };
1624
1677
  }
1678
+ async function cleanupDuplicateManagedLspProcesses(input) {
1679
+ const discover = input.processEnvironment?.discoverManagedLspProcesses ?? discoverManagedLspProcesses;
1680
+ const terminate = input.processEnvironment?.terminateProcess ?? ((pid) => terminateProcess({ pid }));
1681
+ const discovered = (await discover(input.projectPath)).filter((processInfo) => input.activePid === null || processInfo.pid !== input.activePid);
1682
+ const terminated = [];
1683
+ for (const processInfo of discovered) {
1684
+ const termination = await terminate(processInfo.pid);
1685
+ terminated.push({ process: processInfo, termination });
1686
+ }
1687
+ return { discovered, terminated };
1688
+ }
1689
+ async function discoverManagedLspProcesses(projectPath) {
1690
+ if (process.platform === "win32")
1691
+ return [];
1692
+ const { stdout } = await execFileAsync("ps", ["-axo", "pid=,command="]).catch(() => ({
1693
+ stdout: "",
1694
+ }));
1695
+ return parseManagedLspProcesses(stdout, projectPath);
1696
+ }
1697
+ function parseManagedLspProcesses(stdout, projectPath) {
1698
+ const expectedProjectPath = path.resolve(projectPath);
1699
+ const processes = [];
1700
+ for (const line of stdout.split(/\r?\n/)) {
1701
+ const match = line.trim().match(/^(\d+)\s+(.+)$/);
1702
+ if (match === null)
1703
+ continue;
1704
+ const pid = Number(match[1]);
1705
+ const command = match[2] ?? "";
1706
+ if (!Number.isInteger(pid) || pid <= 0)
1707
+ continue;
1708
+ if (!command.includes("--headless") || !command.includes("--editor"))
1709
+ continue;
1710
+ const lspPort = extractCommandFlagValue(command, "--lsp-port");
1711
+ if (lspPort === null)
1712
+ continue;
1713
+ const port = Number(lspPort);
1714
+ if (!Number.isInteger(port) || port <= 0)
1715
+ continue;
1716
+ const commandProjectPath = extractCommandFlagValue(command, "--path");
1717
+ if (commandProjectPath === null)
1718
+ continue;
1719
+ if (path.resolve(commandProjectPath) !== expectedProjectPath)
1720
+ continue;
1721
+ processes.push({ pid, command, projectPath: commandProjectPath, port });
1722
+ }
1723
+ return processes;
1724
+ }
1725
+ function extractCommandFlagValue(command, flag) {
1726
+ const flagIndex = command.indexOf(`${flag} `);
1727
+ if (flagIndex < 0)
1728
+ return null;
1729
+ const valueStart = flagIndex + flag.length + 1;
1730
+ const nextFlagIndex = command.indexOf(" --", valueStart);
1731
+ const rawValue = nextFlagIndex < 0 ? command.slice(valueStart) : command.slice(valueStart, nextFlagIndex);
1732
+ const value = rawValue.trim();
1733
+ return value.length > 0 ? value : null;
1734
+ }
1735
+ function execFileAsync(file, args) {
1736
+ return new Promise((resolve, reject) => {
1737
+ execFile(file, [...args], { maxBuffer: 10 * 1024 * 1024 }, (error, stdout, stderr) => {
1738
+ if (error) {
1739
+ reject(error);
1740
+ return;
1741
+ }
1742
+ resolve({ stdout, stderr });
1743
+ });
1744
+ });
1745
+ }
1625
1746
  async function launchManagedInstance(worktree, projectPath) {
1626
1747
  const testMode = process.env["GDH_TEST_LSP_MODE"];
1627
1748
  if (testMode) {
@@ -1668,6 +1789,10 @@ async function launchManagedInstance(worktree, projectPath) {
1668
1789
  detached: true,
1669
1790
  stdio: "ignore",
1670
1791
  cwd: projectPath,
1792
+ env: {
1793
+ ...process.env,
1794
+ GDH_EDITOR_ADOPTION_DISABLED: "1",
1795
+ },
1671
1796
  });
1672
1797
  child.unref();
1673
1798
  if (child.pid === undefined) {