v4.7.3 — The doctor asks the process, not the disk
Found by the post-update test of 4.7.2 (2026-09-24): 4 of the 7
restart warnings from relay doctor were false, the answer changed with the
directory the doctor ran from, and a reactor running code from 09-22 was not
listed at all.
Fixed
relay doctorasks the interpreter the process actually runs. The
version probe used/proc/<pid>/exe, the symlink-resolved base interpreter,
which does not see the venv (uv tool, uvx archive,.venv). It now invokes
cmdline[0](resolved on the process's ownPATH) and reproduces that
process'ssys.path[0],PYTHON*env and-I/-Pflags. The doctor's own
PYTHONPATHand cwd no longer leak into the answer.- The dist-info fallback stops at the process's own install. For a Python
executable, the parent directories are the base interpreter's install
(under uv they reached~/.localand an unrelated dist-info), so only path
arguments are walked now. This also covers an interpreter replaced on
disk ((deleted)). Editable dist-infos are skipped: theirVersionis
the install-time one, not the loaded code (measured: 4.7.1 and 3.8.2 for
processes loading 4.7.2). - A wrapper process is no longer judged by the disk. When the interpreter
answered that conscio is not importable there (a watchdog or launcher, not
Conscio), the doctor now skips the process — a reachable dist-info can no
longer resurrect it as stale.
Added
relay doctorflags a process older than its code on disk. An
in-place upgrade or an editable repo after a bump leaves the disk at the
new version while the process runs the old one. The disk version check
missed it. The doctor now compares the process start (btime+ field 22 of
/proc/<pid>/stat) with the mtime of the module it would import, with 2 s
slack, and saysiniciou <data>, antes do codigo que carregaria hoje.
Entries carryreason(older_version|code_newer_than_process).
Known limitation
- A wrapper whose own venv also has conscio installed is still listed. The
interpreter truthfully answers "importable" and the cmdline carries
conscio-mcpafter--(measured: the Hermesmcp_stdio_watchdog.py,
whose venv has 4.7.2). Its child is judged on its own. Planned for v4.8.