Verified with a build_environment test venv (no editable finder, no committed
PM selection) plus real uv on PATH — the shape CI runs.
- test_old_updater_takeover: the fake NEW checkout carries update_handoff.py;
the test never relied on the source being importable from an editable venv.
- test_update_launch_completion: record the completion-tail child instead of
running the checkout's (nonexistent) source_completion.py.
- test_update_missing_configured_deps: source_launch already stubs
hermes_cli/; link the remaining modules beside the stub.
- test_worker: the injected runtime_lock stub accepts the timeout kwarg the
worker now passes (it raised TypeError before reaching the lock).
- test_plugin_guard / test_plugin_install_ref: PM publishes plugins only under
the active home's plugins/ and does so in the worker — install into the
sandboxed home, and fail the metadata write inside the worker.
- test_pm_build_consumers: setup_toolchain deliberately puts uv on PATH after
the interpreter (c8bbac5c6e); assert that ordering instead of its absence.
- test_icon_flavors: tile_color reads the most chromatic lower-half pixel (the
inward contrasting border and LANCZOS smear defeat a fixed coordinate); the
SHA glyph readback skips cells the portrait covers (da9f6d2dcd renders her in
front of the badge) and requires a majority of each glyph.
- test_desktop_update_target: the fixture CLI reports the checkout as its
install directory again (parents[1] inside the string was bumped with the
file move in cb7c688171).
- test_termux_python_linkage: skip when the host has no shared libpython or no
patchelf (relocatable python-build-standalone in CI).
- test_source_build_env: smoke-env.mjs is dependency-free (main removed the
Playwright entry it imported through); pm/_fixtures.stage_host_python copies
the stdlib beside the interpreter for payload tests.
test_api_server_runs::test_events_stream_forwards_interim_commentary is an
upstream flake (identical file on origin/main fails 2/3 locally).