mirror of
https://github.com/jhd3197/ServerKit.git
synced 2026-10-30 08:36:55 +09:00
scripts/install.sh and scripts/install.ps1 are now VENDORED copies. The agent repo owns them; this repo carries a copy only because the panel serves them off its own disk at GET /api/v1/servers/install.sh|.ps1 and cannot link to another repository. Two copies of one file is what caused the second half of #101. When the agent moved out of this monorepo it took its installer with it, and from then on there were two -- actually four: the agent repo also carried a third, older pair under its own scripts/ that nothing referenced. Each looked fine in isolation, nothing ever compared them, and the panel went on serving one that downloaded from `agent-v*` tags which exist in no repository. Unit tests are structurally blind to this: they exercise whichever copy lives in their own repo and have no idea another exists. So: scripts/sync-agent-installers.sh re-vendors from the agent repo (a sibling checkout if present, else the published branch), normalising to LF so this repo's .gitattributes can apply its own EOL rule scripts/test/check-installer-drift.sh fails, with the diff and the fix, if a vendored copy differs from canonical (EOL-insensitive: *.ps1 is checked out CRLF here and LF there, which is not drift) The drift check runs nightly alongside the release-chain verification, since both need to reach GitHub. Both scripts run locally against a sibling checkout, so this works offline and before an agent change is published. Both installers carry a provenance header naming the canonical location, so anyone who opens the vendored copy to patch it is told where to patch instead. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>