Why: main already has one release transaction, so this branch keeps that path and only isolates update and recover in a clean child. Evidence: SELF bash -n scripts/svc.sh; python3 -m unittest identity/recover/deploy/u2/lifecycle pin 92 tests OK (2 skipped), then 66 tests OK after dropping the obsolete journal hook. Impact: deploy uses releases/ and deploy.journal; the lifecycle child reconciles that journal before deploy or recover. Backend pin is 0f192a4. Refs: #485 Co-authored-by: Cursor <cursoragent@cursor.com>
ui
@ 83e80f5648