Release beta 1.0.4 update settlement
check / local-gate (push) Failing after 1m7s

This commit is contained in:
JWeBot Contributors
2026-10-16 16:10:19 +08:00
parent bf6b738baa
commit 127fea8cd0
24 changed files with 954 additions and 28 deletions
+23
View File
@@ -18,6 +18,9 @@ exception.
- every package `__version__`;
- `README.md`;
- `CHANGELOG.md`.
- The first bullet under each release heading in `CHANGELOG.md` must be one
concise, user-facing sentence. It is the canonical group announcement
summary.
- Do not mark production complete merely because code was committed. Production
is complete only after staging, cutover, acceptance, observation, and backup
restore checks pass.
@@ -63,6 +66,26 @@ Before touching production runtime files on production host:
SQLite gates.
- If any gate fails, confirm rollback state before retrying.
## Mandatory Post-Release Settlement
- After cutover and rollback gates pass, run the installed
`jwebot_release_update.py`.
- The settlement grants exactly 200 Mora to every account that exists at the
start of that release settlement and appends a version-labelled account
movement.
- Compensation uses the full release string as its idempotency key. Rerunning
the same release must not grant Mora twice.
- The tool sends one guarded announcement containing the version, the first
changelog bullet, and the `Mora x200` compensation notice.
- Announcement state is tracked separately from compensation. A missing or
uncertain GUI receipt must never roll back a healthy runtime or trigger
another grant.
- If delivery is uncertain, inspect the configured group before using
`--retry-uncertain-announcement`; never retry blindly.
- Production is not complete until the settlement reports success, SQLite
`quick_check` is `ok`, queues are empty, and service restart counts remain
stable.
## Backup And Restore
- Pre-deploy and post-deploy baselines must include runtime files, systemd