@skillcap/gdh 0.13.1 → 0.13.3
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.
- package/INSTALL-BUNDLE.json +1 -1
- package/README.md +4 -4
- package/RELEASE-SPAN-UPDATE-CONTRACTS.json +94 -0
- package/node_modules/@gdh/adapters/dist/index.d.ts.map +1 -1
- package/node_modules/@gdh/adapters/dist/index.js +65 -18
- package/node_modules/@gdh/adapters/dist/index.js.map +1 -1
- package/node_modules/@gdh/adapters/package.json +8 -8
- package/node_modules/@gdh/authoring/package.json +2 -2
- package/node_modules/@gdh/cli/dist/index.d.ts.map +1 -1
- package/node_modules/@gdh/cli/dist/index.js +12 -7
- package/node_modules/@gdh/cli/dist/index.js.map +1 -1
- package/node_modules/@gdh/cli/package.json +10 -10
- package/node_modules/@gdh/core/dist/index.d.ts +7 -2
- package/node_modules/@gdh/core/dist/index.d.ts.map +1 -1
- package/node_modules/@gdh/core/dist/index.js.map +1 -1
- package/node_modules/@gdh/core/package.json +1 -1
- package/node_modules/@gdh/docs/dist/guidance.js +1 -1
- package/node_modules/@gdh/docs/dist/guidance.js.map +1 -1
- package/node_modules/@gdh/docs/package.json +2 -2
- package/node_modules/@gdh/mcp/dist/index.d.ts.map +1 -1
- package/node_modules/@gdh/mcp/dist/index.js +13 -0
- package/node_modules/@gdh/mcp/dist/index.js.map +1 -1
- package/node_modules/@gdh/mcp/package.json +8 -8
- package/node_modules/@gdh/observability/package.json +2 -2
- package/node_modules/@gdh/runtime/dist/bridge-surface.js +14 -9
- package/node_modules/@gdh/runtime/dist/bridge-surface.js.map +1 -1
- package/node_modules/@gdh/runtime/dist/docker-provider.d.ts +4 -2
- package/node_modules/@gdh/runtime/dist/docker-provider.d.ts.map +1 -1
- package/node_modules/@gdh/runtime/dist/docker-provider.js +21 -10
- package/node_modules/@gdh/runtime/dist/docker-provider.js.map +1 -1
- package/node_modules/@gdh/runtime/dist/index.d.ts +1 -1
- package/node_modules/@gdh/runtime/dist/index.d.ts.map +1 -1
- package/node_modules/@gdh/runtime/dist/index.js +174 -6
- package/node_modules/@gdh/runtime/dist/index.js.map +1 -1
- package/node_modules/@gdh/runtime/package.json +2 -2
- package/node_modules/@gdh/scan/package.json +3 -3
- package/node_modules/@gdh/verify/dist/scenarios.d.ts +1 -0
- package/node_modules/@gdh/verify/dist/scenarios.d.ts.map +1 -1
- package/node_modules/@gdh/verify/dist/scenarios.js +87 -92
- package/node_modules/@gdh/verify/dist/scenarios.js.map +1 -1
- package/node_modules/@gdh/verify/package.json +7 -7
- package/package.json +11 -11
package/INSTALL-BUNDLE.json
CHANGED
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.
|
|
15
|
+
npx -y @skillcap/gdh@0.13.3 setup
|
|
16
16
|
```
|
|
17
17
|
|
|
18
|
-
Replace `0.13.
|
|
18
|
+
Replace `0.13.3` 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.
|
|
39
|
+
npx -y @skillcap/gdh@0.13.3 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.
|
|
104
|
+
GDH now ships the current `0.13.3` release line and remains ready for broader internal use within the documented support contract. The current release line is `0.13.3` 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.
|
|
@@ -839,6 +839,100 @@
|
|
|
839
839
|
}
|
|
840
840
|
]
|
|
841
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
|
+
}
|
|
894
|
+
},
|
|
895
|
+
{
|
|
896
|
+
"version": "0.13.3",
|
|
897
|
+
"releaseTag": "v0.13.3",
|
|
898
|
+
"migrationStatus": "no_op",
|
|
899
|
+
"summary": "v0.13.3 restores GDH-owned rendered screenshot verification after the v0.13.2 regression. Verification scenarios can again request one supporting screenshot artifact through the canonical `artifact_policy.screenshots: \"rendered\"` policy, legacy `\"fallback\"` remains a compatibility alias, the shipped Docker rendered-runtime image is rebuilt around current Node and Godot truth, and runtime-bridge screenshot capture now waits for real scene readiness before declaring success or failure. Existing targets do not require a new release-scoped managed-project migrate step for this release line.",
|
|
900
|
+
"releaseHighlights": {
|
|
901
|
+
"summary": "v0.13.3 is a patch release that restores GDH-owned rendered screenshot verification after the v0.13.2 regression. Verification scenarios can again request one supporting rendered screenshot artifact through the canonical `artifact_policy.screenshots: \"rendered\"` policy, legacy `\"fallback\"` remains accepted as a compatibility alias, and the shipped Docker plus runtime-bridge path is hardened enough to pass the real Beacon title-screen proof again.",
|
|
902
|
+
"operatorChanges": [
|
|
903
|
+
"**Rendered screenshot requests are reachable again through GDH's normal verification surfaces.** `gdh verify run` and `gdh run-config run` now share an explicit rendered-screenshot request contract, verification scenarios can declare `artifact_policy.screenshots: \"rendered\"`, and legacy `\"fallback\"` now normalizes to the same supporting-artifact behavior instead of blocking the run outright.",
|
|
904
|
+
"**The shipped Docker rendered-runtime image is rebuilt around the current toolchain truth.** The default image now targets `gdh-runtime-rendered:4.6-stable-r3`, uses Ubuntu 24.04 plus Node 22 and Godot 4.6, and exposes both `godot-linux` and `godot` inside the container for consistent GDH and manual debugging behavior.",
|
|
905
|
+
"**Rendered Docker launches are more resilient against real-target drift.** GDH now overlays sanitized `project.godot` and `.godot/extension_list.cfg` inputs for Docker Godot launches, rewrites stale UID-backed main-scene references when a resolvable `res://` path exists, forces dummy audio, and allows a longer Docker bridge handshake for slow real targets.",
|
|
906
|
+
"**Managed bridge screenshot capture is now honest about scene readiness.** The runtime bridge waits for a real current scene before attempting capture, keeps retrying until the viewport image is actually ready, and writes structured unavailability metadata when the session exits before capture completes."
|
|
907
|
+
]
|
|
908
|
+
},
|
|
909
|
+
"updateContract": {
|
|
910
|
+
"summary": "No release-specific managed migration is required after self-update. v0.13.3 restores rendered screenshot verification and hardens the Docker plus bridge path; if a target still behaves like the older bridge template, use the ordinary `gdh bridge status` and `gdh bridge repair` flow before retrying rendered verification.",
|
|
911
|
+
"steps": [
|
|
912
|
+
{
|
|
913
|
+
"id": "repair_managed_bridge_if_rendered_verify_still_looks_stale",
|
|
914
|
+
"kind": "mechanical",
|
|
915
|
+
"summary": "If rendered verification still behaves like the older managed bridge files, run the ordinary bridge repair flow before retrying.",
|
|
916
|
+
"detail": "v0.13.3 does not bump a managed surface version, but it does ship a stricter runtime-bridge screenshot path. When a target still carries older managed bridge files or rendered verification exits before a scene becomes ready, use `gdh bridge status` and `gdh bridge repair` to rebake the managed bridge baseline. This is bounded ordinary repair, not a new release-scoped migrate step.",
|
|
917
|
+
"commands": [
|
|
918
|
+
"gdh bridge status",
|
|
919
|
+
"gdh bridge repair"
|
|
920
|
+
],
|
|
921
|
+
"validationCommands": [
|
|
922
|
+
"gdh bridge status",
|
|
923
|
+
"gdh verify run <target> <run-config-id> --verification-scenario <scenario-id> --provider docker"
|
|
924
|
+
]
|
|
925
|
+
},
|
|
926
|
+
{
|
|
927
|
+
"id": "prefer_canonical_rendered_policy_for_project_owned_scenarios",
|
|
928
|
+
"kind": "agent_reasoning",
|
|
929
|
+
"summary": "Project-owned screenshot scenarios should prefer `artifact_policy.screenshots: \"rendered\"` going forward.",
|
|
930
|
+
"detail": "Legacy `\"fallback\"` remains accepted as a compatibility alias in v0.13.3, but `\"rendered\"` is the canonical screenshot policy now and keeps docs, tests, and future migrations aligned. Scenario truth should still come from project-owned signals rather than image interpretation.",
|
|
931
|
+
"commands": [],
|
|
932
|
+
"validationCommands": []
|
|
933
|
+
}
|
|
934
|
+
]
|
|
935
|
+
}
|
|
842
936
|
}
|
|
843
937
|
]
|
|
844
938
|
}
|
|
@@ -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.
|
|
872
|
-
"7.
|
|
873
|
-
"8.
|
|
874
|
-
"9. If `terminal.state` is `
|
|
875
|
-
"10. If `terminal.state` is `
|
|
876
|
-
"11. If `terminal.state` is `
|
|
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.
|
|
918
|
-
"7.
|
|
919
|
-
"8.
|
|
920
|
-
"9. If `terminal.state` is `
|
|
921
|
-
"10. If `terminal.state` is `
|
|
922
|
-
"11. If `terminal.state` is `
|
|
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.
|
|
962
|
-
"7.
|
|
963
|
-
"8.
|
|
964
|
-
"9. If `terminal.state` is `
|
|
965
|
-
"10. If `terminal.state` is `
|
|
966
|
-
"11. If `terminal.state` is `
|
|
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);
|