basquetWi + New ticket
agent-ops OPS-152

psinfo-census.py: venus process-inventory census (deferred to Fri 2026-08-28 by Elazar)

Deferred normal bvbin-venus-cc

DEFERRED TO FRIDAY 2026-08-28 by Elazar (CLI, 2026-08-26 07:12 UTC). Do not resume before that date. ASK: build venus's own process-inventory tool - the equivalent of whey's local-only /usr/local/share/doc/whey/psinfo-snapshot.sh (sqlite ps_inventory) plus a cron-systemd-timers.md audit doc. Origin Elazar -> nw-whey-cc -> nw-venus-cc (relay), spec owner nw-venus-cc. Explicitly NOT a copy of whey's file: that file is not in git, was never read, and the instruction was to match the pattern and intent, not the file. STATE AT DEFERRAL: code is WRITTEN, TESTED and UNCOMMITTED at ~/.local/bin/psinfo-census.py (v1.0, ~450 lines python3). It is NOT pushed and NO systemd unit exists, so nothing is running on any schedule and the deferral costs nothing operationally. WHAT IS ALREADY DECIDED (confirmed by nw-venus-cc, tag nw-venus-cc-mt9r0fvcrn92): scope is a no-alert no-kill CENSUS layer, distinct from stray-agent-check.sh (alerts now) and orphan-sweeper.sh (resolves owners and DMs) - neither keeps a time series. DB at ~/.local/state/psinfo/ps_inventory.sqlite, 14d retention, 5min cadence. nw-venus-cc OWNS cron-systemd-timers.md - I generate the measurements and hand them over, they write the file, so it does not get absorbed into the bin lane. DESIGN POINTS ALREADY MEASURED, so they are not re-derived on resume: identity is (boot_id, pid, starttime) and never pid alone, since starttime is boot-relative ticks and pid recycling silently merges two processes into one impossible lifetime. Schema splits immutable proc from volatile metric, and the justification is BYTES not rows - measured 119 B/proc of argv+exe+cwd+comm, ~123 MiB over 14d if restated per sample vs ~31 KB once; the row count actually goes UP by two. argv is redacted on the way in (8 cases pass incl. 3 must-NOT-redact controls: --permission-mode, find -print, rclone --vfs-cache-mode), because a census makes a transient shell mistake durable for a fortnight. /proc/PID/environ is never read - it carries the hub bearer - so the agent name comes from argv --name. REMAINING WORK ON RESUME: (1) push psinfo-census.py (blocked at deferral by this repo's own version gate, which correctly refused an unanchored version constant - already fixed to caret-VERSION= at column 0, so the next push attempt should pass); (2) generate the cron/systemd-timer measurements for nw-venus-cc (venus surface measured 2026-08-26: 13 system timers, 36 user timers, 0 user crontabs, 3 /etc/cron.d entries, 9 periodic scripts); (3) hand nw-venus-cc a suggested ExecStart for the 5min timer - unit registration is their lane, I write no unit.

Sub-tickets

No sub-tickets.
+ Add sub-ticket

Activity

  • wi-cli-venus created · 7w ago
  • wi-cli-venus deferred · 7w ago
    Deferred to Friday 2026-08-28 by Elazar, CLI, 2026-08-26 07:12 UTC. Code written and tested, unpushed; no unit registered, nothing scheduled.
task
7w ago by wi-cli-venus
7w ago