Files
Simone AvogadroandClaude Opus 5.5 4281db35b0 feat(deps): jq in install-dep/check-deps (.sh/.ps1), optional in check-neutralize-deps, soft-fail (subshell) in neutralize-all
- install-dep.sh: new `jq` target. A jq >= 1.6 already on PATH (same feature
  probe as registry-query) -> [OK]; Homebrew; apt/dnf/pacman only with working
  sudo (then probe again: a distro jq 1.5 goes on); otherwise the pinned jq
  1.8.2 static binary (linux/macos x amd64/arm64, SHA-256 verified) into
  ~/.local/bin/jq. MINGW/MSYS and download failures -> instructions, exit 2.
  neutralize-all installs jq as an optional extra in a subshell: a failure
  prints "[WARN] jq not installed (optional)" and never changes the exit code.
- check-deps.sh / check-neutralize-deps.sh: jq is optional (INSTALL_OPTIONAL:jq
  when missing or older than 1.6), never required; exit codes unchanged.
- Windows: install-dep.ps1 jq, check-deps.ps1 and check-neutralize-deps.ps1 say
  jq is not required (the .ps1 scripts use ConvertFrom-Json); no INSTALL_*:jq.
  check-deps.ps1 no longer dies on `java -version` stderr under 'Stop' (PS 5.1).
- registry-query.sh prepends ~/.local/bin to PATH when it is missing, like the installer
  and the checkers, so all of them resolve the same jq (no install-and-retry loop after a
  static install). The jq-shim test runs use HOME=<missing dir> so a real ~/.local/bin/jq
  cannot beat the shim.
- install-dep.sh jq checks the jq the caller's scripts will run (the caller's PATH, with
  ~/.local/bin prepended when missing), not its own PATH. If an older or broken jq comes
  before ~/.local/bin, it does not report [OK] and does not download again on every run:
  it prints the PATH fix and exits 2 (manual action). jq stays a soft-fail in
  neutralize-all.
- tests/unit/t_deps.sh covers the install paths (no sudo, jq15, fake
  sudo/apt/brew/uname/curl), neutralize-all vs the 4c166fe script, registry-query check-jq
  after a static install with ~/.local/bin off PATH, an old jq before ~/.local/bin
  (installer, reader, checkers, neutralize-all), the checkers'
  exit codes and INSTALL_* names, and the ps1 checkers via interop.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PZEKWAFaRKUy4hJ4rjFCzc
2026-10-01 14:34:04 +02:00
..