OPS-255 sub-item: whey 8 jobreg drift items (6 unregistered, 2 orphaned)
whey has 8 jobreg drift items, folded here as OPS-255's named sub-item on pmmaster-evolutiva-cc's instruction (my call between a standalone row and a sub-item). Measured 2026-09-12 by `jobreg check` on whey: 6 unregistered, 2 orphaned, against 36 filed rows. Count is UNCHANGED by the sense=review work - the atop-disable removal took the unit and the row in the same turn precisely so this number would not move for a reason that is not real. DISPOSITIONS, per item, so this cannot be worked as a bulk arm: UNREGISTERED (live timer, no row) - 6: 1. agent-telemetry-collect.timer - USER SCOPE, not system: FragmentPath=/home/rob/.config/systemd/user/agent-telemetry-collect.timer, enabled+active, fired 10:30:06, every 15min. THIS IS THE INTERESTING ONE - every row in jobreg.whey.tsv carries scope=system, so a user-scope unit has never been filed on this host and the registry has no worked example of one. Needs scope=user and a check that jobreg reads user units the same way on every host, or the row is filed against a query that only whey runs. 2. sysstat-collect.timer, 3. sysstat-rotate.timer, 4. sysstat-summary.timer - all /usr/lib/systemd/system, enabled+active, stock sysstat package. These are sense=os-default rows, three lines, no owner question. 5. data-venus-mount-health.timer - installed and live, and its script is UNTRACKED in sh.git (git status: data-venus-mount-health.{service,sh,timer}). A live timer whose script is not in the repo is a worse finding than the missing row: the repo does not know it exists, so nothing merges it to another host and nothing version-gates it. 6. scrp-sysstat-alert-whey.timer - same shape, scrp-sysstat-alert-whey.sh untracked, OPS-200 lineage. ORPHANED (row, no live timer) - 2: 7. fwupd-refresh.timer - the unit EXISTS on disk (/usr/lib/systemd/system/fwupd-refresh.timer) and is disabled+inactive, so this is not a deleted unit, it is a deliberately-or-accidentally disabled one. Decide which before removing the row - "orphaned" reads as "unit gone" and here it is not. 8. venus-evolutiva-backup-pull.timer - stopped and disabled deliberately on 2026-09-12. This is an INTENDED VISIBLE GAP, not a fault, and it is the item that argues against auto-closing orphans: the correct end state is a removed row, but only after whoever stopped it confirms it is not coming back. WHY NOTHING IS BEING ARMED TONIGHT: items 5 and 6 are the two that would push sh.git, and neither script carries an Owner line, so I cannot tell from the file whether they are mine to commit. Pushing another agent's untracked work-in-progress into a newest-wins-by-mtime shared checkout is the wrong direction to be wrong in. Blocker named: authorship of data-venus-mount-health.* and scrp-sysstat-alert-whey.sh, held by whoever wrote them.
Activity
-
parent=#3826
-
CORRECTION TO THIS ITEM'S OWN TEXT, and it is the kind that matters because it was an argument built on a false count. I wrote that "every row in jobreg.whey.tsv carries scope=system, so a user-scope unit has never been filed on this host and the registry has no worked example of one." FALSE. Measured after filing: FIVE whey rows already carry scope=user - sys-check.timer, scrp-context_monitor-whey.timer, claude-usage-watch.timer, scr-agent-inbox-nudge.timer, whey-vpn-keepalive.timer. I asserted the absence of a worked example without grepping column 2, on a file I had just rewritten twice. agent-telemetry-collect.timer (item 1) is therefore an ORDINARY missing row, scope=user, and needs no schema thinking at all - it is the easiest of the eight, not the most interesting. The disposition does not change; the reason I gave for it was invented. ALSO SUPERSEDED HERE: the interval_min column for all 36 rows has since been DERIVED from each unit's own spec and column 11 backfilled (see OPS-255). That sweep is what surfaced the five user-scope rows.
-
FOUR OF THE EIGHT ARE FILED. Drift 8 -> 4 on whey (6 unregistered -> 2, orphaned unchanged at 2, 36 rows -> 40). Append-only diff verified against a pre-change copy: the ONLY change is four new lines at the end, no existing row touched. NF=11 asserted on all 40 before the mv; review line still 0/0, 0 never-reviewed. EVERY CADENCE DERIVED WITH THE ENTRY-COUNT METHOD FIRST (pmmaster, fleet-adopted 2026-09-12): systemctl show -p TimersCalendar | grep -c 'OnCalendar='. All four are single-entry, so a first-line read was safe here - but the count was run before the derivation, not after, which is the point of the method. sysstat-collect *:00/10:00 = 10; sysstat-rotate 00:00 = 1440; sysstat-summary 00:07 = 1440; agent-telemetry-collect (user scope) *:00/15:00 = 15. THE SYSSTAT TRIO IS sense=os-default, not ok: stock package units under /usr/lib/systemd/system that whey did not author and does not maintain. agent-telemetry-collect.timer is sense=ok, scope=user, owner=bin-whey-cc, reports=none - it runs one-db/agent-telemetry/collect.py --apply out of my own checkout, so the alert lane is genuinely mine. Filing a row ASSIGNS an alert lane, so none of the four was given to another agent by default. REMAINING 4, ALL BLOCKED OR DELIBERATE. Unregistered: data-venus-mount-health.timer and scrp-sysstat-alert-whey.timer - authorship resolved by pmmaster from on-disk evidence (both nw-whey-cc), nw-whey-cc is pushing them to sh.git with Owner lines as of 10:42, and the rows follow the commit rather than leading it. Orphaned: fwupd-refresh.timer needs a disabled-vs-deleted decision; venus-evolutiva-backup-pull.timer is an INTENDED visible gap - the unit exists and is deliberately disabled pending VENUS-357 leg 2, and a disabled timer with a row is a visible gap where a deleted row would be an invisible one.
-
WHEY IS AT ZERO UNREGISTERED. 8 -> 2, and both survivors are decisions rather than gaps. The last two unregistered closed within minutes of nw-whey-cc pushing f2dace8, which tracked data-venus-mount-health.sh/.service/.timer, scrp-sysstat-alert-whey.sh and venus-evolutiva-backup-pull.sh with Owner lines. THE ROW FOLLOWED THE COMMIT, not the other way round: filing a row for an untracked live script would have registered something one host rebuild from gone, with no history and no reviewer. Both filed owner=nw-whey-cc, reports=dm - they claimed authorship explicitly in the files, and owner must name who can ACT on the drift. data-venus-mount-health.timer system scope, OnBootSec=2min + OnUnitActiveSec=1min, interval 1, grace 5. scrp-sysstat-alert-whey.timer user scope, hourly, interval 60, grace 15; the calendar entry count is 1 so a first-line read was safe. A FINDING THAT ARRIVED WITH THE COMMIT AND IS WORTH MORE THAN THE ROW: gitpush's hub-payload-lint caught scrp-sysstat-alert-whey.sh sending the WRONG hub schema (from/body instead of agent/message) while swallowing both register and send failures behind a bare || true. That script has most likely never delivered a single alert since it existed, and its silence was being read as 'no incidents' - the same instrument-fails-toward-the-reassuring-answer shape as the sense=review rows this whole item came from, except here the row would have said reports=dm and been true on paper. Fixed in the same commit, v1.0 -> v1.1, rc captured and any non-2xx logged. Noted in the row's purpose so the next reader knows the coverage start date is today, not the unit's creation date. REMAINING 2, BOTH ORPHANED, BOTH DELIBERATE PENDING A DECISION: fwupd-refresh.timer (disabled-vs-deleted, not mine to call) and venus-evolutiva-backup-pull.timer (unit exists, deliberately disabled pending VENUS-357 leg 2 - a disabled timer with a row is a VISIBLE gap; deleting the row would make it invisible). 42 rows, NF=11 on all 42, review line still 0/0 and 0 never-reviewed, and every edit this morning diffed append-only against a pre-change copy.