test(#1477): exclude .gsd-source from golden parity manifest

The claude-global install now provisions .gsd-source (#1477), whose content
is the install-time absolute path to the package commands/gsd source tree.
That path is the checkout/CI workspace root, not the temp HOME, so it is never
normalized to <HOME> and its hash varies by environment. Exclude it from the
parity manifest as a volatile metadata file, same rationale as
gsd-install-state.json.
This commit is contained in:
Joe Slitzker
2026-06-26 17:07:36 -05:00
parent 165e98b972
commit 48507e927b

View File

@@ -11,10 +11,11 @@
*
* After replacing every occurrence of the temp root path with the literal
* '<HOME>' in file contents, the install output is byte-identical run-to-run
* for ALL files EXCEPT exactly two volatile metadata files that are EXCLUDED
* for ALL files EXCEPT the volatile metadata files that are EXCLUDED
* from the parity manifest:
* - gsd-file-manifest.json (timestamp + install-time absolute paths)
* - gsd-install-state.json (install-time absolute paths)
* - .gsd-source (#1477, claude-global: install-time source path)
*
* Everything else (≈545–616 files per runtime) is deterministic.
*
@@ -48,7 +49,11 @@ const UPDATE = process.env.UPDATE_GOLDEN === '1';
const FIXTURE_DIR = path.join(__dirname, 'fixtures', 'golden-install-parity');
// Volatile metadata files always excluded from the parity manifest.
const VOLATILE_FILES = new Set(['gsd-file-manifest.json', 'gsd-install-state.json']);
// .gsd-source (#1477, claude-global only) records the install-time absolute path
// to the package's commands/gsd source tree, which is the checkout/CI workspace
// path — NOT the temp HOME root, so it is never normalized to '<HOME>' and its
// hash varies by environment. Excluded for the same reason as gsd-install-state.json.
const VOLATILE_FILES = new Set(['gsd-file-manifest.json', 'gsd-install-state.json', '.gsd-source']);
// Hook-registration config files excluded from the parity manifest. These are
// written by the hook/permission install path (applySettingsJsonHooks /