The launcher replaced TMPDIR with /tmp for the whole Electron process tree, so
the Python backend inherited TMPDIR=/tmp while TMP/TEMP/HERMES_SCRATCH_DIR
still named the scratch dir; apply_scratch_tmp_env then treated /tmp as
user-set and the agent subtree wrote temp files to /tmp.
The launcher now passes the original in HERMES_DESKTOP_TMPDIR and Electron main
restores it right after requestSingleInstanceLock(), so every child gets the
profile scratch dir back.
The override threshold is Chromium's real budget instead of the shared 50-byte
socket constant: sun_path holds 107 bytes and Chromium appends
/scoped_dirXXXXXX/SingletonSocket (33 bytes, measured on Electron 40), so a
TMPDIR up to 74 bytes is kept.