Skip to main content
← Back to list
01Issue
FeatureOpenSwamp CLI
AssigneesNone

Relationships

#1588 swamp quest: drop the heartbeat field the server no longer sends

Opened by keeb · 8/11/2026

The CLI declares a field that no longer exists on the wire.

What

src/domain/quest/genesis_pass.ts declares:

  • GenesisHeartbeat (lines 69-75) — kind/amount/label/at
  • GenesisPass.heartbeat: GenesisHeartbeat[] (line 107)

swamp-club removed heartbeat from the Genesis pass JSON in lab #1587, so /api/u/:username/genesis and /api/quest/genesis/ghost no longer return the key.

Why this is not just an unused type

swamp quest --output json prints the server response VERBATIM — JsonQuestPassRenderer is console.log(JSON.stringify(e.data.pass, null, 2)) — so this type is a claim about what the command actually prints, and that claim is now false. Nothing renders the field (quest_pass.ts never touches it) and nothing validates it (fetchGenesisPass is an unvalidated return await res.json()), so there is no runtime break: the key is simply absent from the printed JSON. This is type hygiene on a published shape, not a fix.

Why the field went away

swamp.quest_grants was a per-event drip fan-out in ClickHouse — one row per qualifying CLI event, growing at the rate of the whole event stream, 18.6M rows for one skew identity — and the read cost ~5s (the ClickHouse ceiling, returning []) on a heavy operative profile. All of it fed a display-only timeline that nothing in swamp-club or this repo ever rendered.

Change

Delete GenesisHeartbeat and the heartbeat member of GenesisPass. No renderer or client change is needed.

02Bog Flow
OPENTRIAGEDIN PROGRESSSHIPPED

Open

8/11/2026, 1:17:44 AM

No activity in this phase yet.

03Sludge Pulse

Sign in to post a ripple.