fix: track hook files in manifest for local patch detection (#769)
Hook files (gsd-statusline.js, gsd-check-update.js, gsd-context-monitor.js) are installed during updates but were never included in gsd-file-manifest.json. This means saveLocalPatches() could not detect user modifications to hooks, causing them to be silently overwritten on update with no backup. Add hooks/gsd-*.js to writeManifest() so the existing local patch detection system automatically backs up modified hooks to gsd-local-patches/ before overwriting, matching the behavior already in place for workflows, commands, and agents. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -2314,6 +2314,18 @@ function writeManifest(configDir, runtime = 'claude') {
|
||||
}
|
||||
}
|
||||
}
|
||||
// Track hook files so saveLocalPatches() can detect user modifications
|
||||
// Hooks are only installed for runtimes that use settings.json (not Codex/Copilot)
|
||||
if (!isCodex && !isCopilot) {
|
||||
const hooksDir = path.join(configDir, 'hooks');
|
||||
if (fs.existsSync(hooksDir)) {
|
||||
for (const file of fs.readdirSync(hooksDir)) {
|
||||
if (file.startsWith('gsd-') && file.endsWith('.js')) {
|
||||
manifest.files['hooks/' + file] = fileHash(path.join(hooksDir, file));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fs.writeFileSync(path.join(configDir, MANIFEST_NAME), JSON.stringify(manifest, null, 2));
|
||||
return manifest;
|
||||
|
||||
Reference in New Issue
Block a user