@skillcap/gdh 0.13.0 → 0.13.2

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 (42) hide show
  1. package/INSTALL-BUNDLE.json +1 -1
  2. package/README.md +4 -4
  3. package/RELEASE-SPAN-UPDATE-CONTRACTS.json +122 -0
  4. package/node_modules/@gdh/adapters/dist/index.d.ts.map +1 -1
  5. package/node_modules/@gdh/adapters/dist/index.js +65 -18
  6. package/node_modules/@gdh/adapters/dist/index.js.map +1 -1
  7. package/node_modules/@gdh/adapters/package.json +8 -8
  8. package/node_modules/@gdh/authoring/dist/prepare.d.ts.map +1 -1
  9. package/node_modules/@gdh/authoring/dist/prepare.js +28 -10
  10. package/node_modules/@gdh/authoring/dist/prepare.js.map +1 -1
  11. package/node_modules/@gdh/authoring/package.json +2 -2
  12. package/node_modules/@gdh/cli/dist/index.d.ts.map +1 -1
  13. package/node_modules/@gdh/cli/dist/index.js +1 -0
  14. package/node_modules/@gdh/cli/dist/index.js.map +1 -1
  15. package/node_modules/@gdh/cli/package.json +10 -10
  16. package/node_modules/@gdh/core/dist/godot-stderr-fatality.d.ts +10 -0
  17. package/node_modules/@gdh/core/dist/godot-stderr-fatality.d.ts.map +1 -0
  18. package/node_modules/@gdh/core/dist/godot-stderr-fatality.js +52 -0
  19. package/node_modules/@gdh/core/dist/godot-stderr-fatality.js.map +1 -0
  20. package/node_modules/@gdh/core/dist/index.d.ts +1 -0
  21. package/node_modules/@gdh/core/dist/index.d.ts.map +1 -1
  22. package/node_modules/@gdh/core/dist/index.js +1 -0
  23. package/node_modules/@gdh/core/dist/index.js.map +1 -1
  24. package/node_modules/@gdh/core/package.json +1 -1
  25. package/node_modules/@gdh/docs/dist/guidance.d.ts.map +1 -1
  26. package/node_modules/@gdh/docs/dist/guidance.js +2 -1
  27. package/node_modules/@gdh/docs/dist/guidance.js.map +1 -1
  28. package/node_modules/@gdh/docs/package.json +2 -2
  29. package/node_modules/@gdh/mcp/package.json +8 -8
  30. package/node_modules/@gdh/observability/package.json +2 -2
  31. package/node_modules/@gdh/runtime/dist/bridge-surface.js +1 -1
  32. package/node_modules/@gdh/runtime/dist/bridge-surface.js.map +1 -1
  33. package/node_modules/@gdh/runtime/dist/index.d.ts.map +1 -1
  34. package/node_modules/@gdh/runtime/dist/index.js +11 -41
  35. package/node_modules/@gdh/runtime/dist/index.js.map +1 -1
  36. package/node_modules/@gdh/runtime/package.json +2 -2
  37. package/node_modules/@gdh/scan/package.json +3 -3
  38. package/node_modules/@gdh/verify/dist/scenarios.d.ts.map +1 -1
  39. package/node_modules/@gdh/verify/dist/scenarios.js +59 -53
  40. package/node_modules/@gdh/verify/dist/scenarios.js.map +1 -1
  41. package/node_modules/@gdh/verify/package.json +7 -7
  42. package/package.json +11 -11
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "product": "GDH",
3
- "version": "0.13.0",
3
+ "version": "0.13.2",
4
4
  "installMode": "packaged_install"
5
5
  }
package/README.md CHANGED
@@ -12,10 +12,10 @@ GDH detects your Godot project, configures your AI agents, and gives them the co
12
12
  ## Install
13
13
 
14
14
  ```sh
15
- npx -y @skillcap/gdh@0.13.0 setup
15
+ npx -y @skillcap/gdh@0.13.2 setup
16
16
  ```
17
17
 
