Skip to content

fix: codex review #3 + README polish — v0.3.1#10

Merged
justi merged 1 commit into
mainfrom
chore/v0.3-final
May 8, 2026
Merged

fix: codex review #3 + README polish — v0.3.1#10
justi merged 1 commit into
mainfrom
chore/v0.3-final

Conversation

@justi
Copy link
Copy Markdown
Owner

@justi justi commented May 8, 2026

Pre-release sweep on the v0.3 end-state. 5 codex findings (2 MED, 3 LOW) + 2 README completeness gaps from independent audit. All addressed.

Severity Where Fix
MED lib/adapters/ruby/local.sh — sort -V GNU-only Probe once per shell; if absent, gating bails to HTTP fallback rather than crashing
MED bin/postcut — .postcut as a non-directory file Detect explicitly, exit 2 with remediation pointing at --output
LOW bin/postcut — --output + --stdout silent conflict Reject combination after flag parsing
LOW install.sh — POSTCUT_BIN_DIR bypassed validation Validate existence + writability up front
LOW bin/postcut — empty config vs all-comments wording Reworded to neutral 'no active entries'
README --path was missing from the flag list Added to usage block
README bundle-audit buried in modes table Surfaced as an explicit 'Optional' install step

Tests:

  • test_e2e.sh: 27 → 33 cases
  • test_install.sh: 18 → 22 cases
  • Suite total: 160/160 across 12 test files

VERSION bump 0.3.0 → 0.3.1; README status follows.

🤖 Generated with Claude Code

Pre-release sweep on the v0.3 end-state surfaced 5 codex findings (2
MED, 3 LOW) plus 2 README completeness gaps. All addressed.

MED — sort -V is GNU/modern-BSD only
  lib/adapters/ruby/local.sh used `sort -V` for prerelease/highest-version
  comparisons. Apple sort 2.x and current Linux coreutils support it,
  but very old BSD does not. Probe once per shell, cache the result;
  if `sort -V` isn't available, the gating bails to "can't determine"
  and HTTP picks up the gem rather than emitting wrong notes.

MED — .postcut existing as a non-directory
  `mkdir -p ".postcut"` errors with a raw mkdir message when something
  did `touch .postcut`. Now postcut detects the case explicitly and
  exits 2 with a clear remediation pointing at --output.

LOW — --output and --stdout silently fought each other
  Both flags accepted; --stdout won, --output silently ignored. Reject
  the combination with exit 2 right after flag parsing.

LOW — POSTCUT_BIN_DIR bypassed validation
  Auto-detected bin dirs are checked for existence + writability; the
  override skipped both, then `ln -sf` produced an unprefixed error.
  Now the override is validated up front; clear error if it's missing
  or read-only.

LOW — empty-config / all-comments-config message accuracy
  Both shapes (zero-byte file, file with only comments) shared one
  branch but the message claimed "all lines commented." Reworded to
  "no active entries" — neutral about which shape.

README — --path was missing from the explicit flag list
  Users reading the usage block had no signal that --path exists; the
  default `cd` workflow assumes you've already cd'd in. Added it.

README — bundle-audit was buried in the modes table
  Surfaced as an explicit "Optional" install step right under the
  manual install block, since it's the gate for local CVE data.

Tests:
  test_e2e.sh:     27 → 33 cases (+1 --output/--stdout, +1 .postcut-as-file,
                                  +2 zero-byte config, +others)
  test_install.sh: 18 → 22 cases (+2 missing override dir, +2 read-only)
  test_advisory_freshness.sh: unchanged (7/7)
  Suite total: 150 → 160 across 12 test files

VERSION bump 0.3.0 → 0.3.1; README status section follows.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@justi justi merged commit 5d995af into main May 8, 2026
1 check passed
@justi justi deleted the chore/v0.3-final branch May 8, 2026 11:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant