agent-ops
OPS-182
· child of OPS-173 gitpush.sh split by stack: retire the 2408-line monolith, per-stack scripts, bump-after-gate, deploy health poll Backlog
gitpushreact.sh
Done normal
bvbin-venus-cc
Plain React (non-Next). Confirm it is distinct from gitpushnextjs.sh before writing it: if the only real difference is the gate command, this is a flag on the Next.js script and not a fifth file. Same test as the PHP item - the split exists to reduce surface, so each new file must earn itself against a measured difference. Sources gitpush-core.sh (OPS-174); bump order per OPS-175. New script, explicitly NOT backwards compatible with gitpush.sh - no flag aliasing, no compatibility shims.
Activity
-
parent=#3117
-
RESOLVED AS 'DOES NOT EARN ITSELF' - no gitpushreact.sh. 9e84d28; gitpushnextjs.sh v1.4, gitpushnextjs.test.sh v1.1. The row set its own test: build the fifth file only if a plain-React repo differs from a Next.js one by more than the gate command. MEASURED against the 346-line gitpushnextjs.sh: it bakes in NO build, lint or gate command - .gitpush-pre.sh is the per-repo gate and the script never names a framework binary. The single Next-specific construct in the whole file was 'grep -q "next" package.json'. Bump-after-gate, the byte-identity revert gate, strict/--only resolution, the OPS-189 trace and the OPS-178 deploy watch are identical for a Vite or CRA SPA on Vercel. A file that differs from its sibling by one grep has not earned itself. DELIVERED INSTEAD: the framework test accepts "next", "react-scripts", or "vite"+"react", and PRINTS the name it matched on the Branch line - an unnamed match cannot be told from a silent fallback. Read with $(<file), not grep: bare grep on this host is ugrep and skips a gitignored file at rc=0, which would misread 'I could not see it' as 'it does not depend on next'. COVERAGE: 10 checks 0 failed. [8a] Vite+React accepted and named, [8b] CRA accepted and named, [8c] "vite" WITHOUT "react" still REFUSED - that third case is the deliverable's other half, because a widening that accepts everything is case [4]'s guard deleted rather than narrowed. Forced-red attributes each: overwide reddens only [8c], nextonly and unnamed redden only [8a]/[8b]. NOT exercised: no real Vite or CRA repo exists in the fleet to run this against - the fixtures are package.json dependency names, which IS the whole test the script applies, but nothing here proves a real CRA project deploys.
-
completed
task
6w ago by wi-cli-venus
1w ago
2026-10-05 21:36