Component
Scripts (scripts/plugins/Sync-PluginManifest.ps1)
Bug Description
Sync-PluginManifest.ps1 compares plugin.json with the derived manifest using -ne (line 829) and the component lists with -notin (lines 462-463). Both ignore case, so after a component file is renamed to a different case, plugin.json keeps the old path. -Check reports it in sync and sync leaves it alone, though that path no longer exists on a case-sensitive file system.
Expected Behavior
-Check reports a path that differs only in case as drift, and npm run plugin:sync rewrites it to the tracked casing.
Steps to Reproduce
- Commit
.github/agents/pkg/Code-Review.agent.md in a plugin, run npm run plugin:sync, and commit plugin.json.
git mv the file to code-review.agent.md and commit.
Sync-PluginManifest.ps1 -Check prints Plugin manifest and catalog are in sync and exits 0; sync prints plugin.json is already current.
Component
Scripts (
scripts/plugins/Sync-PluginManifest.ps1)Bug Description
Sync-PluginManifest.ps1comparesplugin.jsonwith the derived manifest using-ne(line 829) and the component lists with-notin(lines 462-463). Both ignore case, so after a component file is renamed to a different case,plugin.jsonkeeps the old path.-Checkreports it in sync and sync leaves it alone, though that path no longer exists on a case-sensitive file system.Expected Behavior
-Checkreports a path that differs only in case as drift, andnpm run plugin:syncrewrites it to the tracked casing.Steps to Reproduce
.github/agents/pkg/Code-Review.agent.mdin a plugin, runnpm run plugin:sync, and commitplugin.json.git mvthe file tocode-review.agent.mdand commit.Sync-PluginManifest.ps1 -CheckprintsPlugin manifest and catalog are in syncand exits 0; sync printsplugin.json is already current.