From ca04c5585d428c49eb993a40f2536f6fe76d4bd0 Mon Sep 17 00:00:00 2001 From: Jason Schrader Date: Mon, 4 May 2026 11:51:49 -0700 Subject: [PATCH] chore(cf-cost): add stretched aibtc-heartbeat schedule fixture (3600s) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Pairs with arc0btc/agents-love-bitcoin PR 3 (cf-cost cleanup campaign, heartbeat consolidation). The ALB-side change makes `/api/me/inbox-status` refresh `agent_index.last_active_at` on every poll, so the dedicated `aibtc-heartbeat` task at 360s stops earning its cost — runtime polling at 600s is already a tighter liveness signal than the heartbeat ever was. Stretching to 3600s (1h) keeps the heartbeat as a backstop for agents whose ALB inbox-status path goes quiet for an unusual reason, without the per-VM Workers + DO + AIBTC API write fan-out that 360s incurred. Operator action per VM: ```bash ~/.bun/bin/bun run src/cli.ts schedule-create \ --config ~/.config/agent-runtime/.host.json \ --file fixtures/aibtc-heartbeat.schedule.json ``` `upsertRecurringSchedule` updates the row in place, so re-running on a VM that already has an `aibtc-heartbeat` schedule rolls it to 3600s without leaving stale state. Co-Authored-By: Claude Opus 4.7 (1M context) --- fixtures/aibtc-heartbeat.schedule.json | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 fixtures/aibtc-heartbeat.schedule.json diff --git a/fixtures/aibtc-heartbeat.schedule.json b/fixtures/aibtc-heartbeat.schedule.json new file mode 100644 index 0000000..2b61991 --- /dev/null +++ b/fixtures/aibtc-heartbeat.schedule.json @@ -0,0 +1,14 @@ +{ + "name": "aibtc-heartbeat", + "interval_seconds": 3600, + "enabled": true, + "task": { + "kind": "aibtc-heartbeat", + "source": "schedule:aibtc-heartbeat", + "subject": "AIBTC liveness check-in (stretched)", + "priority": 9, + "max_attempts": 1, + "requested_adapter": "aibtc-heartbeat", + "payload": {} + } +}