@therocketcode/gsd-core 1.7.3 → 1.7.4

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.
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "gsd-core",
3
3
  "displayName": "GSD Core",
4
- "version": "1.7.3",
4
+ "version": "1.7.4",
5
5
  "description": "GSD Core is a meta-prompting, context engineering, and spec-driven development system for AI coding agents.",
6
6
  "author": {
7
7
  "name": "TheRocketCodeMX",
package/bin/install.js CHANGED
@@ -10167,6 +10167,35 @@ function install(isGlobal, runtime = 'claude', options = {}) {
10167
10167
  }
10168
10168
  }
10169
10169
 
10170
+ // Ship the changelog-extract tooling the /gsd:update workflow's "What's New"
10171
+ // preview calls at <configDir>/gsd-core/scripts/changeset/cli.cjs. Upstream
10172
+ // referenced this path but never installed the files, so the preview always
10173
+ // silently degraded to "(Could not extract changelog)". The two cross-tree
10174
+ // requires in cli.cjs/github-release-notes.cjs resolve both layouts.
10175
+ const changesetPayload = [
10176
+ 'scripts/changeset/cli.cjs',
10177
+ 'scripts/changeset/parse.cjs',
10178
+ 'scripts/changeset/render.cjs',
10179
+ 'scripts/changeset/serialize.cjs',
10180
+ 'scripts/changeset/github-release-notes.cjs',
10181
+ 'scripts/lib/cli-exit.cjs',
10182
+ ];
10183
+ let changesetCopied = 0;
10184
+ for (const relPath of changesetPayload) {
10185
+ const csSrc = path.join(src, ...relPath.split('/'));
10186
+ const csDest = path.join(skillDest, ...relPath.split('/'));
10187
+ if (fs.existsSync(csSrc)) {
10188
+ fs.mkdirSync(path.dirname(csDest), { recursive: true });
10189
+ fs.copyFileSync(csSrc, csDest);
10190
+ changesetCopied++;
10191
+ } else {
10192
+ failures.push(`gsd-core/${relPath} (source missing)`);
10193
+ }
10194
+ }
10195
+ if (changesetCopied === changesetPayload.length) {
10196
+ console.log(` ${green}✓${reset} Installed gsd-core/scripts/changeset (update changelog preview)`);
10197
+ }
10198
+
10170
10199
  // Copy agents to agents directory.
10171
10200
  // Skipped under --minimal: gsd-* subagent descriptions are eagerly loaded
10172
10201
  // into the runtime's Agent tool schema, costing ~6k tokens per turn even
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gsd-core",
3
- "version": "1.7.3",
3
+ "version": "1.7.4",
4
4
  "description": "GSD Core — a meta-prompting, context engineering, and spec-driven development system for AI coding agents. Loads gsd's operating context into every Gemini CLI session.",
5
5
  "contextFileName": "GEMINI.md"
6
6
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@therocketcode/gsd-core",
3
- "version": "1.7.3",
3
+ "version": "1.7.4",
4
4
  "description": "GSD Core is a meta-prompting, context engineering, and spec-driven development system for AI coding agents.",
5
5
  "bin": {
6
6
  "gsd-core": "bin/install.js",
@@ -22,11 +22,23 @@ const { parseFragment } = require('./parse.cjs');
22
22
  const { renderChangelog } = require('./render.cjs');
23
23
  const { serializeChangelog, parseChangelog } = require('./serialize.cjs');
24
24
  const { renderGithubReleaseNotes } = require('./github-release-notes.cjs');
25
+
26
+ // Resolve gsd-core/bin/lib modules in BOTH layouts: in the repo this file lives
27
+ // at scripts/changeset/ NEXT TO gsd-core/; in an installed runtime config dir the
28
+ // installer ships it at gsd-core/scripts/changeset/ INSIDE gsd-core/ (so the
29
+ // /gsd:update workflow's changelog preview can run it — see #3496 follow-up).
30
+ function requireCoreLib(name) {
31
+ try {
32
+ return require(`../../gsd-core/bin/lib/${name}`); // repo layout
33
+ } catch {
34
+ return require(`../../bin/lib/${name}`); // installed runtime layout
35
+ }
36
+ }
25
37
  const {
26
38
  compareSemverCore,
27
39
  isStableTripletSemver,
28
- } = require('../../gsd-core/bin/lib/semver-compare.cjs');
29
- const { packageName, repoSlug: defaultRepoSlug } = require('../../gsd-core/bin/lib/package-identity.cjs');
40
+ } = requireCoreLib('semver-compare.cjs');
41
+ const { packageName, repoSlug: defaultRepoSlug } = requireCoreLib('package-identity.cjs');
30
42
 
31
43
  function parseArgs(argv) {
32
44
  const opts = {
@@ -4,7 +4,15 @@ const cp = require('node:child_process');
4
4
  const path = require('node:path');
5
5
 
6
6
  const { parseFragment } = require('./parse.cjs');
7
- const { packageName, repoSlug: defaultRepoSlug } = require('../../gsd-core/bin/lib/package-identity.cjs');
7
+ // Dual-layout resolve: repo (scripts/changeset/ next to gsd-core/) vs installed
8
+ // runtime (gsd-core/scripts/changeset/ inside gsd-core/). See cli.cjs.
9
+ let _identity;
10
+ try {
11
+ _identity = require('../../gsd-core/bin/lib/package-identity.cjs'); // repo layout
12
+ } catch {
13
+ _identity = require('../../bin/lib/package-identity.cjs'); // installed runtime layout
14
+ }
15
+ const { packageName, repoSlug: defaultRepoSlug } = _identity;
8
16
 
9
17
  const SECTION_ORDER = ['Fixed', 'Added', 'Changed', 'Deprecated', 'Removed', 'Security'];
10
18