@skillcap/gdh 0.19.0 → 0.19.1

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 (27) hide show
  1. package/INSTALL-BUNDLE.json +1 -1
  2. package/RELEASE-SPAN-UPDATE-CONTRACTS.json +54 -0
  3. package/node_modules/@gdh/adapters/dist/claude-settings-patch.d.ts +14 -13
  4. package/node_modules/@gdh/adapters/dist/claude-settings-patch.d.ts.map +1 -1
  5. package/node_modules/@gdh/adapters/dist/claude-settings-patch.js +27 -40
  6. package/node_modules/@gdh/adapters/dist/claude-settings-patch.js.map +1 -1
  7. package/node_modules/@gdh/adapters/dist/claude-statusline-render.d.ts +12 -13
  8. package/node_modules/@gdh/adapters/dist/claude-statusline-render.d.ts.map +1 -1
  9. package/node_modules/@gdh/adapters/dist/claude-statusline-render.js +12 -13
  10. package/node_modules/@gdh/adapters/dist/claude-statusline-render.js.map +1 -1
  11. package/node_modules/@gdh/adapters/dist/index.d.ts.map +1 -1
  12. package/node_modules/@gdh/adapters/dist/index.js +14 -12
  13. package/node_modules/@gdh/adapters/dist/index.js.map +1 -1
  14. package/node_modules/@gdh/adapters/dist/skill-rendering.d.ts.map +1 -1
  15. package/node_modules/@gdh/adapters/dist/skill-rendering.js +19 -7
  16. package/node_modules/@gdh/adapters/dist/skill-rendering.js.map +1 -1
  17. package/node_modules/@gdh/adapters/package.json +8 -8
  18. package/node_modules/@gdh/authoring/package.json +2 -2
  19. package/node_modules/@gdh/cli/package.json +10 -10
  20. package/node_modules/@gdh/core/package.json +1 -1
  21. package/node_modules/@gdh/docs/package.json +2 -2
  22. package/node_modules/@gdh/mcp/package.json +8 -8
  23. package/node_modules/@gdh/observability/package.json +2 -2
  24. package/node_modules/@gdh/runtime/package.json +2 -2
  25. package/node_modules/@gdh/scan/package.json +3 -3
  26. package/node_modules/@gdh/verify/package.json +7 -7
  27. package/package.json +11 -11
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "product": "GDH",
3
- "version": "0.19.0",
3
+ "version": "0.19.1",
4
4
  "installMode": "packaged_install"
5
5
  }
@@ -1777,6 +1777,60 @@
1777
1777
  }
1778
1778
  ]
1779
1779
  }
