# Leave old page-change records as they are, and never take back a change the server may have seen · dara/icarus

[View on GitCafe](https://git.cafe/dara/icarus/commit/6869fd46e77dfac5937c540eb3d367ff86cbc6b0)

Repository: [dara/icarus](https://git.cafe/dara/icarus)

Visibility: public

Requested revision: 6869fd46e77dfac5937c540eb3d367ff86cbc6b0

Requested commit: 6869fd46e77dfac5937c540eb3d367ff86cbc6b0

Commit: 6869fd46e77dfac5937c540eb3d367ff86cbc6b0

Tree: 1603e6c1ff6c60a85190df936b26f8448578b43c

Author: Dara Adedeji

Committer: Dara Adedeji

## Message

```
Leave old page-change records as they are, and never take back a change the server may have seen

Records saved by builds before the ordered list are no longer moved into
it on start. They stay in their page's slot and are sent as those builds
sent them (renames first in their one batch), and the list's own changes
wait until they have drained. A side change that would have replaced an
old waiting move or delete waits behind it instead.

A delete of a page whose add hasn't landed now waits behind the add, so
an add whose answer was lost no longer leaves a page on the server with
an empty outbox. A replayed add's answer moves the changes behind it on,
as an applied one does. Renames and side changes made after a page's
delete wait behind it: they go with the page once the delete lands, and
send if the delete is discarded. Only a change never sent is folded into.

The canvas follows a rename onto its new page revision only when the
server applied it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

```

## Parents

- [68410a4f0b47d27f5c48d8c8005498918c460828](https://git.cafe/dara/icarus/commit/68410a4f0b47d27f5c48d8c8005498918c460828?format=markdown)

[Source at this commit](https://git.cafe/dara/icarus/tree/6869fd46e77dfac5937c540eb3d367ff86cbc6b0?format=markdown)
