Skip to content

v7.223.12

Choose a tag to compare

@github-actions github-actions released this 12 Aug 18:07
· 15 commits to main since this release

saipen ship and saipen push now dispatch to ONE release executor (saipen_engine/release.py). A frozen ReleasePlan owns the decision: release version, branch, commit message, tag, the exact release metadata surface (VERSION + README + CHANGELOG + all 32 mechanically mirrored locale badges), foreign pre-existing staging detection, and the pre-ship index snapshot. plan_release builds the plan with ZERO writes and validates version parity; execute_release is the only place bytes change: exact staging -> --gate ship -> git diff --cached --check -> commit -> current-branch push -> tag push, in that order. Foreign pre-existing staged paths refuse the plan before any write (never committed, pushed or tagged) and stay byte-identical. Dry-runs are zero-write and, after invocation-name normalization, ship and push produce structurally identical plans. Scenario controls prove plan parity, dry-run no-mutation, foreign-staging refusal + preservation. (T-635)