Files
msd-core/tests/bug-505-remove-dead-sdk-verification.test.cjs
Tom Boucher 0fbe1d899e chore(#191): retire the gsd-sdk shim — route everything at gsd-tools (#522)
* chore(#191): migrate gsd-sdk query call sites to gsd-tools query

Retiring the gsd-sdk shim. gsd-tools.cjs already accepts `query` as a
meta-prefix (gsd-tools query <command>), so this is a behavior-preserving 1:1
swap across the runtime reference prompts, the graphify hook's commit-detection
gate, and two bin/lib comment/message references.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* chore(#191): remove vestigial gsd-sdk shim code from installer + projection

The gsd-sdk shim was already not wired up (no gsd-sdk bin in package.json;
buildWindowsShimTriple had zero call sites). Remove the dead code:
- shell-command-projection.cjs: buildWindowsShimTriple + formatSdkPathDiagnostic
  (+ their now-unused PACKAGE_NAME import) and exports
- install.js: the re-export wrappers + imports, the #3406 stale-standalone-sdk
  detection (detectStaleStandaloneSdk/formatStaleStandaloneSdkWarning + its
  global-install call site), and the exports

Preserved (retained, not gsd-sdk): buildCodexHookWindowsShimIR (#3426) — only
its comments referenced the gsd-sdk pattern; reworded. Also kept the
homePathCoveredByRc 'reopen your shell' branch in maybeSuggestPathExport — its
logic is bin-dir-agnostic, only the message mentioned gsd-sdk; reworded to use
the actual bin dir.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* test(#191): update tests for retired gsd-sdk shim

- bug-3441/bug-3442: drop the formatSdkPathDiagnostic / buildWindowsShimTriple
  assertions (functions removed); retained PATH-action + drift-guard tests stay
- bug-505: remove the 'still exported' assertions for detectStaleStandaloneSdk /
  formatStaleStandaloneSdkWarning / the shim contract surface (#505 kept them;
  #191 removes them)
- graphify-auto-update: migrate the hook-dispatch inputs gsd-sdk query commit ->
  gsd-tools query commit to match the migrated commit hook

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* docs(#191): point active docs at gsd-tools query (gsd-sdk shim retired)

Update the user/agent-facing docs (AGENTS, COMMANDS, CONFIGURATION, USER-GUIDE,
ship-pr-body-sections) that presented gsd-sdk query as a current command to
gsd-tools query. Historical docs (ADRs, PRDs, release notes) left untouched.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* docs(#191): correct state.load vs state.json description for gsd-tools query

Adversarial-review (codex) finding: the migrated USER-GUIDE line claimed both
'gsd-tools query state.json' and 'state.load' resolve to the frontmatter-rebuild
handler. Verified they don't — state.load returns the CJS load shape
(config + state_raw + flags), state.json returns the frontmatter shape. Both are
available via gsd-tools query; corrected the text to say so.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* chore(#191): add changeset for gsd-sdk shim retirement

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-30 19:19:14 -04:00

64 lines
2.3 KiB
JavaScript

/**
* Regression guard for #505: dead SDK-shim verification subsystem removed.
*
* Post-ADR-0174 the `@opengsd/gsd-sdk` package was retired; `sdk/` no longer
* ships. `installSdkIfNeeded` and all functions it transitively called are
* dead code with no live callers. This test asserts:
*
* 1. All removed symbols are NO LONGER exported from bin/install.js.
* 2. The two live stale-standalone-SDK helpers (detectStaleStandaloneSdk,
* formatStaleStandaloneSdkWarning) are STILL exported as functions — they
* handle a real user-facing condition (#3406) and MUST NOT be removed.
*/
'use strict';
process.env.GSD_TEST_MODE = '1';
const { describe, test } = require('node:test');
const assert = require('node:assert/strict');
const inst = require('../bin/install.js');
describe('bug #505: dead SDK verification subsystem removed from bin/install.js', () => {
// ----------------------------------------------------------------
// Dead symbols — must NOT be exported after removal
// ----------------------------------------------------------------
const deadSymbols = [
'installSdkIfNeeded',
'classifySdkInstall',
'buildSdkFailFastReport',
'renderSdkFailFastReport',
'buildGsdSdkVersionMismatchReport',
'renderGsdSdkVersionMismatchReport',
'readGsdSdkVersion',
'parseGsdSdkVersion',
'findGsdSdkOnPath',
'isGsdSdkOnPath',
'isLegacyGsdSdkShim',
'trySelfLinkGsdSdk',
'trySelfLinkGsdSdkWindows',
'filterNpxFromPath',
'getUserShellPath',
'getUserShellWindowsPersistentPath',
];
for (const sym of deadSymbols) {
test(`dead symbol '${sym}' is not exported`, () => {
assert.equal(
typeof inst[sym],
'undefined',
`'${sym}' should have been removed (post #505 dead-code removal) but is still exported as ${typeof inst[sym]}`,
);
});
}
// ----------------------------------------------------------------
// The stale-standalone-SDK helpers (detectStaleStandaloneSdk,
// formatStaleStandaloneSdkWarning) and the gsd-sdk shim contract surface
// (buildWindowsShimTriple, formatSdkPathDiagnostic) that #505 kept were
// removed when the gsd-sdk shim itself was retired (#191). Their absence is
// covered by the dead-symbol assertions above.
// ----------------------------------------------------------------
});