-
released this
2026-07-26 21:30:39 +03:00 | 23 commits to main since this releaseUptime was a duration sampled from
ps -o etime=inside the privileged
process-metrics probe and published into the UI state as a string. The app
runs no status polling loop by design, so the only reads that refreshed it
bracketed an explicit user action — and the read that follows zapret-start.sh
sees a process one second old. The screen therefore showed "00:00", froze
there for the session, and only appeared to come alive when the next action
triggered another read.The lifecycle boundary already proves the identity of the process it owns
with (pid, starttime) and publishes the pair as Z2_PID_STARTTIME. That anchor
does not move while the process lives, so projecting it once onto the boot
clock lets the screen advance the counter itself: no protocol change, no
privileged call per tick, and two reads of one process compute the identical
anchor. Thepsfork leaves the status path with it.Measured on a Pixel 9 Pro XL, one status observation cost 330 ms, and a
start/stop button spent three of them. Two were redundant by construction, in
the wayrestartalready documents: the leading one re-derived the direction
the user had just acted on, whileperformtakes its own observation under
the lifecycle lock immediately afterwards, and the trailing one re-read what
the typed receipt of that very transition already carried.Inside the observation itself, verify_status_snapshot_pid spent 116 ms. Its
argv0 prefilter is a fork-free screening probe for candidates nothing has
authenticated yet — the recovery scan over the process table, and the stop
wait loop that must also witness a zombie transition. On a path that knows
which process it is asking about it added nothing over the digest of the
complete argv taken on the next line, and a shellreadfrom a proc file is
byte-at-a-time: on the module's own 21 KB cmdline that screening cost ~35 ms.
The digest now reads through a fork-free accessor, and one stat answers for
both identity paths.Status observation 277 ms -> 188 ms, its pid verification 86 ms -> 33 ms, and
a start/stop button drops two of its three observations.Co-Authored-By: Claude Opus 5 noreply@anthropic.com
Downloads
-
Source code (ZIP)
1 download
-
Source code (TAR.GZ)
1 download
-
Source code (ZIP)