Revert "fix: respect OPENCLAW_HOME for isolated gateway instances"

This reverts commit 34b18ea9db.
This commit is contained in:
Gustavo Madeira Santana
2026-02-16 20:35:55 -05:00
parent 014a46d3fc
commit 7b172d61cd
2 changed files with 7 additions and 36 deletions

View File

@@ -3,7 +3,7 @@ import path from "node:path";
import type { Command } from "commander";
import type { GatewayAuthMode } from "../../config/config.js";
import {
getConfigPath,
CONFIG_PATH,
loadConfig,
readConfigFileSnapshot,
resolveStateDir,
@@ -161,7 +161,7 @@ async function runGatewayCommand(opts: GatewayRunOpts) {
const tokenRaw = toOptionString(opts.token);
const snapshot = await readConfigFileSnapshot().catch(() => null);
const configExists = snapshot?.exists ?? fs.existsSync(getConfigPath());
const configExists = snapshot?.exists ?? fs.existsSync(CONFIG_PATH);
const configAuditPath = path.join(resolveStateDir(process.env), "logs", "config-audit.jsonl");
const mode = cfg.gateway?.mode;
if (!opts.allowUnconfigured && mode !== "local") {

View File

@@ -182,21 +182,8 @@ export function resolveConfigPath(
return path.join(stateDir, CONFIG_FILENAME);
}
/**
* @deprecated Use resolveConfigPathCandidate() instead. This constant is evaluated
* at module load time and does not respect OPENCLAW_HOME set after import.
* Kept for backwards compatibility but should be avoided in new code.
*/
export const CONFIG_PATH = resolveConfigPathCandidate();
/**
* Runtime-evaluated config path that respects OPENCLAW_HOME.
* Use this instead of CONFIG_PATH when OPENCLAW_HOME may be set dynamically.
*/
export function getConfigPath(env: NodeJS.ProcessEnv = process.env): string {
return resolveConfigPathCandidate(env, envHomedir(env));
}
/**
* Resolve default config path candidates across default locations.
* Order: explicit config path → state-dir-derived paths → new default.
@@ -271,22 +258,6 @@ export function resolveGatewayPort(
cfg?: OpenClawConfig,
env: NodeJS.ProcessEnv = process.env,
): number {
// When OPENCLAW_HOME is set (isolated instance), prefer config over inherited env vars.
// This prevents a parent gateway's OPENCLAW_GATEWAY_PORT from bleeding through.
const isIsolatedInstance = Boolean(env.OPENCLAW_HOME?.trim());
// Config port takes precedence for isolated instances
const configPort = cfg?.gateway?.port;
if (
isIsolatedInstance &&
typeof configPort === "number" &&
Number.isFinite(configPort) &&
configPort > 0
) {
return configPort;
}
// Check env vars (for non-isolated or when config doesn't specify port)
const envRaw = env.OPENCLAW_GATEWAY_PORT?.trim() || env.CLAWDBOT_GATEWAY_PORT?.trim();
if (envRaw) {
const parsed = Number.parseInt(envRaw, 10);
@@ -294,11 +265,11 @@ export function resolveGatewayPort(
return parsed;
}
}
// Fall back to config for non-isolated instances
if (typeof configPort === "number" && Number.isFinite(configPort) && configPort > 0) {
return configPort;
const configPort = cfg?.gateway?.port;
if (typeof configPort === "number" && Number.isFinite(configPort)) {
if (configPort > 0) {
return configPort;
}
}
return DEFAULT_GATEWAY_PORT;
}