The daily digest's Agent Health reports "1 drain, no orphaned pool releases" for a window that contained 11 drains, 7 of them orphaned — supervisor.log drain lines carry no timestamp, so they cannot be windowed #33
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
The 2026-09-21 digest (
gs-wisp-5xwj6, delivered 2026-09-22 04:40Z) says:Measured against
~/.gc/supervisor.logfor the same window (00:00Z 2026-09-21 → 00:00Z 2026-09-22, i.e. local 2026-09-20 17:00 → 2026-09-21 17:00, log stamps are local):So 7 orphaned drains, against a reported zero, and 11 total against a reported 1.
This matters more than an off-by-N. Agent Health is the daily signal a human reads to learn the pool is unhealthy, and this is the exact window in which the celilo pool was in a spawn/drain loop that cost a mayor session most of an evening (furiosa was drained ~19 times consecutively with zero work completed, recorded in
gs-wisp-zl4wmand its corrections). The digest reported that evening as healthy.Root cause: the lines it must count are untimestamped
Most supervisor lines carry a
2026/09/21 20:01:34prefix. The lifecycle lines do not. Real excerpt:Draining session ...,poolDesired: ...andscaleCheck: ...are all bare. A drain can only be dated from the nearest preceding timestamped line. Any windowing that filters drain lines by a date on the line itself matches nothing, and any count that does not window at all answers about the whole file — which holds 138 drains going back to rigs that were removed on 2026-08-30.Neither failure mode announces itself: both produce a small, well-formed, confident number.
Two things to fix, and the first is the cheap one
Draining session,poolDesiredandscaleCheckshould carry the same2026/09/21 20:01:34prefix every other line has. This makes every downstream consumer — the digest,flow-stall-check, any mayor's watcher — able to ask a windowed question at all. Today none of them can.Two neighbouring traps worth recording while someone is in here
"Draining session 'celilo--gastown__<name>': orphaned". A counter that matches bareorphanedacross all sessions cried wolf three times for one mayor on 2026-09-21; twice the truth was better than the alarm and once it was worse.rgvs the NUL byte. CLAUDE.md warns that plainrgstops at the first NUL in this file (currently byte 8650003, line 125258 of 588739) and so answers only about old lines. Measured here on 2026-09-22, plainrg -candrg -acboth returned 138 forDraining session, so this particular file/version is not truncating today.-aremains the safe habit, but the NUL is not the cause of this issue — the missing timestamps are.Filed with no bead, per the city rule that a defect in
gcor the pinned pack gets an issue and not a bead: no polecat in this city can change the supervisor binary or the pinned pack, so a bead would strand while reading as tracked.Measured 2026-09-22 04:45Z by gastown.mayor.
The digest now emits a false ALL-CLEAR, not just an undercount — and it names the hazard while doing it
Measured 2026-09-22 9:45 PM PDT by gastown.mayor, on the digest for window
2026-09-22T00:00:00Z → 2026-09-23T00:00:00Z.The digest's Agent Health section says:
There are 24
Draining sessionlines inside that window, 12 of themorphaned. Dated the only way these lines can be dated — by the nearest preceding timestamped line — and noting thatsupervisor.logtimestamps are LOCAL, so the UTC window maps to local2026/09/21 17:00→2026/09/22 17:00:This is worse than the original report in two ways.
It escalated from undercounting to a negative claim. The first observation here was 11 drains reported as 1. This digest reports zero and then asserts that a named hazard "did not fire". A reader who trusts it concludes the batch-drain problem is dormant on a day it fired a dozen orphaned drains.
A
no-wake-reasondrain of an idle polecat is normal, so the raw count alone would overstate the fault. The actionable number is theorphanedhalf — 12 — because those are the ones that release a live claim. A fixed digest should report the two separately rather than either a single total or nothing.Two digests for the same window disagree
Two digests arrived from
gastown__dog-1-poolfour minutes apart (9:41 PM and 9:45 PM PDT) for the same 2026-09-22 window, with different numbers:Same window, same generator, two answers. Only the second makes the drain claim, so whether a reader gets a false all-clear depends on which copy they open. Worth deciding whether a duplicate run should be suppressed, since a digest is the one artifact here that a person reads instead of measuring.
Suggested shape for the fix
Drain,
poolDesiredandscaleChecklines cannot be windowed because they carry no timestamp of their own. Either stamp them at the source, or have the digest attribute each one to the nearest preceding timestamped line (as above) and split the count intoorphanedversusno-wake-reason. Until one of those lands, the Agent Health section should say "not measurable" rather than zero: a blind instrument reporting an all-clear is worse than one reporting nothing, and this city has been bitten by exactly that shape more than once.No bead filed, per the standing rule that a gc/supervisor defect no polecat here can fix gets an issue and no bead.