@skillcap/gdh 0.26.5 → 0.26.6
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/RELEASE-SPAN-UPDATE-CONTRACTS.json +57 -0
- package/node_modules/@gdh/adapters/dist/templates/authoring-hook.js.tpl +75 -37
- package/node_modules/@gdh/adapters/package.json +8 -8
- package/node_modules/@gdh/authoring/package.json +2 -2
- package/node_modules/@gdh/cli/package.json +10 -10
- package/node_modules/@gdh/core/dist/index.d.ts +1 -1
- package/node_modules/@gdh/core/dist/index.js +1 -1
- package/node_modules/@gdh/core/package.json +1 -1
- package/node_modules/@gdh/docs/package.json +2 -2
- package/node_modules/@gdh/mcp/package.json +8 -8
- package/node_modules/@gdh/observability/package.json +2 -2
- package/node_modules/@gdh/runtime/package.json +2 -2
- package/node_modules/@gdh/scan/package.json +3 -3
- package/node_modules/@gdh/verify/package.json +7 -7
- package/package.json +11 -11
package/INSTALL-BUNDLE.json
CHANGED
|
@@ -3236,6 +3236,63 @@
|
|
|
3236
3236
|
}
|
|
3237
3237
|
]
|
|
3238
3238
|
}
|
|
3239
|
+
},
|
|
3240
|
+
{
|
|
3241
|
+
"version": "0.26.6",
|
|
3242
|
+
"releaseTag": "v0.26.6",
|
|
3243
|
+
"migrationStatus": "required",
|
|
3244
|
+
"summary": "v0.26.6 re-bakes managed authoring hooks so GDScript post-edit checks can prove the edited content. GDH_UPDATE_HOOK_VERSION moves 14 -> 15. Existing targets should self-update and migrate so hooks run a bounded foreground diagnostics refresh for inconclusive .gd edits before dispatching.",
|
|
3245
|
+
"releaseHighlights": {
|
|
3246
|
+
"summary": "v0.26.6 fixes the managed authoring hook proof loop for GDScript edits. When a `.gd` edit is not already proven by the cached broker snapshot, the hook now runs a bounded foreground diagnostics refresh, rereads the broker, and blocks or allows from diagnostics for the edited content instead of returning repeated `file_not_in_snapshot` or `content_hash_mismatch` hints.",
|
|
3247
|
+
"operatorChanges": [
|
|
3248
|
+
"**Post-edit GDScript diagnostics are proved before dispatch.** Inconclusive `.gd` hook checks now run `npx -y @skillcap/gdh@<pin> authoring diagnostics refresh --changed ...` inside the hook budget, then reread the broker before deciding.",
|
|
3249
|
+
"**Fresh broker reads stay fast.** If the existing broker snapshot already covers the current file content, the hook still avoids npx and returns immediately.",
|
|
3250
|
+
"**Fallback guidance is honest.** The hook no longer says \"next edit will be fresh.\" If foreground refresh cannot prove the edit, the message says bounded refresh failed to produce fresh evidence and gives the exact pinned `npx -y @skillcap/gdh@<pin>` command rather than assuming a global `gdh` binary exists."
|
|
3251
|
+
]
|
|
3252
|
+
},
|
|
3253
|
+
"updateContract": {
|
|
3254
|
+
"summary": "Managed targets must re-bake generated authoring hooks so target-side post-edit GDScript validation uses the v0.26.6 foreground-refresh proof loop.",
|
|
3255
|
+
"steps": [
|
|
3256
|
+
{
|
|
3257
|
+
"id": "install_v0_26_6",
|
|
3258
|
+
"kind": "mechanical",
|
|
3259
|
+
"summary": "Install the v0.26.6 GDH package.",
|
|
3260
|
+
"detail": "Run gdh self-update so the target uses the v0.26.6 package and can re-render managed authoring hooks with update hook version 15.",
|
|
3261
|
+
"commands": [
|
|
3262
|
+
"gdh self-update --apply"
|
|
3263
|
+
],
|
|
3264
|
+
"validationCommands": [
|
|
3265
|
+
"gdh status",
|
|
3266
|
+
"gdh adapters status"
|
|
3267
|
+
]
|
|
3268
|
+
},
|
|
3269
|
+
{
|
|
3270
|
+
"id": "rebake_authoring_hook",
|
|
3271
|
+
"kind": "mechanical",
|
|
3272
|
+
"summary": "Re-bake managed authoring hook surfaces.",
|
|
3273
|
+
"detail": "If lifecycle status reports pending managed-surface work, run gdh migrate --apply. The migration re-renders the authoring hook so inconclusive .gd post-edit checks run bounded foreground diagnostics refresh before falling back to context.",
|
|
3274
|
+
"commands": [
|
|
3275
|
+
"gdh migrate --apply"
|
|
3276
|
+
],
|
|
3277
|
+
"validationCommands": [
|
|
3278
|
+
"gdh adapters status",
|
|
3279
|
+
"gdh status"
|
|
3280
|
+
]
|
|
3281
|
+
},
|
|
3282
|
+
{
|
|
3283
|
+
"id": "confirm_gd_post_edit_proof",
|
|
3284
|
+
"kind": "agent_reasoning",
|
|
3285
|
+
"summary": "Confirm GDScript post-edit checks prove current content.",
|
|
3286
|
+
"detail": "When dogfooding or validating a target, create or edit a temporary .gd file with an obvious type error and confirm the managed hook or gdh authoring diagnostics refresh reports diagnostics for the current file content. Then clear the error and confirm the same path returns clean.",
|
|
3287
|
+
"commands": [
|
|
3288
|
+
"gdh authoring diagnostics refresh --target <target> --changed <file.gd>"
|
|
3289
|
+
],
|
|
3290
|
+
"validationCommands": [
|
|
3291
|
+
"gdh authoring check --mode final --target <target>"
|
|
3292
|
+
]
|
|
3293
|
+
}
|
|
3294
|
+
]
|
|
3295
|
+
}
|
|
3239
3296
|
}
|
|
3240
3297
|
]
|
|
3241
3298
|
}
|
|
@@ -20,6 +20,7 @@ const { spawnSync } = require('child_process');
|
|
|
20
20
|
|
|
21
21
|
const AUTHORING_EXTENSIONS = new Set(['.gd', '.tscn', '.tres']);
|
|
22
22
|
const CHECK_TIMEOUT_MS = readBoundedPositiveIntEnv('GDH_AUTHORING_HOOK_CHECK_TIMEOUT_MS', 2500, 10000);
|
|
23
|
+
const FOREGROUND_REFRESH_TIMEOUT_MS = readBoundedPositiveIntEnv('GDH_AUTHORING_HOOK_REFRESH_TIMEOUT_MS', 8000, 30000);
|
|
23
24
|
// Phase 82 / LSP-03: session-end ("Stop") freshness barrier. Default 60 s gives
|
|
24
25
|
// real Godot LSP startup + final-mode authoring check headroom; hard cap 300 s
|
|
25
26
|
// keeps the env var from becoming a denial-of-service surface.
|
|
@@ -52,25 +53,11 @@ function handlePostEdit(input, targetRoot) {
|
|
|
52
53
|
const changed = collectChangedFiles(input, targetRoot);
|
|
53
54
|
const authoring = changed.filter(isAuthoringValidationPath);
|
|
54
55
|
if (authoring.length === 0) return allow();
|
|
55
|
-
// Phase 82 / LSP-02: fire-and-forget scoped diagnostics refresh BEFORE the
|
|
56
|
-
// bounded read. The verb calls `refreshAuthoringDiagnostics` which boots
|
|
57
|
-
// Godot LSP if needed, opens scoped files via LSP, drains diagnostics, and
|
|
58
|
-
// writes `diagnostics-broker/snapshot.json` + `primed` marker. Hook still
|
|
59
|
-
// returns within CHECK_TIMEOUT_MS regardless of refresh outcome (Pitfall 1:
|
|
60
|
-
// detached + stdio:'ignore' + .unref() means the parent never blocks on
|
|
61
|
-
// the child).
|
|
62
|
-
spawnDetachedRefresh(targetRoot, authoring);
|
|
63
|
-
// Quick task 260504-ix2: embedded broker-snapshot reader. Replaces the
|
|
64
|
-
// per-edit synchronous `npx -y @skillcap/gdh@PINNED authoring check ...`
|
|
65
|
-
// shellout (which was eating the full `CHECK_TIMEOUT_MS` budget on the npx
|
|
66
|
-
// bootstrap path even before any GDH code ran). The reader synthesises the
|
|
67
|
-
// same `[fresh]` / `[stale]` / `[pending]` bracketed-token vocabulary the
|
|
68
|
-
// existing dispatch already consumes, so the regex ladder below is unchanged.
|
|
69
56
|
let output;
|
|
70
57
|
try {
|
|
71
|
-
output =
|
|
58
|
+
output = runPostEditDiagnostics(targetRoot, authoring);
|
|
72
59
|
} catch (_err) {
|
|
73
|
-
return context(
|
|
60
|
+
return context(`GDH post-edit hook embedded read threw; continuing without blocking. Run \`${gdhCommandPrefix()} authoring check --mode final --target ${JSON.stringify(targetRoot)}\` before claiming code-validity.`);
|
|
74
61
|
}
|
|
75
62
|
// Phase 81 / LSP-06 / D-01: dispatch on bracketed-token vocabulary.
|
|
76
63
|
// Pitfall 5: anchor regex to line-start with /m flag so per-diagnostic
|
|
@@ -132,23 +119,11 @@ function handlePostToolBatch(input, targetRoot) {
|
|
|
132
119
|
const authoring = unique(files).filter(isAuthoringValidationPath);
|
|
133
120
|
if (authoring.length === 0) return allow(); // Pitfall 2: no authoring files — no work
|
|
134
121
|
|
|
135
|
-
// SC2: spawnDetachedRefresh reuses the lsp.lock-serialized helper. If a
|
|
136
|
-
// per-edit refresh is already in flight when this fires, the broker side
|
|
137
|
-
// serializes via the lock primitive — no double-spawn of Godot.
|
|
138
|
-
spawnDetachedRefresh(targetRoot, authoring);
|
|
139
|
-
|
|
140
|
-
// Quick task 260504-ix2: embedded broker-snapshot reader replaces the
|
|
141
|
-
// synchronous `npx ... authoring check` shellout. The reader is invoked
|
|
142
|
-
// ONCE with the full deduplicated authoring set — the LSP-09 coalescing
|
|
143
|
-
// invariant is preserved: the loop in `runEmbeddedDiagnosticsRead` walks
|
|
144
|
-
// every file but returns on the first non-fresh status (first-failure-wins
|
|
145
|
-
// is the documented contract; a [stale] in any one file routes the batch
|
|
146
|
-
// through the drift dispatch branch).
|
|
147
122
|
let output;
|
|
148
123
|
try {
|
|
149
|
-
output =
|
|
124
|
+
output = runPostEditDiagnostics(targetRoot, authoring);
|
|
150
125
|
} catch (_err) {
|
|
151
|
-
return context(
|
|
126
|
+
return context(`GDH PostToolBatch hook embedded read threw; continuing without blocking. Run \`${gdhCommandPrefix()} authoring check --mode final --target ${JSON.stringify(targetRoot)}\` before claiming code-validity.`);
|
|
152
127
|
}
|
|
153
128
|
|
|
154
129
|
// Bracketed-token dispatch — IDENTICAL to handlePostEdit. Pitfall 5 from Phase 81
|
|
@@ -181,6 +156,65 @@ function handlePostToolBatch(input, targetRoot) {
|
|
|
181
156
|
// refresh --changed`. Detached spawn still uses `child_process.spawn` directly
|
|
182
157
|
// (always did).
|
|
183
158
|
|
|
159
|
+
// v0.26.6: trust-first post-edit loop.
|
|
160
|
+
//
|
|
161
|
+
// The old v0.26.4/v0.26.5 hook spawned a detached refresh and immediately read
|
|
162
|
+
// the previous broker snapshot. That is a broken proof loop for real edits:
|
|
163
|
+
// each edit changes the content hash, so the synchronous read is guaranteed to
|
|
164
|
+
// see either `file_not_in_snapshot` or `content_hash_mismatch` until a refresh
|
|
165
|
+
// for the new content has completed. The advertised "next edit will be fresh"
|
|
166
|
+
// was therefore false for any edit that changed the file again.
|
|
167
|
+
//
|
|
168
|
+
// New contract:
|
|
169
|
+
// 1. Read current broker snapshot.
|
|
170
|
+
// 2. If conclusive ([fresh]/[failed]/[partial]), dispatch immediately.
|
|
171
|
+
// 3. For .gd files only, run a bounded foreground diagnostics refresh, then
|
|
172
|
+
// read broker again. This is the only way a post-edit hook can prove the
|
|
173
|
+
// edited GDScript content it was asked to validate.
|
|
174
|
+
// 4. If foreground refresh cannot prove within budget, spawn detached refresh
|
|
175
|
+
// as a fallback and emit non-blocking context.
|
|
176
|
+
function runPostEditDiagnostics(targetRoot, authoringFiles) {
|
|
177
|
+
let output = runEmbeddedDiagnosticsRead(targetRoot, authoringFiles);
|
|
178
|
+
if (isConclusiveDiagnosticsOutput(output)) return output;
|
|
179
|
+
|
|
180
|
+
if (hasGdFiles(authoringFiles)) {
|
|
181
|
+
const refreshed = runForegroundDiagnosticsRefresh(targetRoot, authoringFiles);
|
|
182
|
+
if (refreshed) {
|
|
183
|
+
output = runEmbeddedDiagnosticsRead(targetRoot, authoringFiles);
|
|
184
|
+
if (isConclusiveDiagnosticsOutput(output)) return output;
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
spawnDetachedRefresh(targetRoot, authoringFiles);
|
|
189
|
+
return output;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
function isConclusiveDiagnosticsOutput(output) {
|
|
193
|
+
return /^\[fresh\]/m.test(output) || /^\[failed\]/m.test(output) || /^\[partial\]/m.test(output);
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
function hasGdFiles(files) {
|
|
197
|
+
return Array.isArray(files) && files.some(f => path.extname(f).toLowerCase() === '.gd');
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
function runForegroundDiagnosticsRefresh(targetRoot, files) {
|
|
201
|
+
const gdFiles = Array.isArray(files) ? unique(files).filter(f => path.extname(f).toLowerCase() === '.gd') : [];
|
|
202
|
+
if (gdFiles.length === 0) return false;
|
|
203
|
+
try {
|
|
204
|
+
const args = ['-y', `@skillcap/gdh@${PINNED_VERSION}`, 'authoring', 'diagnostics', 'refresh', '--target', targetRoot];
|
|
205
|
+
for (const f of gdFiles) args.push('--changed', f);
|
|
206
|
+
const result = spawnSync('npx', args, {
|
|
207
|
+
cwd: targetRoot,
|
|
208
|
+
encoding: 'utf8',
|
|
209
|
+
timeout: FOREGROUND_REFRESH_TIMEOUT_MS,
|
|
210
|
+
windowsHide: true,
|
|
211
|
+
});
|
|
212
|
+
return !!result && !result.error && result.status === 0 && !result.signal;
|
|
213
|
+
} catch (_error) {
|
|
214
|
+
return false;
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
|
|
184
218
|
// Quick task 260504-o6w. Fire-and-forget scoped diagnostics refresh from the
|
|
185
219
|
// post-edit hook. The CLI verb calls `refreshAuthoringDiagnostics` which boots
|
|
186
220
|
// Godot LSP if needed, opens scoped files via LSP, drains diagnostics, and
|
|
@@ -686,19 +720,19 @@ function reasonHint(output, targetRoot, files) {
|
|
|
686
720
|
const scopedHint = fileTypeScopedHint(targetArg, files);
|
|
687
721
|
// First-match-wins ordering: more specific reasons before generic.
|
|
688
722
|
if (reasons.includes('lsp_instance_identity_mismatch')) {
|
|
689
|
-
return `Cross-worktree LSP from another checkout. Run
|
|
723
|
+
return `Cross-worktree LSP from another checkout. Run \`${gdhCommandPrefix()} lsp prune --target ${targetArg}\` then retry the edit.`;
|
|
690
724
|
}
|
|
691
725
|
if (reasons.includes('lsp_state_lock_timeout')) {
|
|
692
726
|
return `Authoring state lock busy; ${describeLspLock(targetRoot)} Retry the scoped command after the current authoring operation finishes. ${scopedHint}`;
|
|
693
727
|
}
|
|
694
728
|
if (reasons.includes('lsp_instance_not_running')) {
|
|
695
|
-
return `LSP
|
|
729
|
+
return `LSP not ready inside hook budget; foreground refresh attempted for .gd files and background refresh is running if needed. ${scopedHint}`;
|
|
696
730
|
}
|
|
697
731
|
if (reasons.includes('broker_not_yet_primed') || reasons.includes('file_not_in_snapshot')) {
|
|
698
|
-
return `Broker
|
|
732
|
+
return `Broker did not contain this edit after bounded refresh; background refresh is running if needed. ${scopedHint}`;
|
|
699
733
|
}
|
|
700
734
|
if (reasons.includes('content_hash_mismatch') || reasons.includes('freshness_expired')) {
|
|
701
|
-
return `Broker snapshot stale; background refresh running. ${scopedHint}`;
|
|
735
|
+
return `Broker snapshot stale after bounded refresh; background refresh is running if needed. ${scopedHint}`;
|
|
702
736
|
}
|
|
703
737
|
return `Run scoped authoring validation before claiming code-validity. ${scopedHint}`;
|
|
704
738
|
}
|
|
@@ -710,20 +744,24 @@ function fileTypeScopedHint(targetArg, files) {
|
|
|
710
744
|
const resourceFiles = inputFiles.filter(f => path.extname(f).toLowerCase() === '.tres');
|
|
711
745
|
const parts = [];
|
|
712
746
|
if (gdFiles.length > 0) {
|
|
713
|
-
parts.push(`For .gd:
|
|
747
|
+
parts.push(`For .gd: \`${gdhCommandPrefix()} authoring diagnostics refresh --target ${targetArg}${changedArgs(gdFiles)}\``);
|
|
714
748
|
}
|
|
715
749
|
if (sceneFiles.length > 0) {
|
|
716
|
-
parts.push(`For .tscn:
|
|
750
|
+
parts.push(`For .tscn: \`${gdhCommandPrefix()} authoring check --mode post-edit --target ${targetArg}${changedArgs(sceneFiles)}\``);
|
|
717
751
|
}
|
|
718
752
|
if (resourceFiles.length > 0) {
|
|
719
753
|
parts.push('.tres automatic scoped validation is ignored in this GDH version; do not wait on LSP/resource diagnostics for those files.');
|
|
720
754
|
}
|
|
721
755
|
if (parts.length === 0) {
|
|
722
|
-
return `Run
|
|
756
|
+
return `Run \`${gdhCommandPrefix()} authoring check --mode final --target ${targetArg}\` before claiming code-validity.`;
|
|
723
757
|
}
|
|
724
758
|
return parts.join(' ');
|
|
725
759
|
}
|
|
726
760
|
|
|
761
|
+
function gdhCommandPrefix() {
|
|
762
|
+
return `npx -y @skillcap/gdh@${PINNED_VERSION}`;
|
|
763
|
+
}
|
|
764
|
+
|
|
727
765
|
function changedArgs(files) {
|
|
728
766
|
return files.map(f => ` --changed ${JSON.stringify(f)}`).join('');
|
|
729
767
|
}
|
|
@@ -11,13 +11,13 @@
|
|
|
11
11
|
}
|
|
12
12
|
},
|
|
13
13
|
"dependencies": {
|
|
14
|
-
"@gdh/authoring": "0.26.
|
|
15
|
-
"@gdh/core": "0.26.
|
|
16
|
-
"@gdh/docs": "0.26.
|
|
17
|
-
"@gdh/observability": "0.26.
|
|
18
|
-
"@gdh/runtime": "0.26.
|
|
19
|
-
"@gdh/scan": "0.26.
|
|
20
|
-
"@gdh/verify": "0.26.
|
|
14
|
+
"@gdh/authoring": "0.26.6",
|
|
15
|
+
"@gdh/core": "0.26.6",
|
|
16
|
+
"@gdh/docs": "0.26.6",
|
|
17
|
+
"@gdh/observability": "0.26.6",
|
|
18
|
+
"@gdh/runtime": "0.26.6",
|
|
19
|
+
"@gdh/scan": "0.26.6",
|
|
20
|
+
"@gdh/verify": "0.26.6"
|
|
21
21
|
},
|
|
22
|
-
"version": "0.26.
|
|
22
|
+
"version": "0.26.6"
|
|
23
23
|
}
|
|
@@ -15,16 +15,16 @@
|
|
|
15
15
|
},
|
|
16
16
|
"dependencies": {
|
|
17
17
|
"@clack/prompts": "^1.2.0",
|
|
18
|
-
"@gdh/adapters": "0.26.
|
|
19
|
-
"@gdh/authoring": "0.26.
|
|
20
|
-
"@gdh/core": "0.26.
|
|
21
|
-
"@gdh/docs": "0.26.
|
|
22
|
-
"@gdh/mcp": "0.26.
|
|
23
|
-
"@gdh/observability": "0.26.
|
|
24
|
-
"@gdh/runtime": "0.26.
|
|
25
|
-
"@gdh/scan": "0.26.
|
|
26
|
-
"@gdh/verify": "0.26.
|
|
18
|
+
"@gdh/adapters": "0.26.6",
|
|
19
|
+
"@gdh/authoring": "0.26.6",
|
|
20
|
+
"@gdh/core": "0.26.6",
|
|
21
|
+
"@gdh/docs": "0.26.6",
|
|
22
|
+
"@gdh/mcp": "0.26.6",
|
|
23
|
+
"@gdh/observability": "0.26.6",
|
|
24
|
+
"@gdh/runtime": "0.26.6",
|
|
25
|
+
"@gdh/scan": "0.26.6",
|
|
26
|
+
"@gdh/verify": "0.26.6",
|
|
27
27
|
"picocolors": "^1.1.1"
|
|
28
28
|
},
|
|
29
|
-
"version": "0.26.
|
|
29
|
+
"version": "0.26.6"
|
|
30
30
|
}
|
|
@@ -55,7 +55,7 @@ export declare const GDH_AUTHORING_DOGFOOD_VERSION = 1;
|
|
|
55
55
|
export declare const GDH_AUTHORING_SLICE_REPORT_VERSION = 1;
|
|
56
56
|
export declare const GDH_MCP_MANIFEST_VERSION = 1;
|
|
57
57
|
export declare const GDH_CURSOR_RULE_VERSION = 4;
|
|
58
|
-
export declare const GDH_UPDATE_HOOK_VERSION =
|
|
58
|
+
export declare const GDH_UPDATE_HOOK_VERSION = 15;
|
|
59
59
|
export declare const GDH_RUNTIME_RECIPE_RUN_VERSION = 1;
|
|
60
60
|
export declare const GDH_RUNTIME_RUN_BUNDLE_VERSION = 1;
|
|
61
61
|
export declare const GDH_RUNTIME_CORPUS_ARTIFACT_VERSION = 1;
|
|
@@ -47,7 +47,7 @@ export const GDH_AUTHORING_DOGFOOD_VERSION = 1;
|
|
|
47
47
|
export const GDH_AUTHORING_SLICE_REPORT_VERSION = 1;
|
|
48
48
|
export const GDH_MCP_MANIFEST_VERSION = 1;
|
|
49
49
|
export const GDH_CURSOR_RULE_VERSION = 4;
|
|
50
|
-
export const GDH_UPDATE_HOOK_VERSION =
|
|
50
|
+
export const GDH_UPDATE_HOOK_VERSION = 15;
|
|
51
51
|
export const GDH_RUNTIME_RECIPE_RUN_VERSION = 1;
|
|
52
52
|
export const GDH_RUNTIME_RUN_BUNDLE_VERSION = 1;
|
|
53
53
|
export const GDH_RUNTIME_CORPUS_ARTIFACT_VERSION = 1;
|
|
@@ -11,14 +11,14 @@
|
|
|
11
11
|
}
|
|
12
12
|
},
|
|
13
13
|
"dependencies": {
|
|
14
|
-
"@gdh/adapters": "0.26.
|
|
15
|
-
"@gdh/authoring": "0.26.
|
|
16
|
-
"@gdh/core": "0.26.
|
|
17
|
-
"@gdh/docs": "0.26.
|
|
18
|
-
"@gdh/observability": "0.26.
|
|
19
|
-
"@gdh/scan": "0.26.
|
|
20
|
-
"@gdh/verify": "0.26.
|
|
14
|
+
"@gdh/adapters": "0.26.6",
|
|
15
|
+
"@gdh/authoring": "0.26.6",
|
|
16
|
+
"@gdh/core": "0.26.6",
|
|
17
|
+
"@gdh/docs": "0.26.6",
|
|
18
|
+
"@gdh/observability": "0.26.6",
|
|
19
|
+
"@gdh/scan": "0.26.6",
|
|
20
|
+
"@gdh/verify": "0.26.6",
|
|
21
21
|
"@modelcontextprotocol/sdk": "1.29.0"
|
|
22
22
|
},
|
|
23
|
-
"version": "0.26.
|
|
23
|
+
"version": "0.26.6"
|
|
24
24
|
}
|
|
@@ -11,13 +11,13 @@
|
|
|
11
11
|
}
|
|
12
12
|
},
|
|
13
13
|
"dependencies": {
|
|
14
|
-
"@gdh/authoring": "0.26.
|
|
15
|
-
"@gdh/core": "0.26.
|
|
16
|
-
"@gdh/docs": "0.26.
|
|
17
|
-
"@gdh/observability": "0.26.
|
|
18
|
-
"@gdh/runtime": "0.26.
|
|
19
|
-
"@gdh/scan": "0.26.
|
|
14
|
+
"@gdh/authoring": "0.26.6",
|
|
15
|
+
"@gdh/core": "0.26.6",
|
|
16
|
+
"@gdh/docs": "0.26.6",
|
|
17
|
+
"@gdh/observability": "0.26.6",
|
|
18
|
+
"@gdh/runtime": "0.26.6",
|
|
19
|
+
"@gdh/scan": "0.26.6",
|
|
20
20
|
"yaml": "^2.8.3"
|
|
21
21
|
},
|
|
22
|
-
"version": "0.26.
|
|
22
|
+
"version": "0.26.6"
|
|
23
23
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@skillcap/gdh",
|
|
3
|
-
"version": "0.26.
|
|
3
|
+
"version": "0.26.6",
|
|
4
4
|
"description": "Godot-specific authoring and validation harness for agentic development.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -31,17 +31,17 @@
|
|
|
31
31
|
"releaseStage": "broader_internal_release"
|
|
32
32
|
},
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@gdh/cli": "0.26.
|
|
34
|
+
"@gdh/cli": "0.26.6",
|
|
35
35
|
"@clack/prompts": "^1.2.0",
|
|
36
|
-
"@gdh/adapters": "0.26.
|
|
37
|
-
"@gdh/authoring": "0.26.
|
|
38
|
-
"@gdh/core": "0.26.
|
|
39
|
-
"@gdh/docs": "0.26.
|
|
40
|
-
"@gdh/mcp": "0.26.
|
|
41
|
-
"@gdh/observability": "0.26.
|
|
42
|
-
"@gdh/runtime": "0.26.
|
|
43
|
-
"@gdh/scan": "0.26.
|
|
44
|
-
"@gdh/verify": "0.26.
|
|
36
|
+
"@gdh/adapters": "0.26.6",
|
|
37
|
+
"@gdh/authoring": "0.26.6",
|
|
38
|
+
"@gdh/core": "0.26.6",
|
|
39
|
+
"@gdh/docs": "0.26.6",
|
|
40
|
+
"@gdh/mcp": "0.26.6",
|
|
41
|
+
"@gdh/observability": "0.26.6",
|
|
42
|
+
"@gdh/runtime": "0.26.6",
|
|
43
|
+
"@gdh/scan": "0.26.6",
|
|
44
|
+
"@gdh/verify": "0.26.6",
|
|
45
45
|
"picocolors": "^1.1.1"
|
|
46
46
|
},
|
|
47
47
|
"bundledDependencies": [
|