18
- Replace `0.13.0` with the GDH version you want to pin this project to. `gdh setup` records the pinned version in `.gdh/project.yaml`; every managed surface generated from that config invokes GDH at that exact pinned version, so future sessions stay reproducible.
18
+ Replace `0.13.2` with the GDH version you want to pin this project to. `gdh setup` records the pinned version in `.gdh/project.yaml`; every managed surface generated from that config invokes GDH at that exact pinned version, so future sessions stay reproducible.
19
19
 
20
20
  From `0.9.0` onward, the shipped package also carries bounded release-span update metadata in `RELEASE-SPAN-UPDATE-CONTRACTS.json` so update flows can explain release-specific migration steps without reading repo-only `docs/releases/` files at target runtime.
21
21
 
@@ -36,7 +36,7 @@ The full install and update contract lives in [install-and-update.md](docs/devel
36
36
 
37
37
  ```sh
38
38
  # 1. Run setup in your Godot project
39
- npx -y @skillcap/gdh@0.13.0 setup
39
+ npx -y @skillcap/gdh@0.13.2 setup
40
40
 
41
41
  # 2. Open your AI agent (Claude, Cursor, Codex) in the repo
42
42
 
@@ -101,7 +101,7 @@ The CLI exists for advanced operators, debugging, and automation. Update preview
101
101
 
102
102
  ## Status
103
103
 
104
- GDH now ships the current `0.13.0` release line and remains ready for broader internal use within the documented support contract. The current release line is `0.13.0` at the `broader_internal_release` stage.
104
+ GDH now ships the current `0.13.2` release line and remains ready for broader internal use within the documented support contract. The current release line is `0.13.2` at the `broader_internal_release` stage.
105
105
  That line includes one first-class Docker-backed rendered runtime provider and bounded screenshot evidence on rendered-capable paths.
106
106
 
107
107
  The release-stage label applies only to the documented support window in [runtime-support-matrix.md](docs/development/runtime-support-matrix.md) and [runtime-release-readiness.md](docs/development/runtime-release-readiness.md). It is not a blanket claim that every Godot project shape is supported or that this implementation checkout should behave like a GDH-managed target repo.
@@ -769,6 +769,128 @@
769
769
  }
770
770
  ]
771
771
  }
772
+ },
773
+ {
774
+ "version": "0.13.1",
775
+ "releaseTag": "v0.13.1",
776
+ "migrationStatus": "required",
777
+ "summary": "v0.13.1 fixes the malformed managed runtime-bridge plugin.cfg script path shipped in v0.13.0 and stops authoring import refresh from treating exit-0 Godot runs with fatal stderr as successful hydration. Targets without the GDH runtime bridge stay on the standard post-update verification path, but bridge-enabled targets carrying the broken v0.13.0 generated plugin.cfg may need one release-specific bridge repair so the managed bridge files match the shipped patch line.",
778
+ "releaseHighlights": {
779
+ "summary": "v0.13.1 is a dogfooding-driven patch release. It fixes the malformed runtime-bridge `plugin.cfg` script path shipped in v0.13.0 and stops `gdh target prepare` / `gdh imports refresh` from treating exit-`0` Godot import passes with fatal stderr as successful hydration.",
780
+ "operatorChanges": [
781
+ "**Managed bridge plugin config now loads correctly.** GDH now writes `addons/gdh_bridge/plugin.cfg` with `script=\"plugin.gd\"` instead of the malformed absolute addon path that Godot re-prefixed into `res://addons/gdh_bridge/res:/addons/gdh_bridge/plugin.gd`.",
782
+ "**Authoring import refresh no longer reports false success on noisy exit-`0` Godot runs.** `gdh target prepare`, `gdh imports refresh`, and the shared Godot stderr evaluator now treat fatal engine stderr as blocking evidence even when the process exits cleanly.",
783
+ "**Authoring guidance now points operators at the real evidence.** When import refresh blocks on exit `0`, the generated guidance tells agents and operators to inspect `importRefresh.processOutput.stderr` instead of assuming the import pass was healthy."
784
+ ]
785
+ },
786
+ "updateContract": {
787
+ "summary": "Bridge-enabled targets carrying the broken v0.13.0 managed plugin.cfg may need one release-specific bridge repair after self-update; targets without the GDH runtime bridge stay on the standard verification path, and import-refresh failures now surface fatal Godot stderr as blocking evidence instead of false hydration.",
788
+ "steps": [
789
+ {
790
+ "id": "verify_post_update_status",
791
+ "kind": "mechanical",
792
+ "summary": "Run the normal post-update verification path.",
793
+ "detail": "Start with the standard drift and status checks so GDH can tell you whether the target stayed healthy or entered the narrow v0.13.1 bridge-repair branch.",
794
+ "commands": [
795
+ "gdh verify drift"
796
+ ],
797
+ "validationCommands": [
798
+ "gdh status"
799
+ ]
800
+ },
801
+ {
802
+ "id": "inspect_bridge_and_authoring_follow_through",
803
+ "kind": "agent_reasoning",
804
+ "summary": "Decide whether the target actually needs the v0.13.1 bridge-repair branch.",
805
+ "detail": "If the target uses the GDH runtime bridge and `gdh status` or `gdh bridge status` surfaces runtime-bridge drift, take the repair branch below. If authoring import refresh now blocks after an exit-0 Godot run, inspect `importRefresh.processOutput.stderr`; v0.13.1 treats fatal Godot stderr as blocking evidence on purpose.",
806
+ "commands": [
807
+ "gdh bridge status",
808
+ "gdh authoring check"
809
+ ],
810
+ "validationCommands": [
811
+ "gdh status"
812
+ ]
813
+ },
814
+ {
815
+ "id": "repair_broken_bridge_plugin_cfg",
816
+ "kind": "mechanical",
817
+ "summary": "Repair the managed bridge files when the target still carries the broken plugin.cfg.",
818
+ "detail": "Bridge-enabled targets carrying the malformed v0.13.0 generated plugin.cfg need `gdh bridge repair` so GDH rewrites the managed bridge files with the corrected `script=\"plugin.gd\"` entry. Targets without bridge drift do not need this step.",
819
+ "commands": [
820
+ "gdh bridge repair"
821
+ ],
822
+ "validationCommands": [
823
+ "gdh bridge status",
824
+ "gdh status"
825
+ ]
826
+ },
827
+ {
828
+ "id": "finish_plugin_registration_if_still_missing",
829
+ "kind": "manual_review",
830
+ "summary": "Only if needed, let Godot register `GDHBridge` after repair.",
831
+ "detail": "If `gdh bridge status` still reports `runtime_bridge_plugin_enable_required` after repair, open the project in Godot and ensure the `GDH Runtime Bridge` plugin is enabled so it can register `GDHBridge`. Do not assume the plugin needs re-enabling on every target; only take this step when status still says the autoload is missing.",
832
+ "commands": [
833
+ "gdh bridge status"
834
+ ],
835
+ "validationCommands": [
836
+ "gdh bridge status",
837
+ "gdh status"
838
+ ]
839
+ }
840
+ ]
841
+ }
842
+ },
843
+ {
844
+ "version": "0.13.2",
845
+ "releaseTag": "v0.13.2",
846
+ "migrationStatus": "no_op",
847
+ "summary": "v0.13.2 keeps managed surface versions unchanged while tightening ordinary update and runtime-verification follow-through. `gdh self-update` and `gdh migrate --apply` now auto-repair the known v0.13.0 runtime-bridge `plugin.cfg` drift before terminal classification, update guidance now makes long-lived MCP reconnect explicit before trusting post-update MCP output, verification scenarios now reject `artifact_policy.screenshots: \"fallback\"`, and interrupted `gdh verify run` executions now keep an inspectable provisional run record. Existing targets do not require a new release-scoped managed-project migrate step for this release line.",
848
+ "releaseHighlights": {
849
+ "summary": "v0.13.2 is a patch release for GDH's update and runtime-verification follow-through. The ordinary update path now auto-repairs the known v0.13.0 runtime-bridge `plugin.cfg` drift before terminal classification, long-lived MCP sessions are now explicitly told to reconnect after `gdh self-update`, verification scenarios no longer support `artifact_policy.screenshots: \"fallback\"`, and interrupted `gdh verify run` executions now keep an inspectable run record instead of dropping into `run_record_metadata_missing`.",
850
+ "operatorChanges": [
851
+ "**Known v0.13.0 bridge drift now repairs inline during update and migrate.** When a target still carries the malformed managed `addons/gdh_bridge/plugin.cfg` from v0.13.0, GDH rewrites that file as part of the ordinary self-update or migrate path instead of sending bridge-enabled targets with existing `GDHBridge` registration to manual review.",
852
+ "**Post-update MCP follow-through is now explicit.** Generated `/gdh-update` instructions now tell operators and agents to reconnect or restart any long-lived GDH MCP session after `gdh self-update` before trusting MCP follow-up output, because the old server process can keep a stale pin or stale machine-local env snapshot.",
853
+ "**Verification scenarios no longer treat fallback screenshots as scenario truth.** `artifact_policy.screenshots: \"fallback\"` is now rejected with `verification_scenario_screenshot_policy_unsupported`; scenario truth must come from project-owned signals, while manual or external screenshots stay human-only supporting evidence.",
854
+ "**Interrupted verify runs remain inspectable.** If `gdh verify run` is interrupted before GDH finishes the final write, GDH now leaves a provisional top-level run record so `gdh verify inspect` can still show honest `run_record_incomplete` state instead of `run_record_metadata_missing`."
855
+ ]
856
+ },
857
+ "updateContract": {
858
+ "summary": "No release-specific managed migration is required after self-update. v0.13.2 narrows the ordinary update path for the known v0.13.0 bridge `plugin.cfg` drift, makes long-lived MCP reconnect explicit before trusting MCP follow-up output, and blocks `artifact_policy.screenshots: \"fallback\"` in project-owned verification scenarios.",
859
+ "steps": [
860
+ {
861
+ "id": "reconnect_long_lived_mcp_if_present",
862
+ "kind": "agent_reasoning",
863
+ "summary": "If follow-up happens through a long-lived GDH MCP session, reconnect it before trusting MCP output.",
864
+ "detail": "Self-update rebakes files on disk, but an already-running MCP server can still be the old process or an old machine-local env snapshot until it reconnects. Only do this step when the chat or editor actually keeps a long-lived GDH MCP session alive.",
865
+ "commands": [],
866
+ "validationCommands": [
867
+ "gdh verify drift",
868
+ "gdh status"
869
+ ]
870
+ },
871
+ {
872
+ "id": "run_standard_post_update_checks",
873
+ "kind": "mechanical",
874
+ "summary": "Use the ordinary post-update checks and trust terminal truth for this release line.",
875
+ "detail": "v0.13.2 does not bump a managed surface version or add a new release-scoped migrate action. If the target still carries the known v0.13.0 runtime-bridge `plugin.cfg` drift, the normal self-update or migrate path auto-repairs that managed file before deciding whether editor-side plugin-enable follow-through is still needed. `gdh verify drift` only audits baked `@skillcap/gdh@<version>` literals in managed skill and command surfaces, so treat the self-update `terminal` plus `gdh status` / `gdh bridge status` as the lifecycle and runtime truth.",
876
+ "commands": [
877
+ "gdh verify drift"
878
+ ],
879
+ "validationCommands": [
880
+ "gdh status",
881
+ "gdh bridge status"
882
+ ]
883
+ },
884
+ {
885
+ "id": "inspect_project_owned_verification_scenarios",
886
+ "kind": "agent_reasoning",
887
+ "summary": "If this target owns runtime verification scenarios, remove any `artifact_policy.screenshots: \"fallback\"` declarations.",
888
+ "detail": "v0.13.2 intentionally blocks fallback screenshot capture inside verification scenarios. Keep scenario truth in project-owned signals instead, and treat manual or external screenshots as human-only supporting evidence. This is a project-owned compatibility follow-through, not a managed-surface migrate step.",
889
+ "commands": [],
890
+ "validationCommands": []
891
+ }
892
+ ]
893
+ }
772
894
  }
