@ai-matrx/records-ui 0.85.9 → 0.85.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,12 +1,55 @@
1
1
  # Changelog — @ai-matrx/records-ui
2
2
 
3
- ## 0.85.9
3
+ ## 0.85.11
4
4
 
5
5
  Automatic changed-only republish (docs/metadata drift since the last tag — see
6
- `git diff npm/records-ui/v0.85.7..npm/records-ui/v0.85.9 -- apps/shared/records-ui`).
6
+ `git diff npm/records-ui/v0.85.10..npm/records-ui/v0.85.11 -- apps/shared/records-ui`).
7
7
  No source changes intended and no consumer action required.
8
8
 
9
- ## Unreleased
9
+ ## Unreleased — lane ORDER-FILTER (2026-09-25)
10
+
11
+ **Needs the next `@ai-matrx/records`** (`readInViewOrder({ filter })`).
12
+
13
+ * **A filtered, hand-ordered view reads exactly its rows, in their places.** `useHandOrderRows`
14
+ takes the view's `filter` and hands it to the order door, which pages the filtered hand order.
15
+ It used to read the first 500 positions of the WHOLE table and lay them over the list door's
16
+ page, so a matching row placed past position 500 fell to the end in arrival order and every page
17
+ read hundreds of rows the view does not show (GRID-MANUAL's named limit). The Grid and the
18
+ board/gallery/calendar (`useViewRecords`) pass the filter they already hold; page two of a
19
+ filtered hand order is the door's page two. The client-side `inHandOrder` helper is gone.
20
+ Tests: `a-hand-set-order-is-the-grids-sort.test.tsx` RED 3/16 on the prior bytes, GREEN 16/16.
21
+
22
+ ## 0.85.10 (2026-09-25 — published by PUBLISH-SWEEP-5)
23
+
24
+ **Needs `@ai-matrx/records` 0.58.8** (`TableHomeDestination.slug`). Carries UI-FIX-19's move-destination
25
+ address (`461302fbf7`), the lane-tag filter in `hintForAPerson` (`1fd6f9a527`) and the move confirmation
26
+ through the host's notify (`7b7936fb27`).
27
+ Also GRID-MANUAL: the grid draws a hand-set order as its Manual sort (code swept in `dea2f82a14`).
28
+
29
+ ### Lane GRID-MANUAL (2026-09-25) — a hand-set order is the grid's sort
30
+
31
+ * **The Grid draws a hand-ordered view in its hand order, and says so.** The store's ORDER-FIX rule
32
+ (live): a saved view is ordered by its sort OR by hand, never both. A view whose definition says
33
+ `order: "manual"` is now read through the order door (`custom.read_records_in_view_order`, paged;
34
+ with a filter, the store's filtered page is put in the door's positions), opens with no column
35
+ sort, and the toolbar reads **"Sort: Manual · set by hand"** — the Sheet's words. A column sort
36
+ over it reads **"Sorted by X ↑ · hand-set order set aside"** with **Back to manual** and, where
37
+ the host can write the view, **Use this sort instead** (a `view_declare` with `sorts`, which the
38
+ store takes as turning the hand order off; the notice says the sort replaced it).
39
+ * **Reorder writes nothing until Save.** A Reorder dialog (drag, or Up/Down per row) starts in the
40
+ order on screen and says what Save replaces; Save is ONE `custom.view_record_order_set` with the
41
+ whole list. No `view_declare`.
42
+ * **The board, calendar and gallery** read a hand-ordered view through the same door, so a kanban
43
+ column lists its cards in the hand order; the membership line adds "Sort: Manual — the cards are
44
+ in the order set by hand."
45
+ * A sorted view now OPENS in its own `sorts` (first clause) over the table's `default_sort`.
46
+ * The Grid holds its table query (`controlled-local`) so it can see the person's column sort;
47
+ filtering, search and sort still run locally exactly as before.
48
+ * New API: `GridProps.viewOrder` (`GridViewOrder`), `ViewSwitcherProps.viewId` / `onOrderPlaced`,
49
+ `SavedViewSpec.order` (read-only; never written by a patch), `viewOrderOf`. `TablePage` wires them.
50
+ Suite `a-hand-set-order-is-the-grids-sort.test.tsx`: RED 7/13 on the 0.85.10 Grid/ViewSwitcher,
51
+ GREEN 13/13. **Consumer action:** none; with this published and installed, a hand-ordered view no
52
+ longer needs to open as the Sheet.
10
53
 
11
54
  ### Lane MOVE-AND-OUTSIDER (2026-09-24)
12
55
 
@@ -23,6 +66,23 @@ No source changes intended and no consumer action required.
23
66
 
24
67
  ### Lane UI-FIX-19 (2026-09-24)
25
68
 
69
+ * **A landed move is said even when the host re-reads.** `WhereItLives` says "… now lives in …"
70
+ through the host's `notify` when it is bound (and only there — one home per sentence), because
71
+ a host's `onMoved` re-read re-mounts an object page's header and the chip's own sentence died
72
+ unread (MOVE-AND-OUTSIDER). Unbound, it is said in the panel as before. `Grid`'s duplicate
73
+ refusal is no longer ALSO toasted beside its inline sentence. Suite
74
+ `a-landed-move-is-said-after-the-host-rereads.test.tsx`: RED on the prior bytes, GREEN.
75
+ **Consumer action:** bind `notify` on the mount that hosts the chip.
76
+ * **A build lane's tag is never shown to a person.** `MACHINE_IDENTITY` gains the lane-tag shape
77
+ (capital words joined by hyphens, then a colon — `STORE-TAILS-3:`), so `hintForAPerson` drops a
78
+ store hint written for an engineer; the refused "Bring it back" drew "STORE-TAILS-3: a restore
79
+ brings back…" to the Birchwood owner. Suite `a-lane-tag-is-never-shown-to-a-person.test.tsx`:
80
+ RED 2/7 on the prior bytes, GREEN 7/7.
81
+ * **The move list tells two organizations with one name apart.** `WhereItLives` draws a
82
+ destination's web address beside a name another destination also carries — in the list and in
83
+ "Move … to …?" — the way GitHub shows owner/name (VERIFIER-19 #9); exports `sharedNameAddress`.
84
+ Needs `@ai-matrx/records` with `TableHomeDestination.slug`. Suite
85
+ `two-organizations-with-one-name-are-told-apart.test.tsx`: RED on the prior bytes, GREEN.
26
86
  * **An inbox kind is a noun.** `WORK_INBOX_KIND_LABEL` (and `ActionInbox.KIND_WORD`) read
27
87
  `Approve` / `Yours` / `Agent`; the bordered kind badge at the left of every row therefore read as
28
88
  a live **Approve** control on each withdrawn and decided item (VERIFIER-19 #6 — the closed row
@@ -37,6 +97,12 @@ No source changes intended and no consumer action required.
37
97
  setting removed must be held as nothing. Suite `a-dashboard-save-says-what-the-store-did-not-keep`:
38
98
  RED 1 on the prior bytes, GREEN 7/7.
39
99
 
100
+ ## 0.85.9
101
+
102
+ Automatic changed-only republish (docs/metadata drift since the last tag — see
103
+ `git diff npm/records-ui/v0.85.7..npm/records-ui/v0.85.9 -- apps/shared/records-ui`).
104
+ No source changes intended and no consumer action required.
105
+
40
106
  ## 0.85.8
41
107
 
42
108
  Automatic changed-only republish (docs/metadata drift since the last tag — see