diff --git a/apps/api/src/cutover-orchestrator.ts b/apps/api/src/cutover-orchestrator.ts index 361d462..1b55f97 100644 --- a/apps/api/src/cutover-orchestrator.ts +++ b/apps/api/src/cutover-orchestrator.ts @@ -21,7 +21,9 @@ import { PRODUCTION_CUTOVER_ACK } from './canary-runtime.js'; const STATE_VERSION = 1; const STATE_FILE = 'cutover-state.json'; const GATEWAY_ARGV = [ - resolve(process.cwd(), 'apps/api/node_modules/.bin/tsx'), + process.execPath, + '--import', + resolve(process.cwd(), 'node_modules/.pnpm/tsx@4.22.4/node_modules/tsx/dist/loader.mjs'), resolve(process.cwd(), 'apps/api/src/production-gateway-cli.ts'), ] as const; const DIGEST = /^[a-f0-9]{64}$/u; diff --git a/apps/api/src/production-gateway.test.ts b/apps/api/src/production-gateway.test.ts index 2aa82a7..7badb97 100644 --- a/apps/api/src/production-gateway.test.ts +++ b/apps/api/src/production-gateway.test.ts @@ -144,7 +144,9 @@ describe('cutover validation and reversible orchestration', () => { expect(signals).toEqual([41, 42]); expect(starts.map((start) => start.argv)).toEqual([ [ - resolve(process.cwd(), 'apps/api/node_modules/.bin/tsx'), + process.execPath, + '--import', + resolve(process.cwd(), 'node_modules/.pnpm/tsx@4.22.4/node_modules/tsx/dist/loader.mjs'), resolve(process.cwd(), 'apps/api/src/production-gateway-cli.ts'), ], ['/usr/bin/true', 'legacy'],