From 7d5fcde10c8bebe32ffdc2b785ebc3128f69ee93 Mon Sep 17 00:00:00 2001 From: Madhura68 Date: Wed, 6 May 2026 08:03:14 +0200 Subject: [PATCH] chore(presence): heartbeat interval 5s -> 10s MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Verlaagt het schrijfvolume naar claude_workers met factor 2. CLAUDE.md noot toegevoegd dat de Scrum4Me NavBar-drempel (last_seen_at < now() - 15s) bij 10s interval krap is — daar kan 25-30s een veiliger marge zijn. Co-Authored-By: Claude Opus 4.7 (1M context) --- CLAUDE.md | 4 ++-- src/presence/heartbeat.ts | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index 7d53eb6..2fcf0ba 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -69,12 +69,12 @@ Run `cleanup_my_worktrees` (no arguments) to scan `~/.scrum4me-agent-worktrees/` ## Worker presence -Server-startup registers a `ClaudeWorker` record + starts a 5 s heartbeat; SIGTERM/SIGINT cleans it up. The Scrum4Me NavBar counts active workers via `last_seen_at < now() - 15s`. +Server-startup registers a `ClaudeWorker` record + starts a 10 s heartbeat; SIGTERM/SIGINT cleans it up. The Scrum4Me NavBar counts active workers via `last_seen_at < now() - 15s` — at 10 s interval one missed tick + jitter can flicker the indicator; bump that threshold in Scrum4Me to ≥ 25 s if needed. | File | Purpose | |---|---| | `src/presence/worker.ts` | `registerWorker` (upsert + pg_notify worker_connected) + `unregisterWorker` | -| `src/presence/heartbeat.ts` | `startHeartbeat` — 5 s interval, self-heals by re-registering when record disappears | +| `src/presence/heartbeat.ts` | `startHeartbeat` — 10 s interval, self-heals by re-registering when record disappears | | `src/presence/shutdown.ts` | `registerShutdownHandlers` — SIGTERM/SIGINT → stop heartbeat + unregister | | `src/index.ts` | Bootstrap: calls `getAuth` → `registerWorker` → `startHeartbeat` → `registerShutdownHandlers` | diff --git a/src/presence/heartbeat.ts b/src/presence/heartbeat.ts index abe7f74..f57cc99 100644 --- a/src/presence/heartbeat.ts +++ b/src/presence/heartbeat.ts @@ -26,7 +26,7 @@ export function startHeartbeat(opts: { } catch { // non-fatal — next tick retries } - }, opts.intervalMs ?? 5_000) + }, opts.intervalMs ?? 10_000) return { stop: () => clearInterval(timer) } }