773
895
  ]
774
896
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -868,12 +868,13 @@ export function renderClaudeUpdateCommand(_pinnedVersion) {
868
868
  "3. When `preview.state` is `ready`, summarize the current version, target version, intervening releases, bounded release highlights, ordered steps, and which work is `mechanical`, `agent_reasoning`, or `manual_review`.",
869
869
  "4. Ask for explicit approval before apply.",
870
870
  "5. Apply: run `npx -y @skillcap/gdh@latest self-update [version]` (omit `[version]` to apply against npm latest; forward whatever positional the user passed to `/gdh-update`).",
871
- "6. Verify: run `npx -y @skillcap/gdh@latest verify drift` to confirm every baked surface matches the new pin.",
872
- "7. Read `terminal.state` in the apply stdout JSON.",
873
- "8. If `terminal.state` is `healthy`, confirm the update completed and stop.",
874
- "9. If `terminal.state` is `follow_up_required`, run the surfaced `terminal.commands`, then run the surfaced `terminal.validationCommands`, and confirm the follow-up results before stopping.",
875
- "10. If `terminal.state` is `manual_review_required`, explain the surfaced `terminal.manualSteps`, name the surfaced `terminal.validationCommands`, and stop for review instead of inventing a repair.",
876
- "11. If `terminal.state` is `blocked`, surface `terminal.summary` plus the reasons and stop.",
871
+ "6. If this chat or editor keeps a long-lived GDH MCP session alive, restart or reconnect that MCP session before trusting MCP follow-up output. Self-update rebakes files on disk; an already-running MCP server can still be the old process or old env snapshot until it reconnects.",
872
+ "7. Verify baked pinning: run `npx -y @skillcap/gdh@latest verify drift` to confirm every managed skill/command surface matches the new pin. This does not validate runtime bridge or other lifecycle surfaces.",
873
+ "8. Read `terminal.state` in the apply stdout JSON and treat it as the lifecycle/runtime truth.",
874
+ "9. If `terminal.state` is `healthy`, confirm the update completed and stop.",
875
+ "10. If `terminal.state` is `follow_up_required`, run the surfaced `terminal.commands`, then run the surfaced `terminal.validationCommands`, and confirm the follow-up results before stopping.",
876
+ "11. If `terminal.state` is `manual_review_required`, explain the surfaced `terminal.manualSteps`, name the surfaced `terminal.validationCommands`, and stop for review instead of inventing a repair.",
877
+ "12. If `terminal.state` is `blocked`, surface `terminal.summary` plus the reasons and stop.",
877
878
  "</process>",
878
879
  "",
879
880
  "<rules>",
@@ -914,12 +915,13 @@ export function renderCodexUpdateSkill(_pinnedVersion) {
914
915
  "3. When `preview.state` is `ready`, summarize the current version, target version, intervening releases, bounded release highlights, ordered steps, and which work is `mechanical`, `agent_reasoning`, or `manual_review`.",
915
916
  "4. Ask for explicit approval before apply.",
916
917
  "5. Apply: run `npx -y @skillcap/gdh@latest self-update [version]` (omit `[version]` to apply against npm latest; forward whatever positional the user passed to `/gdh-update`).",
917
- "6. Verify: run `npx -y @skillcap/gdh@latest verify drift` to confirm every baked surface matches the new pin.",
918
- "7. Read `terminal.state` in the apply stdout JSON.",
919
- "8. If `terminal.state` is `healthy`, confirm the update completed and stop.",
920
- "9. If `terminal.state` is `follow_up_required`, run the surfaced `terminal.commands`, then run the surfaced `terminal.validationCommands`, and confirm the follow-up results before stopping.",
921
- "10. If `terminal.state` is `manual_review_required`, explain the surfaced `terminal.manualSteps`, name the surfaced `terminal.validationCommands`, and stop for review instead of inventing a repair.",
922
- "11. If `terminal.state` is `blocked`, surface `terminal.summary` plus the reasons and stop.",
918
+ "6. If this chat or editor keeps a long-lived GDH MCP session alive, restart or reconnect that MCP session before trusting MCP follow-up output. Self-update rebakes files on disk; an already-running MCP server can still be the old process or old env snapshot until it reconnects.",
919
+ "7. Verify baked pinning: run `npx -y @skillcap/gdh@latest verify drift` to confirm every managed skill/command surface matches the new pin. This does not validate runtime bridge or other lifecycle surfaces.",
920
+ "8. Read `terminal.state` in the apply stdout JSON and treat it as the lifecycle/runtime truth.",
921
+ "9. If `terminal.state` is `healthy`, confirm the update completed and stop.",
922
+ "10. If `terminal.state` is `follow_up_required`, run the surfaced `terminal.commands`, then run the surfaced `terminal.validationCommands`, and confirm the follow-up results before stopping.",
923
+ "11. If `terminal.state` is `manual_review_required`, explain the surfaced `terminal.manualSteps`, name the surfaced `terminal.validationCommands`, and stop for review instead of inventing a repair.",
924
+ "12. If `terminal.state` is `blocked`, surface `terminal.summary` plus the reasons and stop.",
923
925
  "</process>",
924
926
  "",
925
927
  "<rules>",
@@ -958,12 +960,13 @@ export function renderCursorUpdateSkill(_pinnedVersion) {
958
960
  "3. When `preview.state` is `ready`, summarize the current version, target version, intervening releases, bounded release highlights, ordered steps, and which work is `mechanical`, `agent_reasoning`, or `manual_review`.",
959
961
  "4. Ask for explicit approval before apply.",
960
962
  "5. Apply: run `npx -y @skillcap/gdh@latest self-update [version]` (omit `[version]` to apply against npm latest; forward whatever positional the user passed to `/gdh-update`).",
961
- "6. Verify: run `npx -y @skillcap/gdh@latest verify drift` to confirm every baked surface matches the new pin.",
962
- "7. Read `terminal.state` in the apply stdout JSON.",
963
- "8. If `terminal.state` is `healthy`, confirm the update completed and stop.",
964
- "9. If `terminal.state` is `follow_up_required`, run the surfaced `terminal.commands`, then run the surfaced `terminal.validationCommands`, and confirm the follow-up results before stopping.",
965
- "10. If `terminal.state` is `manual_review_required`, explain the surfaced `terminal.manualSteps`, name the surfaced `terminal.validationCommands`, and stop for review instead of inventing a repair.",
966
- "11. If `terminal.state` is `blocked`, surface `terminal.summary` plus the reasons and stop.",
963
+ "6. If this chat or editor keeps a long-lived GDH MCP session alive, restart or reconnect that MCP session before trusting MCP follow-up output. Self-update rebakes files on disk; an already-running MCP server can still be the old process or old env snapshot until it reconnects.",
964
+ "7. Verify baked pinning: run `npx -y @skillcap/gdh@latest verify drift` to confirm every managed skill/command surface matches the new pin. This does not validate runtime bridge or other lifecycle surfaces.",
965
+ "8. Read `terminal.state` in the apply stdout JSON and treat it as the lifecycle/runtime truth.",
966
+ "9. If `terminal.state` is `healthy`, confirm the update completed and stop.",
967
+ "10. If `terminal.state` is `follow_up_required`, run the surfaced `terminal.commands`, then run the surfaced `terminal.validationCommands`, and confirm the follow-up results before stopping.",
968
+ "11. If `terminal.state` is `manual_review_required`, explain the surfaced `terminal.manualSteps`, name the surfaced `terminal.validationCommands`, and stop for review instead of inventing a repair.",
969
+ "12. If `terminal.state` is `blocked`, surface `terminal.summary` plus the reasons and stop.",
967
970
  "</process>",
968
971
  "",
969
972
  "<rules>",
@@ -3162,6 +3165,30 @@ function inspectRuntimeBridgeLifecycleSurface(targetPath, bridgeStatus) {
3162
3165
  });
3163
3166
  }
3164
3167
  if (bridgeStatus.state === "drifted") {
3168
+ if (isKnownBrokenRuntimeBridgePluginCfgDrift(bridgeStatus)) {
3169
+ return createLifecycleSurfaceStatus({
3170
+ surface: "runtime_bridge_surface",
3171
+ management: "managed",
3172
+ state: "migration_available",
3173
+ summary: bridgeStatus.autoloadRegistered
3174
+ ? "Runtime bridge managed plugin.cfg matches the known v0.13.0 bug and can be repaired automatically."
3175
+ : "Runtime bridge managed plugin.cfg matches the known v0.13.0 bug and can be repaired automatically. If GDHBridge is still not registered after repair, enable the GDH Runtime Bridge plugin in Godot.",
3176
+ reasons: bridgeStatus.reasons,
3177
+ probes,
3178
+ action: {
3179
+ kind: "run_repair",
3180
+ summary: bridgeStatus.autoloadRegistered
3181
+ ? "Run GDH bridge repair to rewrite the managed runtime-bridge plugin.cfg."
3182
+ : "Run GDH bridge repair to rewrite the managed runtime-bridge plugin.cfg. If GDHBridge is still missing after repair, enable the GDH Runtime Bridge plugin in Godot.",
3183
+ command: ["gdh", "bridge", "repair", targetPath],
3184
+ validationCommands: [
3185
+ ["gdh", "bridge", "status", targetPath],
3186
+ ["gdh", "status", targetPath],
3187
+ ],
3188
+ autoApplicable: true,
3189
+ },
3190
+ });
3191
+ }
3165
3192
  if (isRuntimeBridgePluginEnablePending(bridgeStatus)) {
3166
3193
  return createLifecycleSurfaceStatus({
3167
3194
  surface: "runtime_bridge_surface",
@@ -3234,6 +3261,26 @@ function isRuntimeBridgePluginEnablePending(bridgeStatus) {
3234
3261
  bridgeStatus.managedArtifacts.every((artifact) => artifact.state === "present") &&
3235
3262
  bridgeStatus.reasons.includes("runtime_bridge_plugin_enable_required"));
3236
3263
  }
3264
+ function isKnownBrokenRuntimeBridgePluginCfgDrift(bridgeStatus) {
3265
+ if (bridgeStatus.state !== "drifted") {
3266
+ return false;
3267
+ }
3268
+ const driftedArtifacts = bridgeStatus.managedArtifacts
3269
+ .filter((artifact) => artifact.state === "drifted")
3270
+ .map((artifact) => artifact.id);
3271
+ if (driftedArtifacts.length !== 1 || driftedArtifacts[0] !== "plugin-cfg") {
3272
+ return false;
3273
+ }
3274
+ if (bridgeStatus.managedArtifacts.some((artifact) => artifact.state === "missing")) {
3275
+ return false;
3276
+ }
3277
+ const allowedReasons = new Set([
3278
+ "runtime_bridge_drifted:plugin-cfg",
3279
+ "runtime_bridge_plugin_enable_required",
3280
+ "runtime_bridge_autoload_missing_or_drifted",
3281
+ ]);
3282
+ return bridgeStatus.reasons.every((reason) => allowedReasons.has(reason));
3283
+ }
3237
3284
  async function inspectYamlSurfaceDirectory(input) {
3238
3285
  const currentAbsoluteDirectory = path.join(input.targetPath, input.currentRelativeDirectory);
3239
3286
  const legacyAbsoluteDirectory = path.join(input.targetPath, input.legacyRelativeDirectory);