Let a pointer advance inside its own channel #363

Open
PerishFire wants to merge 1 commit from task/a-pointer-advances-in-its-own-channel into main
Owner

proof::advance guards a channel pointer from losing its identity or moving backwards, and it is the right guard. It was written when only stable had a pointer, so it required both sides to be stable outright:

let stable = current.channel == "stable" && next.channel == "stable";

The first beta activation met it:

plumb release: stable pointer identity mismatch

— a message naming a channel it was not being asked about.

The guard now asks what it means: the two pointers name the same channel, the same product, the same schema, and the version does not go backwards. That is the property worth holding for any channel, and stable keeps exactly what it had. The surrounding messages stop saying stable about an object that is now per-channel.

`proof::advance` guards a channel pointer from losing its identity or moving backwards, and it is the right guard. It was written when only stable had a pointer, so it required both sides to be `stable` outright: ```rust let stable = current.channel == "stable" && next.channel == "stable"; ``` The first beta activation met it: ``` plumb release: stable pointer identity mismatch ``` — a message naming a channel it was not being asked about. The guard now asks what it means: **the two pointers name the same channel, the same product, the same schema, and the version does not go backwards.** That is the property worth holding for any channel, and stable keeps exactly what it had. The surrounding messages stop saying *stable* about an object that is now per-channel.
Let a pointer advance inside its own channel
All checks were successful
guard / guard (pull_request) Successful in 3m2s
e5667c6529
`proof::advance` guards a channel pointer from losing its identity or moving
backwards, and it is the right guard. It was written when only stable had a
pointer, so it required both sides to be `stable` outright:

    let stable = current.channel == "stable" && next.channel == "stable";

The first beta activation met it and was refused as a `stable pointer identity
mismatch`, a message naming a channel it was not being asked about.

The guard now asks what it means: the two pointers name the same channel, the
same product, and the same schema, and the version does not go backwards. That
is the property worth holding for any channel, and stable keeps exactly what it
had. The surrounding messages stop saying stable about an object that is now
per-channel.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
All checks were successful
guard / guard (pull_request) Successful in 3m2s
This pull request has changes conflicting with the target branch.
  • plumb.toml
View command line instructions

Manual merge helper

Use this merge commit message when completing the merge manually.

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin task/a-pointer-advances-in-its-own-channel:task/a-pointer-advances-in-its-own-channel
git switch task/a-pointer-advances-in-its-own-channel
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
PerishLab/plumb!363
No description provided.