Summary
Generated hooks invoke unqualified cdidx, so PATH changes can select a different version or no executable at all.
Audit IDs: O-37. Reproduced with locally built cdidx v1.40.3 at 404db09489c305f17d94f37026e00564d3ac527a.
Existing issue relationship
Follow-up adjacent to closed #4596, #4340, and #4716's hook installation/provenance work.
Expected behavior and PR scope
Generated hooks must have an explicit, inspectable executable provenance strategy—safe pinned path or configured resolver—and status must diagnose missing/version-skew cases.
Implementation guide for Codex 5.6 sol xhigh
- Choose a cross-platform quoting/path strategy and define relocation/upgrade behavior.
- Avoid embedding an unsafe mutable PATH lookup unless it is deliberate and reported.
- Expose resolved path/version/source in hook install/status/dry-run with support-safe redaction.
- Cover spaces/symlinks, moved installs, multiple versions, missing executable, Windows command wrappers, and chain hooks.
- Add focused regression/contract tests, run the full net8.0 and net9.0 suite, and add the required bilingual
changelog.d/unreleased/ fragment.
Acceptance criteria
- A generated hook deterministically selects the intended cdidx.
- Status identifies the actual path/version or a clear failure.
- Paths are safely quoted and redacted according to policy.
Summary
Generated hooks invoke unqualified
cdidx, so PATH changes can select a different version or no executable at all.Audit IDs: O-37. Reproduced with locally built cdidx v1.40.3 at
404db09489c305f17d94f37026e00564d3ac527a.Existing issue relationship
Follow-up adjacent to closed #4596, #4340, and #4716's hook installation/provenance work.
Expected behavior and PR scope
Generated hooks must have an explicit, inspectable executable provenance strategy—safe pinned path or configured resolver—and status must diagnose missing/version-skew cases.
Implementation guide for Codex 5.6 sol xhigh
changelog.d/unreleased/fragment.Acceptance criteria