fix: require provider remote upgrade

This commit is contained in:
Codex
2026-05-05 01:49:05 +00:00
parent f6d0bd1e3b
commit eb6df3ba92
11 changed files with 16 additions and 31 deletions
+1 -13
View File
@@ -30,7 +30,6 @@ interface RuntimeConfig {
reconnectMaxMs: number;
dockerSocketPath: string;
monitorDiskPath: string;
upgradeEnabled: boolean;
upgradeHostProjectRoot: string;
upgradeWorkspacePath: string;
upgradeComposeFile: string;
@@ -105,13 +104,6 @@ function readOptionalNumberEnv(name: string): number | null {
return parsed;
}
function readBooleanEnv(name: string): boolean {
const raw = requiredEnv(name);
if (raw === "true") return true;
if (raw === "false") return false;
throw new Error(`Environment variable ${name} must be true or false, got ${raw}`);
}
function readConfig(): RuntimeConfig {
return {
serverUrl: requiredEnv("PROVIDER_SERVER_URL"),
@@ -124,7 +116,6 @@ function readConfig(): RuntimeConfig {
reconnectMaxMs: readNumberEnv("RECONNECT_MAX_MS"),
dockerSocketPath: requiredEnv("DOCKER_SOCKET_PATH"),
monitorDiskPath: requiredEnv("MONITOR_DISK_PATH"),
upgradeEnabled: readBooleanEnv("PROVIDER_UPGRADE_ENABLED"),
upgradeHostProjectRoot: requiredEnv("PROVIDER_UPGRADE_HOST_PROJECT_ROOT"),
upgradeWorkspacePath: requiredEnv("PROVIDER_UPGRADE_WORKSPACE_PATH"),
upgradeComposeFile: requiredEnv("PROVIDER_UPGRADE_COMPOSE_FILE"),
@@ -873,7 +864,7 @@ function upgradePlan(taskId: string): Record<string, JsonValue> {
script,
];
return {
enabled: config.upgradeEnabled,
policy: "always-enabled",
taskId,
updaterName,
runnerImage: config.upgradeRunnerImage,
@@ -894,9 +885,6 @@ async function runProviderUpgrade(taskId: string, payload: Record<string, JsonVa
const mode = payload.mode === "schedule" ? "schedule" : "plan";
const plan = upgradePlan(taskId);
if (mode === "plan") return { mode, message: "provider gateway upgrade plan generated; no container changed", plan };
if (!config.upgradeEnabled) {
throw new Error("provider gateway remote upgrade is disabled by PROVIDER_UPGRADE_ENABLED=false");
}
const dockerRunCommand = (plan.dockerRunCommand as JsonValue[]).map((item) => String(item));
const result = await runDockerCommand(dockerRunCommand.slice(1), 12_000);
if (!result.ok) {