1780
+ },
1781
+ {
1782
+ "version": "0.19.1",
1783
+ "releaseTag": "v0.19.1",
1784
+ "migrationStatus": "no_op",
1785
+ "summary": "v0.19.1 hardens supported-agent adapter behavior without changing managed schema or lifecycle surface versions. Claude adapter install no longer auto-registers GDH in Claude Code's single project `statusLine` slot, removes only the exact old GDH-managed statusLine entry during repair/update, and preserves custom statuslines. Generated gdh-update, gdh-status, and gdh-onboard skill guidance is clearer, but no release-scoped schema migration is required.",
1786
+ "releaseHighlights": {
1787
+ "summary": "v0.19.1 hardens supported-agent adapter behavior from dogfooding feedback. Claude project installs no longer auto-own Claude Code's single `statusLine` slot, so existing user or global statuslines stay visible. The release also tightens generated `/gdh-update`, `/gdh-status`, and `/gdh-onboard` skill guidance so agents have clearer operational context during update, status, and onboarding flows.",
1788
+ "operatorChanges": [
1789
+ "**Claude statusline ownership is non-destructive.** GDH still bakes `.claude/hooks/gdh-statusline.js` as an optional script, but adapter install no longer writes a project-level `statusLine` entry when one is absent. This prevents GDH from shadowing user/global Claude statuslines.",
1790
+ "**Old GDH-managed statusline entries are cleaned up safely.** Adapter repair/update removes only the exact prior GDH-managed `statusLine` entry. Custom, user-owned, or tool-owned statuslines are preserved.",
1791
+ "**Shipped skill guidance is clearer.** `/gdh-update` now emphasizes terminal-state follow-through, drift verification, explicit target handling, and stale MCP cleanup boundaries. `/gdh-status` and `/gdh-onboard` define the operational terms agents need instead of assuming project-specific vocabulary is already known."
1792
+ ]
1793
+ },
1794
+ "updateContract": {
1795
+ "summary": "No release-scoped managed schema migration is required for v0.19.1. After self-update, the adapter re-bake path applies the Claude statusline cleanup automatically: exact old GDH-managed statusLine ownership is removed, custom statuslines are preserved, and the optional GDH statusline script remains available for projects that explicitly opt into it.",
1796
+ "steps": [
1797
+ {
1798
+ "id": "rebake_agent_adapters",
1799
+ "kind": "mechanical",
1800
+ "summary": "Re-bake supported-agent surfaces at the new GDH pin.",
1801
+ "detail": "`gdh self-update` re-runs the adapter install path. If an agent needs to repair surfaces manually, run `gdh adapters install <target>` for repo-local agent surfaces.",
1802
+ "commands": [
1803
+ "gdh adapters install <target>"
1804
+ ],
1805
+ "validationCommands": [
1806
+ "gdh adapters status <target>",
1807
+ "gdh verify drift <target>"
1808
+ ]
1809
+ },
1810
+ {
1811
+ "id": "preserve_claude_statusline",
1812
+ "kind": "agent_reasoning",
1813
+ "summary": "Do not replace project or user Claude statuslines with GDH's optional statusline script.",
1814
+ "detail": "Claude Code exposes one statusLine command slot. GDH no longer auto-registers its optional statusline script because a project-level entry can shadow a user's global/custom statusline. If a project deliberately wants the GDH hint, it can configure `.claude/hooks/gdh-statusline.js` itself.",
1815
+ "commands": [],
1816
+ "validationCommands": [
1817
+ "gdh adapters status <target>"
1818
+ ]
1819
+ },
1820
+ {
1821
+ "id": "verify_custom_statusline_survived",
1822
+ "kind": "mechanical",
1823
+ "summary": "When a project had a custom Claude statusLine, confirm it remains configured.",
1824
+ "detail": "Inspect `.claude/settings.json` only when statusline behavior is relevant. Custom statusLine entries should remain unchanged; only the exact prior GDH-managed command is removed.",
1825
+ "commands": [
1826
+ "gdh adapters status <target>"
1827
+ ],
1828
+ "validationCommands": [
1829
+ "gdh adapters status <target>"
1830
+ ]
1831
+ }
1832
+ ]
1833
+ }
1780
1834
  }
1781
1835
  ]
1782
1836
  }
@@ -39,21 +39,22 @@ export declare const GDH_AUTHORING_HOOK_COMMAND = "node -e \"const fs=require('f
39
39
  */
40
40
  export declare function patchClaudeSettingsForGdhSessionStart(existingContent: string): string;
