From eea7ca62a8f83f5865fd8e54e69be18c024fbfc5 Mon Sep 17 00:00:00 2001 From: William Valentin Date: Wed, 11 Feb 2026 08:43:48 -0800 Subject: [PATCH] chore: increase GmailWatcher default poll interval from 60s to 300s --- src/automation/gmail.test.ts | 2 +- src/automation/gmail.ts | 4 ++-- src/config/schema.ts | 2 +- src/gateway/handlers/handlers.test.ts | 2 +- src/tools/builtin/gmail.test.ts | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/automation/gmail.test.ts b/src/automation/gmail.test.ts index 70ce55d..25e2e87 100644 --- a/src/automation/gmail.test.ts +++ b/src/automation/gmail.test.ts @@ -109,7 +109,7 @@ function createMockConfig(overrides = {}) { credentials_file: '~/.config/flynn/gmail-credentials.json', token_file: '~/.config/flynn/gmail-token.json', watch_labels: ['INBOX'], - poll_interval: '60s', + poll_interval: '300s', output: { channel: 'telegram', peer: '12345', diff --git a/src/automation/gmail.ts b/src/automation/gmail.ts index 907ba4d..ba2a6ef 100644 --- a/src/automation/gmail.ts +++ b/src/automation/gmail.ts @@ -90,7 +90,7 @@ export class GmailWatcher implements ChannelAdapter { } // Start polling fallback - const pollMs = parseInterval(this.config.poll_interval ?? '60s'); + const pollMs = parseInterval(this.config.poll_interval ?? '300s'); this.pollTimer = setInterval(() => { this.pollForNewMessages().catch((err) => { console.error('GmailWatcher: Poll error —', err instanceof Error ? err.message : err); @@ -98,7 +98,7 @@ export class GmailWatcher implements ChannelAdapter { }, pollMs); this._status = 'connected'; - console.log(`GmailWatcher: Connected (poll_interval=${this.config.poll_interval ?? '60s'})`); + console.log(`GmailWatcher: Connected (poll_interval=${this.config.poll_interval ?? '300s'})`); } async disconnect(): Promise { diff --git a/src/config/schema.ts b/src/config/schema.ts index c12cfda..052aa56 100644 --- a/src/config/schema.ts +++ b/src/config/schema.ts @@ -152,7 +152,7 @@ const gmailSchema = z.object({ credentials_file: z.string().optional(), token_file: z.string().default('~/.config/flynn/gmail-token.json'), watch_labels: z.array(z.string()).default(['INBOX']), - poll_interval: z.string().default('60s'), + poll_interval: z.string().default('300s'), history_start: z.string().optional(), // ISO date string — only process emails after this date output: z.object({ channel: z.string().min(1), diff --git a/src/gateway/handlers/handlers.test.ts b/src/gateway/handlers/handlers.test.ts index 92fc20a..93685fc 100644 --- a/src/gateway/handlers/handlers.test.ts +++ b/src/gateway/handlers/handlers.test.ts @@ -584,7 +584,7 @@ describe('redactConfig – comprehensive credential redaction', () => { { name: 'gitlab', secret: 'wh-secret-2', message: '{{body}}', output: { channel: 'telegram', peer: '456' }, enabled: true }, { name: 'no-secret', message: '{{body}}', output: { channel: 'telegram', peer: '789' }, enabled: true }, ], - gmail: { enabled: true, credentials_file: '/path/to/creds.json', token_file: '/path/to/token.json', watch_labels: ['INBOX'], poll_interval: '60s', output: { channel: 'telegram', peer: '123' }, message: 'new email' }, + gmail: { enabled: true, credentials_file: '/path/to/creds.json', token_file: '/path/to/token.json', watch_labels: ['INBOX'], poll_interval: '300s', output: { channel: 'telegram', peer: '123' }, message: 'new email' }, heartbeat: { enabled: false, interval: '5m', checks: ['gateway'], failure_threshold: 2, disk_threshold_mb: 100 }, }, mcp: { diff --git a/src/tools/builtin/gmail.test.ts b/src/tools/builtin/gmail.test.ts index 51046dc..68aa2b6 100644 --- a/src/tools/builtin/gmail.test.ts +++ b/src/tools/builtin/gmail.test.ts @@ -45,7 +45,7 @@ const testConfig: NonNullable = { credentials_file: '/tmp/test-creds.json', token_file: '/tmp/test-token.json', watch_labels: ['INBOX'], - poll_interval: '60s', + poll_interval: '300s', output: { channel: 'discord', peer: '123' }, message: '{{from}}: {{subject}}', };