docs(roadmap): R2's nine ordering rows, and the zoom-ring row REPLACED not amended
Lifted from r2_flow's INV-2 table rather than rewritten, so the contract and the roadmap cannot drift into two statements of one rule. The zoom-ring row is replaced because review_chain filters to media, not images — 'filtered to images' is now false, and a stale row is invariant 6 failing quietly, which is the only way it ever fails. The ordinal row is the one worth reading: an ordinal counted across ALL items makes '#07' the same tile under every filter. The operator refers to artifacts positionally, and the filters we shipped in U7 had quietly broken that — 'the third one' meant something different depending on which filter was on. Nothing on our side noticed; design-dev proposed it unprompted.
This commit is contained in:
+9
-1
@@ -95,7 +95,15 @@ Where it already binds, and what the rule is in each case:
|
||||
| collection | rule |
|
||||
|---|---|
|
||||
| items in a booth | `sorted(rel)` — byte order over the booth-relative path (U1 INV-3) |
|
||||
| the zoom prev/next ring | the item order, filtered to images — same sequence, one source |
|
||||
| the review prev/next ring | the item order, **filtered to media** — image, video and audio (`review_chain`, R2). Supersedes `image_chain`, which stays importable and unchanged for its other callers |
|
||||
| an item's ordinal (`#NN`) | its position in `sorted(rel)` — **counted across ALL items, so `#07` is the same tile under every filter.** This is what makes the operator's "the third one" mean one thing, which the filters had quietly broken (R2) |
|
||||
| the filmstrip and the tape | the review ring |
|
||||
| the flag tray | **by ordinal** — the tray reads in the same direction as the grid (R2). The notes list keeps `(created, id)` |
|
||||
| the Desk's sections | fixed: needs you → new since you looked → everything else (R2) |
|
||||
| within *needs you* | `(open_since, name)` |
|
||||
| within *new since you looked* | `(-landed_at, name)` |
|
||||
| within *everything else* | `list_booths` order: `(mtime, name)` descending |
|
||||
| the Desk's bookmarks column | `order_for_display` — pinned first, then newest |
|
||||
| caption sidecar resolution | sorted scan, so two media files sharing a stem resolve the same way every time (a real non-determinism U1 removed) |
|
||||
| marks in a booth | `(created, id)` — time, with the id as tie-break so two marks written in the same second cannot swap |
|
||||
| legacy ask import | `(mtime, name)`, which is the order `list_asks` gave them |
|
||||
|
||||
Reference in New Issue
Block a user