INNER CODE UNIT · TypeScript
port
lidge-jun/opencodex · src/cli/index.ts:890
const port = (await waitForProxy(ENSURE_READY_TIMEOUT_MS, ensureKeepWaiting(spawnedAt, () => childExited)))?.port;
if (!port) {
console.error("❌ Proxy did not become healthy after starting.");
process.exitCode = 1;
return false;
}
// Deterministic fence guarantee when the durable switch is ON: the spawned child
// injects late in its own startup, but this parent returns as soon as /healthz
// responds — align here too so `ocx ensure` never returns with a stale ON/OFF mismatch.
// Persisted state is loaded inside each mutation after waitForProxy, so a
// toggle while the child starts wins over the pre-spawn snapshot.
if (siblingOfLivePort() === null) await reconcileEnsureDesiredIntegrations(port, { kind: "spawned" });
// Always sync the LIVE port: after a fallback-port start, config.port still names the
// busy preferred port — syncing that would point Codex at a dead listener.
const synced = await syncModelsToCodex(port).catch(e => {
console.error(`⚠️ Model sync skipped: ${e instanceof Error ? e.message : String(e)}`);
return null;
});