c541fac7ceaf276328b14183751ce7672ea3c56e
Close the remaining publish aggregate-consistency edges (review round 2, F1 continued): - chan.name == release.channel — the promoted channel must be the one the release declares as its target; promoting a "beta" channel for a release whose channel is "stable" committed an edge contradicting the release's own target. Now rejected with Integrity + rollback. - release.id must be new — a colliding id would shadow the existing release (get_release resolves to the OLD one), so the channel edge would silently point at a different release than the one published. Now rejected with Integrity + rollback. tests/repo_transaction.sx: add a channel-name-mismatch case and a release-id-collision case (both assert Integrity + model unchanged); existing fully-consistent publish still commits. Both new cases fail on the pre-fix repo.sx and pass after.
Description
No description provided
Languages
HTML
35.2%
CSS
30.3%
JavaScript
29%
Makefile
3.4%
Shell
2.1%