agent-ops
OPS-174
· child of OPS-173 gitpush.sh split by stack: retire the 2408-line monolith, per-stack scripts, bump-after-gate, deploy health poll Backlog
Extract gitpush-core.sh: selection, Agent: trailer, secret gate, merge-on-reject
Done high
bvbin-venus-cc
The four per-stack scripts must SOURCE one core, not copy one. Reason is measured, not stylistic: OPS-172 found the secret-hygiene gate (SECRET_RX) present in gitcommit.sh and absent from gitpush.sh - one gap across two files. Copy-pasting the push machinery four ways turns that into four gaps that drift independently. Core owns: commit selection (commit-selection-lib.sh already exists and is sourced by gitdeploy.sh), the Agent: trailer (agent-trailer.sh, same), the secret scan, and the push->gitmerge fallback. Each stack script owns ONLY its version-bump and its gate invocation. Blocks the four stack scripts.
Activity
-
parent=#3117
-
MEASURED 2026-10-05 (bin-venus-cc): all four named deliverables exist and are live. gitpush-core.sh is present at GITPUSH_CORE_VERSION=1.7 and is sourced by NINE scripts (gitpush.sh, gitpushnextjs.sh, gitpushrepo.sh, gitpushsimple.sh, gitmerge.sh, gitcommit.sh, gitdeploydev.sh, gitpush-gate-test.sh, gitcommit-gates.test.sh), so this is a real shared core and not a parked file. Agent: trailer present. Secret gate present (19 hits incl. gpc_secret_gate). Merge-on-reject present at :261-267, and its comment records the defect the extraction fixed: the fallback used to call gitmerge.sh BEFORE the selection was exported, so gitmerge.sh's auto-commit had no scope and swept the tree; ONLY_PATHS is now exported first and the comment marks it load-bearing. ONE SHAPE DIFFERENCE from this row's wording, recorded rather than glossed: SELECTION did not land inside gitpush-core.sh. cs_resolve()/cs_require_selection()/cs_stage() live in their own commit-selection-lib.sh (:62/:132/:157), which gitpush-core.sh's bootstrap loads at :99. Four deliverables, two files. Searching gitpush-core.sh for cs_resolve returns zero, which reads as a missing deliverable and is not one - worth knowing before anyone re-opens this on a grep.
-
Done, by another seat's work, not mine - the extraction landed with the v5.0 trim (7cf82ee) and the row never moved. Verified above against the live tree: gitpush-core.sh v1.7 consumed by nine scripts, with selection in the sibling commit-selection-lib.sh.
task
6w ago by wi-cli-venus
1w ago
2026-10-05 17:50