fix(library): a reading of the cloud says when it has finished, and a window is measured off the shelf that is up

The background walk behind a cloud node read its pages after the answer the
screen had already been given, and no one told the screen when the last page
landed: the note went on saying a reading was running for the rest of the
visit. The walk now gives its own last word, with the count it read.

The strip and the wall windows were measured off the node the effect was set
up on. The stage is drawn while a node is open, so a visit that loses its
nodes and gets them back draws a new strip and a new wall, and a window
measured off the old node — a box of nothing, a scroll always nought — never
moved again for the rest of the visit. Both now read the element that is up.
This commit is contained in:
2026-10-12 18:43:13 +07:00
parent 9cbaed42b1
commit dd9310b344
2 changed files with 37 additions and 8 deletions
+8
View File
@@ -588,6 +588,14 @@ export async function syncImmich(
}
}
} finally {
// The reading's last word. The answer `syncImmich` gave was the
// foreground window's, and the pages behind it are read after it: without
// this the screen goes on saying a reading is running for the rest of the
// visit, and a reading nobody is doing is the note the reader reads as a
// reading that never stops. A walk that ended at a page the server would
// not answer says the same thing — what the catalogue was given is what it
// was given — and the place stays where it stopped either way.
onBatch?.([], { loaded: rootCount, hasMore: false });
walking.delete(root);
}
})();