fix(release): tighten root launcher install proof and coverage
The install-proof root launcher derivation now enumerates every .data/scripts member before validating the exact launcher set, instead of filtering to known launcher names first. The previous shape would have accepted a root wheel carrying an unexpected extra script member from this authority, even though the candidate rail's check_dist() catches it earlier; a changed authority should not be subset-shaped.
The cold uv tool install integration test now invokes solstone --version through its uv-created path and asserts exact stdout and exit status, so both public commands are proven callable rather than only proven present.
The no-Python spy now wraps both python3 and python. Sibling-Python resolution tries python3 first and falls back to python, so wrapping only python3 would have missed a regression that spawned the fallback interpreter on a native path.
Two stale-wording corrections have no behavior change: solstone/think/call.py no longer calls the compatibility subtree a helper, since there is no helper script after the launcher move, and the recovery-path error text in release_candidate_driver.py now names the retained payload executable member it actually validates instead of a ledger native member.
Validation: focused suites all green: test_release_install_smoke.py 25 passed, test_release_install_smoke_distribution_enumeration.py 9 passed, test_release_candidate_driver.py 140 passed, test_release_publish.py 35 passed, test_release_proof_host.py 20 passed, test_channel_adapters.py 13 passed, make test-integration 33 passed. make ci was rerun because the install-proof change touches a shared cross-cutting release authority; it exited 0 on the settled tree (14918 passed, 16 skipped).
Not run: no scripts/release.sh in any mode, no make publish-*, no make release*, and nothing that builds or contacts a host. dist/release-candidate/ and target/release-evidence/ remained absent.
Co-Authored-By: OpenAI Codex <codex@openai.com>