You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
PR #403: external tool availability is true for empty configured paths #409
external_tool_report() currently defines availability as executable is not None or configured.exists(). For PHENIX, TM-align, DSSP, probe, and reduce, an existing configured
directory/file that contains no discoverable executable therefore reports available: true.
If its path contains the expected version, it also reports no version divergence. A directory
named suite-1.2.3 with no tool inside reproduces the false-positive combination.
CCP4 is the legitimate exception because its configured artifact is the setup script and its
executables become visible only after sourcing it. That exception should be declared in the spec,
not generalized to every tool.
Acceptance:
Executable-backed tools are available only when an executable is actually discovered.
CCP4 availability is tied explicitly to its setup-file requirement.
Tests cover an expected-version-named but empty directory and the CCP4 exception.
Fresh-context review of PR #957 (f37a017dcd6d5b4c8cd769d7e0280345a65d2789) found a regression of this issue's executable-availability contract. P3, in scope for #957. Recorded here as a duplicate rather than opening another issue; the original fix remains historical.
At scripts/toolchain.py:757, the new PHENIX branch sets available from the presence of a resolved path, without checking executable permission. PRIMARY reproduced with a temporary mode-0644 phenix.version, no phenix.refine, and empty PATH: the existing executable-discovery helper returns None, the version probe retains PermissionError, but the report says available=True with availability_probe="executable".
No installed tools ran. Receipt: local .orchestration/evidence/029-primary-reproductions.json. Suggested fix: require executable permission for executable availability and keep that distinct from version verification. Do not reintroduce PATH fallback or convert a setup/version error into proof of availability. Add a non-executable-file control alongside the accepted vendor-layout case. This will be corrected in #957 before final acceptance.
Activity
Fix #404 #405 #406 #407 #408 #409: harden review remediation
realmarcin commentedon Nov 6, 2026
Fresh-context review of PR #957 (
f37a017dcd6d5b4c8cd769d7e0280345a65d2789) found a regression of this issue's executable-availability contract. P3, in scope for #957. Recorded here as a duplicate rather than opening another issue; the original fix remains historical.At
scripts/toolchain.py:757, the new PHENIX branch setsavailablefrom the presence of a resolved path, without checking executable permission. PRIMARY reproduced with a temporary mode-0644phenix.version, nophenix.refine, and empty PATH: the existing executable-discovery helper returns None, the version probe retains PermissionError, but the report saysavailable=Truewithavailability_probe="executable".No installed tools ran. Receipt: local
.orchestration/evidence/029-primary-reproductions.json. Suggested fix: require executable permission for executable availability and keep that distinct from version verification. Do not reintroduce PATH fallback or convert a setup/version error into proof of availability. Add a non-executable-file control alongside the accepted vendor-layout case. This will be corrected in #957 before final acceptance.Address PR #957 review findings (#958, #956, #959, #960, #961, #409)