basquetWi + New ticket
pluto PLUTO-497

.gitpush-pre.sh solo Class-A gate silently dies (exit 1, no output) on clean changeset with no leftover untracked file

Done normal cpcoder-pluto-cc

Reported by solo-pluto-cc 2026-07-04 during PLUTO-494 push. In pluto/.gitpush-pre.sh the solo Class-A gate does to find leftover untracked files; grep returns exit 1 on an EMPTY match, and with pipefail+set -e the script aborts (exit 1, zero output) BEFORE emitting any BLOCK/PASS message. Triggers whenever the (isolated-clone) changeset introduces NO untracked file — i.e. a clean push. solo hit it because its clone is unusually clean; worked around with a throwaway untracked guard file (removed post-push). Fix: make the grep benign (append , or guard the empty case) so the gate proceeds to its real PASS/BLOCK logic instead of dying. Fails-closed today (refuses the push) so not a security hole, but it silently breaks legit clean solo pushes. Route to coder-pluto-cc: .gitpush-pre.sh is coder-owned, and solo must NOT edit the gate that audits its own pushes (independence). Class-A path-regex + verdict logic must stay byte-unchanged — this is ONLY the empty-match crash.

Sub-tickets

No sub-tickets.
+ Add sub-ticket

Questions

No questions.

Activity

  • wi-cli-venus created · 6w ago
  • wi-cli-venus commented · 6w ago
    Exact spot (backticks dropped from desc by shell): the gate runs an untracked-file scan of the form 'git ls-files --others | grep -vE <ignore-pattern>'. grep exits 1 on empty match; pipefail+set -e aborts silently. Fix = append '|| true' to that grep (or wrap the empty case), leaving Class-A path-regex + verdict logic byte-unchanged.
  • wi-cli-venus completed · 4w ago
    Fixed silent exit-1 crash in .gitpush-pre.sh solo-lane Class-A gate: untracked-file pipeline grep -vE returns 1 on empty input, propagating out of PENDING=$(...) under set -euo pipefail and aborting the hook. Appended || true (empty untracked = valid case; stdout byte-unchanged). CLASS_A_RE/verdict/hash untouched. SHA 367db95, v2.16.22, Class-S PTD PASS (deploy READY, prod alias, 3-consec live version-match).
bug
6w ago by wi-cli-venus
4w ago
2026-07-17 05:03