personal memory agent
0

Configure Feed

Select the types of activity you want to include in your feed.

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>

+21 -12
+2 -2
scripts/release_candidate_driver.py
··· 1716 1716 if expected is None: 1717 1717 failures.append( 1718 1718 _failure( 1719 - "install proof installed member is not retained in ledger", 1720 - expected=f"{target} retained native member", 1719 + "install proof installed member is not retained in payloads", 1720 + expected=f"{target} retained executable member", 1721 1721 actual=name, 1722 1722 repair="bash scripts/release.sh --recover", 1723 1723 )
-1
scripts/release_install_smoke.py
··· 542 542 info 543 543 for info in wheel.infolist() 544 544 if ".data/scripts/" in info.filename 545 - and Path(info.filename).name in ROOT_LAUNCHER_NAMES 546 545 ), 547 546 key=lambda info: info.filename, 548 547 )
+1 -1
solstone/think/call.py
··· 5 5 6 6 The native `sol` binary owns migrated `sol call <app> <verb>` commands. The 7 7 remaining Python Typer surface is exactly `sol call journal ...`, mounted here 8 - for the private native compatibility helper. 8 + for the private native compatibility module bridge. 9 9 """ 10 10 11 11 import typer
+18 -8
tests/integration/test_root_launcher_install.py
··· 236 236 237 237 238 238 def _install_python_spy(env_bin: Path, log: Path) -> None: 239 - python3 = env_bin / "python3" 240 - real = env_bin / "python3.real" 241 - python3.rename(real) 242 - wrapper = ( 243 - f'#!/bin/sh\nprintf \'%s\\n\' "$*" >> {str(log)!r}\nexec {str(real)!r} "$@"\n' 244 - ) 245 - python3.write_text(wrapper, encoding="utf-8") 246 - python3.chmod(0o755) 239 + for name in ("python3", "python"): 240 + interpreter = env_bin / name 241 + real = env_bin / f"{name}.real" 242 + interpreter.rename(real) 243 + wrapper = ( 244 + "#!/bin/sh\n" 245 + f"printf '%s %s\\n' {name!r} \"$*\" >> {str(log)!r}\n" 246 + f'exec {str(real)!r} "$@"\n' 247 + ) 248 + interpreter.write_text(wrapper, encoding="utf-8") 249 + interpreter.chmod(0o755) 247 250 248 251 249 252 def _script_owners(python: Path, names: tuple[str, ...]) -> dict[str, list[str]]: ··· 380 383 native = _run([tool_bin / "sol", "--version"], cwd=unrelated, env=env) 381 384 assert native.returncode == 0, native.stderr 382 385 assert native.stdout == f"sol (solstone) {built_wheels.version}\n" 386 + native_solstone = _run( 387 + [tool_bin / "solstone", "--version"], 388 + cwd=unrelated, 389 + env=env, 390 + ) 391 + assert native_solstone.returncode == 0, native_solstone.stderr 392 + assert native_solstone.stdout == f"sol (solstone) {built_wheels.version}\n" 383 393 assert not log.exists() 384 394 385 395 journal = tmp_path / "journal"