@skillcap/gdh 3.0.1 → 3.0.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.
- package/INSTALL-BUNDLE.json +1 -1
- package/RELEASE-SPAN-UPDATE-CONTRACTS.json +64 -0
- package/node_modules/@gdh/adapters/dist/index.d.ts.map +1 -1
- package/node_modules/@gdh/adapters/dist/index.js +21 -8
- 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/package.json +10 -10
- package/node_modules/@gdh/core/dist/index.d.ts +4 -1
- package/node_modules/@gdh/core/dist/index.d.ts.map +1 -1
- package/node_modules/@gdh/core/dist/index.js +4 -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/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
|
@@ -3832,6 +3832,70 @@
|
|
|
3832
3832
|
}
|
|
3833
3833
|
]
|
|
3834
3834
|
}
|
|
3835
|
+
},
|
|
3836
|
+
{
|
|
3837
|
+
"version": "3.0.2",
|
|
3838
|
+
"releaseTag": "v3.0.2",
|
|
3839
|
+
"migrationStatus": "required",
|
|
3840
|
+
"summary": "v3.0.2 updates managed Codex project config for Codex CLI 0.129.0 compatibility. Codex deprecated [features].codex_hooks in favor of [features].hooks; v3.0.1 still rendered codex_hooks = true into .codex/config.toml. This release renders hooks = true, removes existing codex_hooks feature lines during GDH-managed config refresh, and preserves unrelated feature flags. GDH_AGENT_CONTRACT_VERSION moves 23 -> 24 so existing managed targets re-bake generated Codex config and the managed AGENTS.md marker. No project config schema change is introduced. No class-2 or class-3 migration registry entry is required; this is class-1 deterministic re-bake.",
|
|
3841
|
+
"releaseHighlights": {
|
|
3842
|
+
"summary": "v3.0.2 is a patch release for Codex CLI compatibility. Codex CLI 0.129.0 warns that `[features].codex_hooks` is deprecated and the current feature flag is `[features].hooks`. GDH v3.0.1 still rendered the deprecated key into managed `.codex/config.toml`, so Codex users saw a warning at startup even though the managed hook block itself was present. This release changes the Codex config renderer to emit `hooks = true`, removes legacy `codex_hooks = ...` lines when refreshing the managed project config, and bumps `GDH_AGENT_CONTRACT_VERSION` 23 -> 24 so existing managed targets re-bake away from the deprecated flag on update.",
|
|
3843
|
+
"operatorChanges": [
|
|
3844
|
+
"**Codex feature flag updated.** New or refreshed `.codex/config.toml` files",
|
|
3845
|
+
"**Deprecated flag removed during repair.** When GDH refreshes an existing",
|
|
3846
|
+
"**Migration-chain coverage locks the behavior.** The Codex migration-chain"
|
|
3847
|
+
]
|
|
3848
|
+
},
|
|
3849
|
+
"updateContract": {
|
|
3850
|
+
"summary": "Existing managed targets should self-update to v3.0.2 and re-bake managed agent surfaces at GDH_AGENT_CONTRACT_VERSION 24. Codex-managed targets should refresh .codex/config.toml so [features].hooks = true replaces the deprecated codex_hooks feature flag.",
|
|
3851
|
+
"steps": [
|
|
3852
|
+
{
|
|
3853
|
+
"id": "install_v3_0_2",
|
|
3854
|
+
"kind": "mechanical",
|
|
3855
|
+
"summary": "Install the v3.0.2 GDH package.",
|
|
3856
|
+
"detail": "Run gdh self-update --apply or invoke /gdh-update so the target uses the package with the current Codex hooks feature flag renderer.",
|
|
3857
|
+
"commands": [
|
|
3858
|
+
"gdh self-update --apply"
|
|
3859
|
+
],
|
|
3860
|
+
"validationCommands": [
|
|
3861
|
+
"gdh status"
|
|
3862
|
+
]
|
|
3863
|
+
},
|
|
3864
|
+
{
|
|
3865
|
+
"id": "rebake_codex_config",
|
|
3866
|
+
"kind": "mechanical",
|
|
3867
|
+
"summary": "Re-bake managed Codex config and agent contract surfaces at GDH_AGENT_CONTRACT_VERSION 24.",
|
|
3868
|
+
"detail": "Run gdh migrate --apply when status reports pending managed-surface work. This refreshes .codex/config.toml to use hooks = true and removes the deprecated codex_hooks feature flag from the managed config.",
|
|
3869
|
+
"commands": [
|
|
3870
|
+
"gdh migrate --apply"
|
|
3871
|
+
],
|
|
3872
|
+
"validationCommands": [
|
|
3873
|
+
"gdh adapters status <target>",
|
|
3874
|
+
"gdh verify drift <target>"
|
|
3875
|
+
]
|
|
3876
|
+
},
|
|
3877
|
+
{
|
|
3878
|
+
"id": "repair_codex_config_directly",
|
|
3879
|
+
"kind": "mechanical",
|
|
3880
|
+
"summary": "Repair Codex config directly if adapter status reports a non-ready hook-config surface.",
|
|
3881
|
+
"detail": "Run gdh adapters install <target> --agent codex after updating. The planner refreshes .codex/config.toml with hooks = true, preserves unrelated feature flags, and keeps the managed GDH PostToolUse and Stop hook block.",
|
|
3882
|
+
"commands": [
|
|
3883
|
+
"gdh adapters install <target> --agent codex"
|
|
3884
|
+
],
|
|
3885
|
+
"validationCommands": [
|
|
3886
|
+
"gdh adapters status <target>"
|
|
3887
|
+
]
|
|
3888
|
+
},
|
|
3889
|
+
{
|
|
3890
|
+
"id": "codex_trust_check",
|
|
3891
|
+
"kind": "manual_review",
|
|
3892
|
+
"summary": "Codex CLI users should confirm hook trust after .codex/config.toml changes.",
|
|
3893
|
+
"detail": "If Codex shows the repaired GDH hook entries as new or Modified in /hooks, trust them there. GDH can repair the config file, but it cannot inspect Codex's internal hook trust hash.",
|
|
3894
|
+
"commands": [],
|
|
3895
|
+
"validationCommands": []
|
|
3896
|
+
}
|
|
3897
|
+
]
|
|
3898
|
+
}
|
|
3835
3899
|
}
|
|
3836
3900
|
]
|
|
3837
3901
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAgBA,OAAO,EAcL,KAAK,6BAA6B,EAClC,KAAK,4BAA4B,EAIjC,KAAK,sCAAsC,EAE3C,KAAK,gCAAgC,EAKrC,KAAK,eAAe,EACpB,KAAK,iBAAiB,EAIvB,MAAM,WAAW,CAAC;AAyBnB,OAAO,EAEL,KAAK,sBAAsB,EAC5B,MAAM,gCAAgC,CAAC;AAkCxC,OAAO,EACL,8BAA8B,EAC9B,qBAAqB,EACrB,aAAa,EACb,cAAc,EACd,wBAAwB,EACxB,wBAAwB,EACxB,wBAAwB,EACxB,wBAAwB,EACxB,wBAAwB,EACxB,uBAAuB,EACvB,uBAAuB,EACvB,uBAAuB,EACvB,uBAAuB,EACvB,uBAAuB,EACvB,uBAAuB,EACvB,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,sBAAsB,CAAC;AAe9B,eAAO,MAAM,eAAe,wCAa1B,CAAC;AAEH,eAAO,MAAM,gBAAgB,8BAGoB,CAAC;AAClD,eAAO,MAAM,yBAAyB,cAAc,CAAC;AACrD,eAAO,MAAM,kCAAkC,wCAAwC,CAAC;AACxF,eAAO,MAAM,yBAAyB,cAAc,CAAC;AACrD,eAAO,MAAM,iCAAiC,wCAAwC,CAAC;AACvF,eAAO,MAAM,iCAAiC,uCAAuC,CAAC;AACtF,eAAO,MAAM,kCAAkC,wCAAwC,CAAC;AACxF,eAAO,MAAM,gCAAgC,sCAAsC,CAAC;AACpF,eAAO,MAAM,kCAAkC,wCAAwC,CAAC;AACxF,eAAO,MAAM,mCAAmC,yCAAyC,CAAC;AAC1F,eAAO,MAAM,gCAAgC,uCAAuC,CAAC;AACrF,eAAO,MAAM,iCAAiC,wCAAwC,CAAC;AACvF,eAAO,MAAM,+BAA+B,sCAAsC,CAAC;AACnF,eAAO,MAAM,iCAAiC,wCAAwC,CAAC;AACvF,eAAO,MAAM,kCAAkC,yCAAyC,CAAC;AAOzF,eAAO,MAAM,iCAAiC,uCAAuC,CAAC;AACtF,eAAO,MAAM,gCAAgC,uCAAuC,CAAC;AACrF,eAAO,MAAM,oCAAoC,wCAAqC,CAAC;AACvF,eAAO,MAAM,mCAAmC,uCAAoC,CAAC;AACrF,eAAO,MAAM,oCAAoC,wCAAqC,CAAC;AACvF,eAAO,MAAM,kCAAkC,sCAAmC,CAAC;AACnF,eAAO,MAAM,oCAAoC,wCAAqC,CAAC;AACvF,eAAO,MAAM,qCAAqC,yCAAsC,CAAC;AACzF,eAAO,MAAM,mCAAmC,uCAAoC,CAAC;AAsCrF,eAAO,MAAM,8BAA8B,gCAAgC,CAAC;AAC5E,eAAO,MAAM,kCAAkC,uBAAuB,CAAC;AACvE,eAAO,MAAM,mBAAmB,QAAQ,CAAC;AASzC,wBAAsB,+BAA+B,CACnD,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE;IACP,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACzC,GACL,OAAO,CAAC,4BAA4B,CAAC,CAsBvC;AAED,wBAAsB,6BAA6B,CACjD,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE;IACP,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAC/C,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7C,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;CAC9B,GACL,OAAO,CAAC,6BAA6B,CAAC,CA8ExC;AAED,wBAAsB,oCAAoC,CACxD,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,sCAAsC,CAAC,CAiEjD;AAED,wBAAsB,oBAAoB,CACxC,UAAU,EAAE,MAAM,EAClB,QAAQ,CAAC,EAAE,sBAAsB,GAChC,OAAO,CAAC,eAAe,CAAC,CAmC1B;AAqDD,wBAAgB,0BAA0B,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAExE;AAED,wBAAgB,yBAAyB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAEvE;AAED,wBAAgB,0BAA0B,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAExE;AAED,wBAAgB,yBAAyB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAEvE;AAED,wBAAgB,0BAA0B,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAExE;AAED,wBAAgB,0BAA0B,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAExE;AAk2ED,wBAAgB,gCAAgC,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAQ9E;AAED,wBAAgB,+BAA+B,CAC7C,eAAe,EAAE,MAAM,GAAG,IAAI,EAC9B,aAAa,EAAE,MAAM,GACpB,MAAM,CAOR;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -604,7 +604,7 @@ function inspectCodexAuthoringHookConfig(targetPath, content, enabled) {
|
|
|
604
604
|
});
|
|
605
605
|
}
|
|
606
606
|
const ready = content !== null &&
|
|
607
|
-
/^\s*
|
|
607
|
+
/^\s*hooks\s*=\s*true\s*$/m.test(content) &&
|
|
608
608
|
content.includes("# BEGIN GDH managed authoring hooks") &&
|
|
609
609
|
content.includes(GDH_AUTHORING_HOOK_RELATIVE_PATH);
|
|
610
610
|
return createSurfaceStatus({
|
|
@@ -1983,7 +1983,7 @@ function ensureCodexHooksFeature(content) {
|
|
|
1983
1983
|
const featuresStart = lines.findIndex((line) => /^\[features\]\s*$/.test(line));
|
|
1984
1984
|
if (featuresStart === -1) {
|
|
1985
1985
|
const separator = content.trim().length > 0 ? "\n\n" : "";
|
|
1986
|
-
return `${content}${separator}[features]\
|
|
1986
|
+
return `${content}${separator}[features]\nhooks = true`;
|
|
1987
1987
|
}
|
|
1988
1988
|
let featuresEnd = lines.length;
|
|
1989
1989
|
for (let i = featuresStart + 1; i < lines.length; i++) {
|
|
@@ -1993,14 +1993,27 @@ function ensureCodexHooksFeature(content) {
|
|
|
1993
1993
|
}
|
|
1994
1994
|
}
|
|
1995
1995
|
const featureLines = lines.slice(featuresStart, featuresEnd);
|
|
1996
|
-
const
|
|
1997
|
-
|
|
1998
|
-
|
|
1996
|
+
const updatedFeatureLines = [];
|
|
1997
|
+
let hooksIndex = -1;
|
|
1998
|
+
for (const line of featureLines) {
|
|
1999
|
+
if (/^\s*codex_hooks\s*=/.test(line)) {
|
|
2000
|
+
continue;
|
|
2001
|
+
}
|
|
2002
|
+
if (/^\s*hooks\s*=/.test(line)) {
|
|
2003
|
+
hooksIndex = updatedFeatureLines.length;
|
|
2004
|
+
updatedFeatureLines.push("hooks = true");
|
|
2005
|
+
continue;
|
|
2006
|
+
}
|
|
2007
|
+
updatedFeatureLines.push(line);
|
|
1999
2008
|
}
|
|
2000
|
-
|
|
2001
|
-
|
|
2009
|
+
if (hooksIndex === -1) {
|
|
2010
|
+
updatedFeatureLines.push("hooks = true");
|
|
2002
2011
|
}
|
|
2003
|
-
return [
|
|
2012
|
+
return [
|
|
2013
|
+
...lines.slice(0, featuresStart),
|
|
2014
|
+
...updatedFeatureLines,
|
|
2015
|
+
...lines.slice(featuresEnd),
|
|
2016
|
+
].join("\n");
|
|
2004
2017
|
}
|
|
2005
2018
|
function extractManagedCodexSection(content) {
|
|
2006
2019
|
const lines = content.split("\n");
|