From a12f993010de534befa52c0147f092819d4a45bd Mon Sep 17 00:00:00 2001 From: Dejel Cyrus De Asis <38832544+dejely@users.noreply.github.com> Date: Tue, 3 Feb 2026 12:16:31 +0800 Subject: [PATCH 1/5] fix(gaurd): fix validation check --- src/index.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/index.ts b/src/index.ts index ed08910c..40a70a7d 100644 --- a/src/index.ts +++ b/src/index.ts @@ -57,7 +57,8 @@ function validateRequiredEnv(env: MoltbotEnv): string[] { const missing: string[] = []; const isTestMode = env.DEV_MODE === 'true' || env.E2E_TEST_MODE === 'true'; - if (!env.MOLTBOT_GATEWAY_TOKEN) { + // Environment aware validation check + if (!env.DEV_MODE && !env.MOLTBOT_GATEWAY_TOKEN) { missing.push('MOLTBOT_GATEWAY_TOKEN'); } From b15be1d0be4a6f637b54d7c5d44f3c5a4b8cd502 Mon Sep 17 00:00:00 2001 From: Dejel Cyrus De Asis <38832544+dejely@users.noreply.github.com> Date: Tue, 3 Feb 2026 12:23:59 +0800 Subject: [PATCH 2/5] fix: Allow insecure auth flow / device pair --- src/gateway/env.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/gateway/env.ts b/src/gateway/env.ts index a57e781b..ac90a8fb 100644 --- a/src/gateway/env.ts +++ b/src/gateway/env.ts @@ -44,7 +44,10 @@ export function buildEnvVars(env: MoltbotEnv): Record { envVars.ANTHROPIC_BASE_URL = env.ANTHROPIC_BASE_URL; } // Map MOLTBOT_GATEWAY_TOKEN to CLAWDBOT_GATEWAY_TOKEN (container expects this name) - if (env.MOLTBOT_GATEWAY_TOKEN) envVars.CLAWDBOT_GATEWAY_TOKEN = env.MOLTBOT_GATEWAY_TOKEN; + // Skip in DEV_MODE so local dev uses device pairing / insecure auth flow. + if (env.MOLTBOT_GATEWAY_TOKEN && env.DEV_MODE !== 'true') { + envVars.CLAWDBOT_GATEWAY_TOKEN = env.MOLTBOT_GATEWAY_TOKEN; + } if (env.DEV_MODE) envVars.CLAWDBOT_DEV_MODE = env.DEV_MODE; // Pass DEV_MODE as CLAWDBOT_DEV_MODE to container if (env.CLAWDBOT_BIND_MODE) envVars.CLAWDBOT_BIND_MODE = env.CLAWDBOT_BIND_MODE; if (env.TELEGRAM_BOT_TOKEN) envVars.TELEGRAM_BOT_TOKEN = env.TELEGRAM_BOT_TOKEN; From 7cfa5291e7033cbadfbf0f1febe9198caa8834ec Mon Sep 17 00:00:00 2001 From: Dejel Cyrus De Asis <38832544+dejely@users.noreply.github.com> Date: Tue, 3 Feb 2026 12:24:38 +0800 Subject: [PATCH 3/5] test: Add DEV_MODE test --- src/gateway/env.test.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/gateway/env.test.ts b/src/gateway/env.test.ts index 29f033db..cfe40b27 100644 --- a/src/gateway/env.test.ts +++ b/src/gateway/env.test.ts @@ -91,6 +91,12 @@ describe('buildEnvVars', () => { expect(result.CLAWDBOT_GATEWAY_TOKEN).toBe('my-token'); }); + it('skips gateway token when DEV_MODE is true', () => { + const env = createMockEnv({ DEV_MODE: 'true', MOLTBOT_GATEWAY_TOKEN: 'my-token' }); + const result = buildEnvVars(env); + expect(result.CLAWDBOT_GATEWAY_TOKEN).toBeUndefined(); + }); + it('includes all channel tokens when set', () => { const env = createMockEnv({ TELEGRAM_BOT_TOKEN: 'tg-token', From 8b172a8bd61012590ab906845c19abb7a3e151f6 Mon Sep 17 00:00:00 2001 From: Dejel Cyrus De Asis <38832544+dejely@users.noreply.github.com> Date: Tue, 3 Feb 2026 12:26:16 +0800 Subject: [PATCH 4/5] test: add e2e test when true --- src/gateway/env.test.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/gateway/env.test.ts b/src/gateway/env.test.ts index cfe40b27..ae3f2c4b 100644 --- a/src/gateway/env.test.ts +++ b/src/gateway/env.test.ts @@ -97,6 +97,12 @@ describe('buildEnvVars', () => { expect(result.CLAWDBOT_GATEWAY_TOKEN).toBeUndefined(); }); + it('skips gateway token when E2E_TEST_MODE is true', () => { + const env = createMockEnv({ E2E_TEST_MODE: 'true', MOLTBOT_GATEWAY_TOKEN: 'my-token' }); + const result = buildEnvVars(env); + expect(result.CLAWDBOT_GATEWAY_TOKEN).toBeUndefined(); + }); + it('includes all channel tokens when set', () => { const env = createMockEnv({ TELEGRAM_BOT_TOKEN: 'tg-token', From 2fd117daa9948430c1a3ab58d36eb3242c63d86a Mon Sep 17 00:00:00 2001 From: Dejel Cyrus De Asis <38832544+dejely@users.noreply.github.com> Date: Tue, 3 Feb 2026 12:26:42 +0800 Subject: [PATCH 5/5] fix: also skip when E2E = true --- src/gateway/env.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gateway/env.ts b/src/gateway/env.ts index ac90a8fb..3206e433 100644 --- a/src/gateway/env.ts +++ b/src/gateway/env.ts @@ -45,7 +45,7 @@ export function buildEnvVars(env: MoltbotEnv): Record { } // Map MOLTBOT_GATEWAY_TOKEN to CLAWDBOT_GATEWAY_TOKEN (container expects this name) // Skip in DEV_MODE so local dev uses device pairing / insecure auth flow. - if (env.MOLTBOT_GATEWAY_TOKEN && env.DEV_MODE !== 'true') { + if (env.MOLTBOT_GATEWAY_TOKEN && env.DEV_MODE !== 'true' && env.E2E_TEST_MODE !== 'true') { envVars.CLAWDBOT_GATEWAY_TOKEN = env.MOLTBOT_GATEWAY_TOKEN; } if (env.DEV_MODE) envVars.CLAWDBOT_DEV_MODE = env.DEV_MODE; // Pass DEV_MODE as CLAWDBOT_DEV_MODE to container