fix: re-pull the repo on every rebuild instead of reusing the stale clone
Some checks failed
CI / test (push) Has been cancelled

buildInstallation ran nixpacks against whatever was cloned at draft
creation time and never re-synced — every "rebuild" from the panel
silently rebuilt the same old commit forever, even after pushing new
commits. Confirmed repeatedly while iterating against a live repo
(had to git pull manually each time to actually pick up a fix).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-10-08 21:03:57 +02:00
parent 7b6e1b5855
commit f11a23fb00
2 changed files with 20 additions and 0 deletions

View File

@@ -69,6 +69,16 @@ export async function buildInstallation(id: string): Promise<Installation> {
if (!installation) throw new Error("installation not found");
updateInstallation(id, { status: "building", statusDetail: null });
// The clone on disk is otherwise only ever made once, at draft creation — without this,
// every "rebuild" silently reused that same stale checkout forever, never picking up new
// commits pushed to the repo afterwards.
try {
await cloneOrUpdateRepo(installation.slug, installation.repoUrl, installation.gitRef);
} catch (err) {
return updateInstallation(id, { status: "error", statusDetail: `git pull failed: ${(err as Error).message}` });
}
const imageTag = `mcpmgr/${installation.slug}:latest`;
const previousImageId = installation.imageTag ? await getImageId(installation.imageTag) : undefined;