The POSIX relaunch gate (REMOTE_UPDATE_MARKER_PROBE), the managed-update
observer (marker_state) and the spawn-time recheck (marker_clear) each carried
their own marker parser, narrower than update_lock._parse_marker: a BOM, a
space-padded or zero-padded pid, an out-of-range first delegate line before a
valid one, or started_at past 2^53 read as malformed (UNCERTAIN), and liveness
was PID (+argv text) only, not the (pid, creation time) identity Python checks.
The spawn recheck read line 1 only, so a dead owner with a live delegate let a
serve start beside the delegate.
All three now embed one program, REMOTE_MARKER_JUDGE_PY
(remote-update-marker-programs.ts, byte-identical to the judge #132345 ships),
and vitest replays every tests/fixtures/update_marker_corpus.json judge case
through it, so the corpus covers the Electron remote readers as the parser
docstring claims. Fixtures that wrote a live pid with started_at 0/1 now write
the current time: under the shared v1 rule such a claim is past the 20-minute
ceiling and dead, exactly as Python judges it.