promote points an (app, channel) at a release id — cross-channel promotion allowed, missing channel created, manual policy gate stubbed. rollback moves the pointer to the previous PUBLISHED release in the channel's publish-order lineage (cross-promoted pointer falls back to the channel's own latest; at the earliest release it refuses with rollback.no_previous). Both append a cli-actor audit event and re-persist db.json; failures follow the P3.4b contract (dotted-code JSON error, exit 1, store untouched). Acceptance pinned in tests/release_ops.sx; cli_dispatch reworked off the removed stubs.
6.4 KiB
6.4 KiB