@skillcap/gdh 0.20.0 → 0.21.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.
- package/INSTALL-BUNDLE.json +1 -1
- package/RELEASE-SPAN-UPDATE-CONTRACTS.json +74 -0
- package/node_modules/@gdh/adapters/dist/index.d.ts.map +1 -1
- package/node_modules/@gdh/adapters/dist/index.js +9 -9
- package/node_modules/@gdh/adapters/dist/index.js.map +1 -1
- package/node_modules/@gdh/adapters/dist/skill-rendering.js +2 -2
- package/node_modules/@gdh/adapters/dist/skill-rendering.js.map +1 -1
- package/node_modules/@gdh/adapters/package.json +8 -8
- package/node_modules/@gdh/authoring/dist/index.d.ts +1 -1
- package/node_modules/@gdh/authoring/dist/index.d.ts.map +1 -1
- package/node_modules/@gdh/authoring/dist/index.js +1 -1
- package/node_modules/@gdh/authoring/dist/index.js.map +1 -1
- package/node_modules/@gdh/authoring/dist/project.d.ts +1 -0
- package/node_modules/@gdh/authoring/dist/project.d.ts.map +1 -1
- package/node_modules/@gdh/authoring/dist/project.js +4 -0
- package/node_modules/@gdh/authoring/dist/project.js.map +1 -1
- 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 +26 -29
- 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 +13 -2
- package/node_modules/@gdh/core/dist/index.d.ts.map +1 -1
- package/node_modules/@gdh/core/dist/index.js +2 -2
- package/node_modules/@gdh/core/dist/index.js.map +1 -1
- package/node_modules/@gdh/core/dist/local-path-hints.d.ts +22 -1
- package/node_modules/@gdh/core/dist/local-path-hints.d.ts.map +1 -1
- package/node_modules/@gdh/core/dist/local-path-hints.js +139 -4
- package/node_modules/@gdh/core/dist/local-path-hints.js.map +1 -1
- package/node_modules/@gdh/core/package.json +1 -1
- package/node_modules/@gdh/docs/dist/guidance.js +2 -2
- 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/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/dist/onboard.js +1 -1
- package/node_modules/@gdh/scan/dist/onboard.js.map +1 -1
- 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
|
@@ -2219,6 +2219,80 @@
|
|
|
2219
2219
|
}
|
|
2220
2220
|
]
|
|
2221
2221
|
}
|
|
2222
|
+
},
|
|
2223
|
+
{
|
|
2224
|
+
"version": "0.21.0",
|
|
2225
|
+
"releaseTag": "v0.21.0",
|
|
2226
|
+
"migrationStatus": "required",
|
|
2227
|
+
"summary": "v0.21.0 adds global machine-local Godot editor discovery guidance and hardens nested monorepo authoring target canonicalization. Existing managed targets need `gdh migrate --apply` because GDH_AGENT_CONTRACT_VERSION moves 6 -> 7 and GDH_GUIDANCE_UNIT_VERSION moves 14 -> 15.",
|
|
2228
|
+
"releaseHighlights": {
|
|
2229
|
+
"summary": "v0.21.0 improves authoring readiness in real monorepos. GDH can now reuse a machine-wide Godot editor path from `~/.gdh/config.json`, check safe common editor locations before asking for manual setup, and consistently canonicalize nested Godot project inputs back to the onboarded GDH integration root before running authoring validators.",
|
|
2230
|
+
"operatorChanges": [
|
|
2231
|
+
"**Global Godot editor discovery.** Authoring checks, target preparation, and onboarding can resolve the editor path from `GDH_GODOT_EDITOR_BIN`, target-local hints, global `~/.gdh/config.json`, and safe common install locations.",
|
|
2232
|
+
"**Better setup guidance for machine-local paths.** Generated guidance and agent skills now tell agents what GDH already checked before asking for a Godot binary path, and prefer a reusable global config when the path should apply across projects.",
|
|
2233
|
+
"**Nested monorepo authoring checks use the integration root.** Passing a nested primary Godot project path such as `apps/game` no longer causes validators to append `primary_godot_project_path` twice.",
|
|
2234
|
+
"**Release proof covers the nested target regression.** The regression suite now checks `gdh authoring check --target <nested-primary-project>` against a brownfield monorepo fixture."
|
|
2235
|
+
]
|
|
2236
|
+
},
|
|
2237
|
+
"updateContract": {
|
|
2238
|
+
"summary": "Managed targets need release-specific migration for v0.21.0 because generated agent skill and guidance surfaces changed for Godot editor discovery and nested target handling. After self-update, run `gdh migrate --apply`, then validate status and drift.",
|
|
2239
|
+
"steps": [
|
|
2240
|
+
{
|
|
2241
|
+
"id": "self_update_authoring_package",
|
|
2242
|
+
"kind": "mechanical",
|
|
2243
|
+
"summary": "Install the v0.21.0 GDH package.",
|
|
2244
|
+
"detail": "Run the normal GDH self-update or package update path. This updates CLI behavior for global Godot editor discovery and nested target canonicalization.",
|
|
2245
|
+
"commands": [
|
|
2246
|
+
"gdh self-update --apply"
|
|
2247
|
+
],
|
|
2248
|
+
"validationCommands": [
|
|
2249
|
+
"gdh status"
|
|
2250
|
+
]
|
|
2251
|
+
},
|
|
2252
|
+
{
|
|
2253
|
+
"id": "refresh_generated_authoring_guidance",
|
|
2254
|
+
"kind": "mechanical",
|
|
2255
|
+
"summary": "Re-bake generated agent skills and authoring guidance.",
|
|
2256
|
+
"detail": "Run `gdh migrate --apply` so managed agent contract version 7 and guidance unit version 15 are written to the target. This refreshes Godot editor discovery wording and nested-target-safe authoring guidance.",
|
|
2257
|
+
"commands": [
|
|
2258
|
+
"gdh migrate --apply"
|
|
2259
|
+
],
|
|
2260
|
+
"validationCommands": [
|
|
2261
|
+
"gdh status",
|
|
2262
|
+
"gdh adapters status",
|
|
2263
|
+
"gdh verify drift"
|
|
2264
|
+
]
|
|
2265
|
+
},
|
|
2266
|
+
{
|
|
2267
|
+
"id": "classify_godot_editor_path_state",
|
|
2268
|
+
"kind": "agent_reasoning",
|
|
2269
|
+
"summary": "Classify machine-local Godot editor path state from structured GDH output.",
|
|
2270
|
+
"detail": "If GDH still reports `godot_editor_not_configured`, explain that environment, target-local hints, global config, and safe common locations were checked. Ask for a local path only after those fail, and prefer global `~/.gdh/config.json` when the path should apply across projects.",
|
|
2271
|
+
"commands": [
|
|
2272
|
+
"gdh status",
|
|
2273
|
+
"gdh target prepare --dry-run"
|
|
2274
|
+
],
|
|
2275
|
+
"validationCommands": [
|
|
2276
|
+
"gdh authoring check --mode final",
|
|
2277
|
+
"gdh target prepare --dry-run"
|
|
2278
|
+
]
|
|
2279
|
+
},
|
|
2280
|
+
{
|
|
2281
|
+
"id": "validate_nested_monorepo_target",
|
|
2282
|
+
"kind": "agent_reasoning",
|
|
2283
|
+
"summary": "Confirm nested monorepo targets are invoked from the onboarded integration root.",
|
|
2284
|
+
"detail": "For monorepos whose `.gdh/project.yaml` lives at the repository root and `primary_godot_project_path` points at a nested project, use the repository root as the canonical GDH target. GDH now also canonicalizes nested inputs defensively before authoring validators run.",
|
|
2285
|
+
"commands": [
|
|
2286
|
+
"gdh status",
|
|
2287
|
+
"gdh authoring check --mode final"
|
|
2288
|
+
],
|
|
2289
|
+
"validationCommands": [
|
|
2290
|
+
"gdh status",
|
|
2291
|
+
"gdh authoring check --mode final"
|
|
2292
|
+
]
|
|
2293
|
+
}
|
|
2294
|
+
]
|
|
2295
|
+
}
|
|
2222
2296
|
}
|
|
2223
2297
|
]
|
|
2224
2298
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ import fs from "node:fs/promises";
|
|
|
4
4
|
import os from "node:os";
|
|
5
5
|
import path from "node:path";
|
|
6
6
|
import { promisify } from "node:util";
|
|
7
|
-
import { readProjectConfig, readWorktreeState, resolveAuthoringStatus, resolvePinnedVersion, resolvePinnedVersionOrNull, resolveProjectRoot, } from "@gdh/authoring";
|
|
7
|
+
import { readProjectConfig, readWorktreeState, resolveAuthoringStatus, resolveEffectiveTargetPath, resolvePinnedVersion, resolvePinnedVersionOrNull, resolveProjectRoot, } from "@gdh/authoring";
|
|
8
8
|
import { assertProjectLifecycleCompatibilityInvariant, definePackageBoundary, GDH_AGENT_CONTRACT_VERSION, GDH_CURSOR_RULE_VERSION, GDH_GUIDANCE_INDEX_VERSION, GDH_GUIDANCE_UNIT_VERSION, GDH_PROJECT_CONFIG_VERSION, GDH_RECIPE_SCHEMA_VERSION, GDH_RULES_SCHEMA_VERSION, GDH_SCENARIO_SCHEMA_VERSION, resolveConfiguredGodotEditorBin, resolveCurrentGdhInstall, resolveGdhProductMetadata, } from "@gdh/core";
|
|
9
9
|
import { createDefaultGuidanceUnits, createDefaultRulesDocument, getGuidanceStatus, readRulesDocument, renderRulesYaml, resolveGuidanceQuery, resolveRecoveryHints, } from "@gdh/docs";
|
|
10
10
|
import { inspectGuidanceAudit } from "@gdh/observability";
|
|
@@ -254,7 +254,7 @@ export async function inspectProjectLifecycleCompatibility(targetPath) {
|
|
|
254
254
|
}
|
|
255
255
|
export async function buildGdhStatusResult(targetPath) {
|
|
256
256
|
const context = await buildAuthoringContext(targetPath);
|
|
257
|
-
const projectLifecycle = await inspectProjectLifecycleCompatibility(targetPath);
|
|
257
|
+
const projectLifecycle = await inspectProjectLifecycleCompatibility(context.targetPath);
|
|
258
258
|
const brokerInspection = await inspectRuntimeBridgeBroker({
|
|
259
259
|
targetPath: context.status.targetPath,
|
|
260
260
|
});
|
|
@@ -319,10 +319,10 @@ export async function createGsdSnapshot(targetPath, options = {}) {
|
|
|
319
319
|
const context = await buildAuthoringContext(targetPath);
|
|
320
320
|
const effectiveRepoState = deriveRepoState(context);
|
|
321
321
|
const files = normalizeChangedFiles(options.files ?? []);
|
|
322
|
-
const guidance = await getGuidanceStatus(targetPath);
|
|
322
|
+
const guidance = await getGuidanceStatus(context.targetPath);
|
|
323
323
|
const [audit, guidanceResolve] = await Promise.all([
|
|
324
|
-
inspectGuidanceAudit(targetPath),
|
|
325
|
-
resolveGuidanceQuery(targetPath, {
|
|
324
|
+
inspectGuidanceAudit(context.targetPath),
|
|
325
|
+
resolveGuidanceQuery(context.targetPath, {
|
|
326
326
|
taskTypes: ["authoring"],
|
|
327
327
|
capabilities: context.status.effectiveCapabilities,
|
|
328
328
|
repoState: effectiveRepoState,
|
|
@@ -330,7 +330,7 @@ export async function createGsdSnapshot(targetPath, options = {}) {
|
|
|
330
330
|
}),
|
|
331
331
|
]);
|
|
332
332
|
const guidanceStatus = {
|
|
333
|
-
targetPath,
|
|
333
|
+
targetPath: context.targetPath,
|
|
334
334
|
projectConfigPresent: context.projectConfig !== null,
|
|
335
335
|
authoringReadiness: context.status.readiness,
|
|
336
336
|
effectiveRepoState,
|
|
@@ -338,7 +338,7 @@ export async function createGsdSnapshot(targetPath, options = {}) {
|
|
|
338
338
|
audit,
|
|
339
339
|
};
|
|
340
340
|
return {
|
|
341
|
-
targetPath,
|
|
341
|
+
targetPath: context.targetPath,
|
|
342
342
|
adapter: {
|
|
343
343
|
adapter: "gsd",
|
|
344
344
|
enabledByDefault: false,
|
|
@@ -3079,8 +3079,7 @@ function dedupe(values) {
|
|
|
3079
3079
|
return [...new Set(values)];
|
|
3080
3080
|
}
|
|
3081
3081
|
async function buildAuthoringContext(targetPath) {
|
|
3082
|
-
const
|
|
3083
|
-
const effectiveTargetPath = resolvedRoot ?? targetPath;
|
|
3082
|
+
const effectiveTargetPath = await resolveEffectiveTargetPath(targetPath);
|
|
3084
3083
|
const inventoryResult = await readInventoryCacheOrScan(effectiveTargetPath);
|
|
3085
3084
|
const inventory = inventoryResult.inventory;
|
|
3086
3085
|
const projectConfig = await readProjectConfig(effectiveTargetPath);
|
|
@@ -3092,6 +3091,7 @@ async function buildAuthoringContext(targetPath) {
|
|
|
3092
3091
|
worktreeState,
|
|
3093
3092
|
});
|
|
3094
3093
|
return {
|
|
3094
|
+
targetPath: effectiveTargetPath,
|
|
3095
3095
|
inventory,
|
|
3096
3096
|
projectConfig,
|
|
3097
3097
|
worktreeState,
|