41
41
  /**
42
- * Patch-merge .claude/settings.json so the GDH statusline is registered ONLY
43
- * when no existing `statusLine` entry is configured (write-if-absent).
42
+ * Patch-merge .claude/settings.json so GDH does not own Claude's single
43
+ * statusLine slot automatically.
44
44
  *
45
- * Planner-lock #2 resolution (Plan 03) per D-18:
46
- * - If `settings.statusLine` is present as ANY truthy value, leave it
47
- * untouched. GDH does not clobber a user-configured statusline; other
48
- * tools (e.g. GSD) can own the slot, and UPD-02 silently no-ops for
49
- * that target. The universal cross-adapter detection surface is MCP
50
- * `_meta` (UPD-03), so a no-op here is acceptable degradation.
51
- * - If `settings.statusLine` is `undefined` or `null`, register GDH's
52
- * `{ type: "command", command: "node .claude/hooks/gdh-statusline.js" }`.
53
- * - Preserves every sibling top-level key verbatim (hooks, env,
45
+ * Claude Code exposes one project `statusLine` command. Project settings can
46
+ * shadow user/global statusline configuration, so GDH must not create a
47
+ * project-level statusLine entry just to show update hints. The SessionStart
48
+ * hook, MCP `_meta`, and CLI banner are the non-destructive update surfaces.
49
+ *
50
+ * Migration behavior:
51
+ * - If `settings.statusLine` is the exact old GDH-managed entry, remove it.
52
+ * This lets existing targets fall back to user/global statusline behavior.
53
+ * - If `settings.statusLine` is absent, null, or anything else, leave it
54
+ * untouched. GDH does not compose or guess at other tools' commands.
55
+ * - Preserve every sibling top-level key verbatim (hooks, env,
54
56
  * permissions, etc.). Composes cleanly with
55
- * `patchClaudeSettingsForGdhSessionStart` (idempotent + commutative,
56
- * proven by the Task 1 Test J suite).
57
+ * `patchClaudeSettingsForGdhSessionStart` and authoring hook patches.
57
58
  *
58
59
  * Input handling:
59
60
  * - Empty string / whitespace-only → fresh `{}` base (GDH-only output).
@@ -1 +1 @@
1
- {"version":3,"file":"claude-settings-patch.d.ts","sourceRoot":"","sources":["../src/claude-settings-patch.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,eAAO,MAAM,6BAA6B,0BAA0B,CAAC;AAErE;;;;;;;GAOG;AACH,eAAO,MAAM,8BAA8B,2CAA2C,CAAC;AACvF,eAAO,MAAM,0BAA0B,uRAAgC,CAAC;AA8DxE;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,qCAAqC,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,CAuCrF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,mCAAmC,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,CA6BnF;AAED,wBAAgB,uCAAuC,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,CA2CvF"}
1
+ {"version":3,"file":"claude-settings-patch.d.ts","sourceRoot":"","sources":["../src/claude-settings-patch.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,eAAO,MAAM,6BAA6B,0BAA0B,CAAC;AAErE;;;;;;;GAOG;AACH,eAAO,MAAM,8BAA8B,2CAA2C,CAAC;AACvF,eAAO,MAAM,0BAA0B,uRAAgC,CAAC;AA8DxE;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,qCAAqC,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,CAuCrF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,mCAAmC,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,CAQnF;AAeD,wBAAgB,uCAAuC,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,CA2CvF"}
@@ -105,21 +105,22 @@ export function patchClaudeSettingsForGdhSessionStart(existingContent) {
105
105
  return `${JSON.stringify(settings, null, 2)}\n`;
106
106
  }
107
107
  /**
108
- * Patch-merge .claude/settings.json so the GDH statusline is registered ONLY
109
- * when no existing `statusLine` entry is configured (write-if-absent).
108
+ * Patch-merge .claude/settings.json so GDH does not own Claude's single
109
+ * statusLine slot automatically.
110
110
  *
111
- * Planner-lock #2 resolution (Plan 03) per D-18:
112
- * - If `settings.statusLine` is present as ANY truthy value, leave it
113
- * untouched. GDH does not clobber a user-configured statusline; other
114
- * tools (e.g. GSD) can own the slot, and UPD-02 silently no-ops for
115
- * that target. The universal cross-adapter detection surface is MCP
116
- * `_meta` (UPD-03), so a no-op here is acceptable degradation.
117
- * - If `settings.statusLine` is `undefined` or `null`, register GDH's
118
- * `{ type: "command", command: "node .claude/hooks/gdh-statusline.js" }`.
119
- * - Preserves every sibling top-level key verbatim (hooks, env,
111
+ * Claude Code exposes one project `statusLine` command. Project settings can
112
+ * shadow user/global statusline configuration, so GDH must not create a
113
+ * project-level statusLine entry just to show update hints. The SessionStart
114
+ * hook, MCP `_meta`, and CLI banner are the non-destructive update surfaces.
115
+ *
116
+ * Migration behavior:
117
+ * - If `settings.statusLine` is the exact old GDH-managed entry, remove it.
118
+ * This lets existing targets fall back to user/global statusline behavior.
119
+ * - If `settings.statusLine` is absent, null, or anything else, leave it
120
+ * untouched. GDH does not compose or guess at other tools' commands.
121
+ * - Preserve every sibling top-level key verbatim (hooks, env,
120
122
  * permissions, etc.). Composes cleanly with
121
- * `patchClaudeSettingsForGdhSessionStart` (idempotent + commutative,
122
- * proven by the Task 1 Test J suite).
123
+ * `patchClaudeSettingsForGdhSessionStart` and authoring hook patches.
123
124
  *
124
125
  * Input handling:
125
126
  * - Empty string / whitespace-only → fresh `{}` base (GDH-only output).
@@ -138,36 +139,22 @@ export function patchClaudeSettingsForGdhSessionStart(existingContent) {
138
139
  * that both sides import from.
139
140
  */
