Files
msd-core/get-shit-done/bin/lib/package-identity.cjs
Tom Boucher 91f5bd7cb1 feat(#607): rebuild get-shit-done-cc → gsd-core migration (per-package cache + installer auto-cleanup + --dry-run) (#611)
* feat(#607): rebuild get-shit-done-cc → gsd-core migration

Leftover get-shit-done-cc installs poisoned the shared update cache,
causing a permanent false "update available". Rebuild the migration so a
stale old install is both harmless and actively removed.

- Per-package update cache filename (gsd-update-check-<slug>.json) in the
  shared ~/.cache/gsd dir, single-sourced via package-identity; writers
  stamp package_name and readers reject foreign/absent lineage. Multi-
  runtime visibility preserved (same shared dir + filename across runtimes).
- New get-shit-done/bin/lib/legacy-cleanup.cjs seam: detects code-file
  references to the old package + the legacy fixed-name cache across home
  runtime dirs; installer auto-cleans on every install; --dry-run previews
  and mutates nothing. User hooks and dev-preferences are never touched.
- update.md cache-clear globs gsd-update-check*.json across ALL supported
  runtimes (adds cursor/windsurf/augment/trae/qwen/hermes/codebuddy/cline).
- Fix worker MODULE_NOT_FOUND post-install (ship managed-hooks-registry.cjs
  + degrade gracefully) so the per-package cache is always written.
- Diataxis how-to: docs/cleanup-get-shit-done-cc.md.

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

* chore(#607): add changeset for PR #611

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

* fix(#607): set USERPROFILE alongside HOME in dry-run install test for Windows

os.homedir() reads USERPROFILE on win32, so HOME-only isolation let the
spawned installer scan the real runner home on windows-latest. Set both.

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

---------

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-02 12:19:57 -04:00

36 lines
1.3 KiB
JavaScript

// @generated by scripts/generate-package-identity.cjs from package.json — DO NOT EDIT.
// Single source for GSD package coordinates (issue #498). Regenerate with:
// node scripts/generate-package-identity.cjs
'use strict';
const packageName = "@opengsd/gsd-core";
const binName = "gsd-core";
const repoSlug = "open-gsd/gsd-core";
const repoUrl = "https://github.com/open-gsd/gsd-core";
const changelogRawUrl = "https://raw.githubusercontent.com/open-gsd/gsd-core/main/CHANGELOG.md";
const cacheSlug = "opengsd-gsd-core";
const updateCacheFileName = "gsd-update-check-opengsd-gsd-core.json";
function formatManualInstall({ packageName, binName, scope, runtime } = {}) {
const runtimeFlag = runtime ? ` --${runtime}` : '';
return `npx -y --package=${packageName}@latest -- ${binName}${runtimeFlag} --${scope}`;
}
function manualInstallCommand(opts = {}) {
return formatManualInstall({ packageName, binName, scope: opts.scope, runtime: opts.runtime });
}
module.exports = Object.freeze({
packageName,
// PACKAGE_NAME: back-compat alias for #516-era consumers. Baked here, so it
// survives the installed tree's synthetic package.json (fixes the #378 undefined).
PACKAGE_NAME: packageName,
binName,
repoSlug,
repoUrl,
changelogRawUrl,
cacheSlug,
updateCacheFileName,
manualInstallCommand,
});