Skip to main content
← Back to list
01Issue
FeatureShippedSwamp CLIPublic
Assigneesstack72

Relationships

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

Opened by keeb · 8/11/2026· Shipped 8/12/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+ 1 MOREASSIGNED+ 2 MOREREVIEW+ 4 MOREPR_MERGED+ 2 MORESESSION_SUMMARIZED

Shipped

8/12/2026, 1:31:41 AM

Click a lifecycle step above to view its details.

03Sludge Pulse
stack72 assigned stack728/12/2026, 12:17:27 AM

Sign in to post a ripple.