140
141
  export function patchClaudeSettingsForGdhStatusline(existingContent) {
141
- let settings;
142
- try {
143
- const trimmed = existingContent.trim();
144
- if (trimmed.length === 0) {
145
- settings = {};
146
- }
147
- else {
148
- const parsed = JSON.parse(trimmed);
149
- if (parsed !== null && typeof parsed === "object" && !Array.isArray(parsed)) {
150
- settings = parsed;
151
- }
152
- else {
153
- settings = {};
154
- }
155
- }
156
- }
157
- catch {
158
- settings = {};
159
- }
160
- // Write-if-absent semantics: any existing truthy statusLine value is
161
- // preserved verbatim (D-18 — another tool already owns the slot, we
162
- // silently no-op for UPD-02 on this target).
163
- if (settings.statusLine === undefined || settings.statusLine === null) {
164
- settings.statusLine = {
165
- type: "command",
166
- command: GDH_STATUSLINE_COMMAND,
167
- };
142
+ const settings = parseClaudeSettings(existingContent);
143
+ if (isExactGdhManagedStatusline(settings.statusLine)) {
144
+ delete settings.statusLine;
168
145
  }
169
146
  return `${JSON.stringify(settings, null, 2)}\n`;
170
147
  }
148
+ function isExactGdhManagedStatusline(value) {
149
+ if (value === null || typeof value !== "object" || Array.isArray(value)) {
150
+ return false;
151
+ }
152
+ const record = value;
153
+ const keys = Object.keys(record);
154
+ return (keys.length === 2 &&
155
+ record["type"] === "command" &&
156
+ record["command"] === GDH_STATUSLINE_COMMAND);
157
+ }
171
158
  export function patchClaudeSettingsForGdhAuthoringHooks(existingContent) {
172
159
  const settings = parseClaudeSettings(existingContent);
173
160
  const existingHooks = settings.hooks;
@@ -1 +1 @@
1
- {"version":3,"file":"claude-settings-patch.js","sourceRoot":"","sources":["../src/claude-settings-patch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude-settings-patch.js","sourceRoot":"","sources":["../src/claude-settings-patch.ts"],"names":[],"mappings":"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"}
@@ -1,20 +1,19 @@
1
1
  /**
2
- * Relative path of the managed Claude statusline renderer script. This is
3
- * the .js file Claude Code invokes on every prompt render when the managed
4
- * target has registered `statusLine.command = "node .claude/hooks/gdh-statusline.js"`
5
- * in its `.claude/settings.json`.
2
+ * Relative path of the optional managed Claude statusline renderer script.
3
+ * GDH bakes this file so projects can opt into it manually, but adapter
4
+ * install does not register it in `.claude/settings.json` because Claude
5
+ * exposes only one statusLine command slot and a project-level entry can
6
+ * shadow a user's global statusline.
6
7
  */
7
8
  export declare const CLAUDE_STATUSLINE_RELATIVE_PATH = ".claude/hooks/gdh-statusline.js";
8
9
  /**
9
- * Exact command literal GDH uses to register its statusline in
10
- * `.claude/settings.json`.
10
+ * Exact command literal for the optional GDH statusline script.
11
11
  *
12
12
  * `patchClaudeSettingsForGdhStatusline` (in claude-settings-patch.ts) imports
13
- * this constant and writes it into the `statusLine.command` field ONLY when
14
- * the target has no pre-existing `statusLine` registration (write-if-absent
15
- * policy planner-lock #2 resolution per D-18). If another tool already owns
16
- * the slot, GDH leaves it untouched and UPD-02 silently no-ops on that repo;
17
- * the universal cross-adapter detection surface is MCP `_meta` (UPD-03).
13
+ * this constant only to remove the exact old GDH-managed statusLine entry
14
+ * during migration. GDH does not auto-register this command anymore; update
15
+ * detection still exists via SessionStart, MCP `_meta`, and CLI banner
16
+ * surfaces.
18
17
  */
19
18
  export declare const GDH_STATUSLINE_COMMAND = "node .claude/hooks/gdh-statusline.js";
20
19
  /**
@@ -23,8 +22,8 @@ export declare const GDH_STATUSLINE_COMMAND = "node .claude/hooks/gdh-statusline
23
22
  *
24
23
  * The returned string is written verbatim to `.claude/hooks/gdh-statusline.js`
25
24
  * by the adapter install pipeline. At runtime, Claude Code invokes the
26
- * rendered script (when `statusLine.command` points at it — see D-18 /
27
- * planner-lock #2) on every prompt render; the script reads the shared
25
+ * rendered script (when a project deliberately points `statusLine.command` at
26
+ * it) on every prompt render; the script reads the shared
28
27
  * cache at `~/.cache/gdh/update-check.json` and prints the yellow
29
28
  * `⬆ /gdh-update │ ` indicator when `cache.updateAvailable` is truthy.
30
29
  *
@@ -1 +1 @@
1
- {"version":3,"file":"claude-statusline-render.d.ts","sourceRoot":"","sources":["../src/claude-statusline-render.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,eAAO,MAAM,+BAA+B,oCACT,CAAC;AAEpC;;;;;;;;;;GAUG;AACH,eAAO,MAAM,sBAAsB,yCAAyC,CAAC;AAE7E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,4BAA4B,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,CA4B5E"}
1
+ {"version":3,"file":"claude-statusline-render.d.ts","sourceRoot":"","sources":["../src/claude-statusline-render.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,eAAO,MAAM,+BAA+B,oCACT,CAAC;AAEpC;;;;;;;;GAQG;AACH,eAAO,MAAM,sBAAsB,yCAAyC,CAAC;AAE7E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,4BAA4B,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,CA4B5E"}
@@ -1,21 +1,20 @@
1
1
  import { GDH_UPDATE_HOOK_VERSION } from "@gdh/core";
2
2
  /**
3
- * Relative path of the managed Claude statusline renderer script. This is
4
- * the .js file Claude Code invokes on every prompt render when the managed
5
- * target has registered `statusLine.command = "node .claude/hooks/gdh-statusline.js"`
6
- * in its `.claude/settings.json`.
3
+ * Relative path of the optional managed Claude statusline renderer script.
4
+ * GDH bakes this file so projects can opt into it manually, but adapter
5
+ * install does not register it in `.claude/settings.json` because Claude
6
+ * exposes only one statusLine command slot and a project-level entry can
7
+ * shadow a user's global statusline.
7
8
  */
8
9
  export const CLAUDE_STATUSLINE_RELATIVE_PATH = ".claude/hooks/gdh-statusline.js";
9
10
  /**
10
- * Exact command literal GDH uses to register its statusline in
11
- * `.claude/settings.json`.
11
+ * Exact command literal for the optional GDH statusline script.
12
12
  *
13
13
  * `patchClaudeSettingsForGdhStatusline` (in claude-settings-patch.ts) imports
14
- * this constant and writes it into the `statusLine.command` field ONLY when
15
- * the target has no pre-existing `statusLine` registration (write-if-absent
16
- * policy planner-lock #2 resolution per D-18). If another tool already owns
17
- * the slot, GDH leaves it untouched and UPD-02 silently no-ops on that repo;
18
- * the universal cross-adapter detection surface is MCP `_meta` (UPD-03).
14
+ * this constant only to remove the exact old GDH-managed statusLine entry
15
+ * during migration. GDH does not auto-register this command anymore; update
16
+ * detection still exists via SessionStart, MCP `_meta`, and CLI banner
17
+ * surfaces.
19
18
  */
20
19
  export const GDH_STATUSLINE_COMMAND = "node .claude/hooks/gdh-statusline.js";
21
20
  /**
@@ -24,8 +23,8 @@ export const GDH_STATUSLINE_COMMAND = "node .claude/hooks/gdh-statusline.js";
24
23
  *
25
24
  * The returned string is written verbatim to `.claude/hooks/gdh-statusline.js`
26
25
  * by the adapter install pipeline. At runtime, Claude Code invokes the
27
- * rendered script (when `statusLine.command` points at it — see D-18 /
28
- * planner-lock #2) on every prompt render; the script reads the shared
26
+ * rendered script (when a project deliberately points `statusLine.command` at
27
+ * it) on every prompt render; the script reads the shared
29
28
  * cache at `~/.cache/gdh/update-check.json` and prints the yellow
30
29
  * `⬆ /gdh-update │ ` indicator when `cache.updateAvailable` is truthy.
31
30
  *
@@ -1 +1 @@
1
- {"version":3,"file":"claude-statusline-render.js","sourceRoot":"","sources":["../src/claude-statusline-render.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AAEpD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAC1C,iCAAiC,CAAC;AAEpC;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,sCAAsC,CAAC;AAE7E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,UAAU,4BAA4B,CAAC,cAAuB;IAClE,OAAO;QACL,qBAAqB;QACrB,wBAAwB,uBAAuB,EAAE;QACjD,gGAAgG;QAChG,wFAAwF;QACxF,qFAAqF;QACrF,EAAE;QACF,2BAA2B;QAC3B,+BAA+B;QAC/B,2BAA2B;QAC3B,EAAE;QACF,+BAA+B;QAC/B,6EAA6E;QAC7E,EAAE;QACF,qBAAqB;QACrB,iCAAiC;QACjC,SAAS;QACT,mEAAmE;QACnE,2CAA2C;QAC3C,wDAAwD;QACxD,OAAO;QACP,kBAAkB;QAClB,GAAG;QACH,EAAE;QACF,kCAAkC;QAClC,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"claude-statusline-render.js","sourceRoot":"","sources":["../src/claude-statusline-render.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AAEpD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAC1C,iCAAiC,CAAC;AAEpC;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,sCAAsC,CAAC;AAE7E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,UAAU,4BAA4B,CAAC,cAAuB;IAClE,OAAO;QACL,qBAAqB;QACrB,wBAAwB,uBAAuB,EAAE;QACjD,gGAAgG;QAChG,wFAAwF;QACxF,qFAAqF;QACrF,EAAE;QACF,2BAA2B;QAC3B,+BAA+B;QAC/B,2BAA2B;QAC3B,EAAE;QACF,+BAA+B;QAC/B,6EAA6E;QAC7E,EAAE;QACF,qBAAqB;QACrB,iCAAiC;QACjC,SAAS;QACT,mEAAmE;QACnE,2CAA2C;QAC3C,wDAAwD;QACxD,OAAO;QACP,kBAAkB;QAClB,GAAG;QACH,EAAE;QACF,kCAAkC;QAClC,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC"}
@@ -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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"}
@@ -1505,22 +1505,24 @@ function planClaudeInstallActions(targetPath, adapter, pinnedVersion) {
1505
1505
  actions.push(planSkillInstallAction("claude", targetPath, adapter, CLAUDE_ONBOARD_COMMAND_RELATIVE_PATH, renderClaudeOnboardCommand, "gdh-onboard", pinnedVersion), planSkillInstallAction("claude", targetPath, adapter, CLAUDE_STATUS_COMMAND_RELATIVE_PATH, renderClaudeStatusCommand, "gdh-status", pinnedVersion), planSkillInstallAction("claude", targetPath, adapter, CLAUDE_MIGRATE_COMMAND_RELATIVE_PATH, renderClaudeMigrateCommand, "gdh-migrate", pinnedVersion), planSkillInstallAction("claude", targetPath, adapter, CLAUDE_UPDATE_COMMAND_RELATIVE_PATH, renderClaudeUpdateCommand, "gdh-update", pinnedVersion), planSkillInstallAction("claude", targetPath, adapter, CLAUDE_CHECK_COMMAND_RELATIVE_PATH, renderClaudeCheckCommand, "gdh-check", pinnedVersion), planSkillInstallAction("claude", targetPath, adapter, CLAUDE_PREPARE_COMMAND_RELATIVE_PATH, renderClaudePrepareCommand, "gdh-prepare", pinnedVersion), planSkillInstallAction("claude", targetPath, adapter, CLAUDE_SCAN_COMMAND_RELATIVE_PATH, renderClaudeScanCommand, "gdh-scan", pinnedVersion),
1506
1506
  // UPD-01 managed hook surfaces baked at the pinned version.
1507
1507
  planHookInstallAction("claude", targetPath, adapter, CLAUDE_CHECK_UPDATE_HOOK_RELATIVE_PATH, renderClaudeCheckUpdateHook, "gdh-check-update-hook", pinnedVersion), planHookInstallAction("claude", targetPath, adapter, CLAUDE_CHECK_UPDATE_WORKER_RELATIVE_PATH, renderClaudeCheckUpdateWorker, "gdh-check-update-worker", pinnedVersion),
1508
- // UPD-02 managed statusline surface baked at the pinned version. The .js
1509
- // file is ALWAYS baked, even when settings.json statusLine is not owned
1510
- // by GDH (write-if-absent below) users can manually point their config
1511
- // at gdh-statusline.js later; the baked file is a no-op until wired.
1508
+ // Optional statusline script baked at the pinned version. The .js file is
1509
+ // ALWAYS baked, but GDH no longer registers Claude's single project
1510
+ // statusLine slot automatically because that would shadow user/global
1511
+ // statusline content. Users can manually point their config at
1512
+ // gdh-statusline.js later; the baked file is a no-op until wired.
1512
1513
  planHookInstallAction("claude", targetPath, adapter, CLAUDE_STATUSLINE_RELATIVE_PATH, renderClaudeUpdateStatusline, "gdh-statusline", pinnedVersion), planHookInstallAction("claude", targetPath, adapter, CLAUDE_AUTHORING_HOOK_RELATIVE_PATH, (version) => renderGdhAuthoringHook({
1513
1514
  pinnedVersion: version,
1514
1515
  targetRelativePath: ".",
1515
1516
  agent: "claude",
1516
1517
  }), "authoring guard", pinnedVersion));
1517
- // UPD-01 + UPD-02 .claude/settings.json composite patch action.
1518
+ // .claude/settings.json composite patch action.
1518
1519
  // - Plan 02 (Strategy A, planner-lock #1): patch-merge the SessionStart
1519
1520
  // hook entry by exact command-literal match, preserving siblings.
1520
- // - Plan 03 (write-if-absent, planner-lock #2 / D-18): add the statusLine
1521
- // entry ONLY when no existing statusLine is configured (e.g. GSD-owned
1522
- // or user-owned). Silent no-op for UPD-02 on targets where another
1523
- // tool already owns the slot; the universal surface is MCP _meta.
1521
+ // - Claude statusline migration: remove only the exact old GDH-managed
1522
+ // statusLine entry and never create a new one. Claude supports one
1523
+ // statusLine command; project-level GDH ownership can shadow a user's
1524
+ // global statusline. SessionStart, MCP _meta, and CLI banner remain the
1525
+ // non-destructive update surfaces.
1524
1526
  //
1525
1527
  // Synchronous read via fsSync is intentional: planClaudeInstallActions is
1526
1528
  // called without `await`, and making it async would ripple to every sibling
@@ -1545,10 +1547,10 @@ function planClaudeInstallActions(targetPath, adapter, pinnedVersion) {
1545
1547
  state: settingsIsUnchanged ? "unchanged" : "planned",
1546
1548
  mode: settingsIsUnchanged ? "unchanged" : settingsExistedOnDisk ? "replace" : "create",
1547
1549
  summary: settingsIsUnchanged
1548
- ? "GDH SessionStart hook, authoring guard hooks, and statusline already registered in .claude/settings.json."
1550
+ ? "GDH SessionStart hook and authoring guard hooks already registered in .claude/settings.json; statusline ownership preserved."
1549
1551
  : settingsExistedOnDisk
1550
- ? "Register the GDH SessionStart hook, authoring guard hooks, and statusline (write-if-absent) in .claude/settings.json while preserving sibling content (patch-merge)."
1551
- : "Create .claude/settings.json with the GDH SessionStart hook, authoring guard hooks, and statusline registration.",
1552
+ ? "Register the GDH SessionStart hook and authoring guard hooks in .claude/settings.json while preserving sibling content and removing any exact old GDH-managed statusline."
1553
+ : "Create .claude/settings.json with the GDH SessionStart hook and authoring guard hooks.",
1552
1554
  content: patchedSettings,
1553
1555
  }));
1554
1556
  actions.push(...planLegacyClaudeCommandCleanupActions(targetPath));