@ai-matrx/records-ui 0.61.0 → 0.63.0

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,5 +1,76 @@
1
1
  # Changelog — @ai-matrx/records-ui
2
2
 
3
+ ## 0.63.0
4
+
5
+ **A relation cell finally SHOWS what its column was configured to show, and the
6
+ six hand-rolled copies of "what is this id called" are gone — all six, by moving
7
+ the code, none by allowlisting.** (lane RELATION-DISPLAY-2.)
8
+
9
+ * **The display spec reached the store in 0.62.0 and no screen could read it.**
10
+ REL-DISP gave a relation column a `display` — which of the target's columns it
11
+ shows, in what order, joined by what — and shipped `ReferenceBuilder` to
12
+ configure it. But `labels.tsx`, which every grid, board, gallery, calendar and
13
+ peek cell reads through, resolved names ITSELF: 200 rows of the target Table
14
+ plus `tableList()` for its `title_field`. So a person could set Rincon
15
+ Plumbing's `jobs.customer` to read "first name + last name", press Save, and
16
+ the board would go on drawing "Maria Chen" for both of the Maria Chens. The
17
+ builder wrote a setting that nothing displayed.
18
+ `labels.tsx` now fetches NOTHING up front and asks `relation_words_many` for
19
+ the ids the page actually draws — one call per Field per tick, the store's one
20
+ resolver, this column's own spec, the visibility ladder asked BEFORE the name
21
+ is read, and no 200-row prefetch ceiling. Its own comment recorded the batch
22
+ door as missing ("there is still no batch door on the store"); REL-DISP built
23
+ it, so the per-id `record_read` lane is gone entirely.
24
+ * **`RelationPicker` offers the same words the cell shows.** It had the third
25
+ copy of the derivation, which is why a column configured to read "Maria Chen —
26
+ Rincon" still asked a person to choose between two identical "Maria Chen"s.
27
+ One `relation_words_many` now covers the offered rows AND the already-picked
28
+ ids, so what you pick from and what you read back can never disagree.
29
+ * **`recordNameIn` / `rowNameIn` — the one naming call for a record whose Table
30
+ you already hold.** `Grid` (the Talk action), `Peek` (the peek title),
31
+ `PortalsPanel`'s client picker and the host test bench were each writing
32
+ `recordName(row.document, table.title_field)` out by hand. That is not the
33
+ store's question — there is no id to resolve — but it is the same question
34
+ answered five times in four files, which is how a Table titled by `cname` read
35
+ "Untitled" on one screen and correctly on the next. It lives once now.
36
+ NOT a second resolver: hold an id, and the answer is still the store's.
37
+ * **`check:one-reference-builder` goes from a baseline of SIX to ZERO.** The
38
+ guard shipped saying out loud that allowlisting the six "would be the same lie
39
+ with extra steps". None was allowlisted. Proven red on a planted copy at
40
+ baseline 0, then green.
41
+
42
+ **Consumer action:** none for a host that only mounts these components — the
43
+ change is behind them. A host resolving a relation label itself should delete
44
+ that code and call `client.relationWordsMany`; one holding a Table and a
45
+ document should call `recordNameIn` / `rowNameIn`.
46
+
47
+ ## 0.62.0
48
+
49
+ **THE ONE REFERENCE BUILDER.** (lane RELATION-DISPLAY.)
50
+
51
+ *Written after the fact by lane RELATION-DISPLAY-2 — 0.62.0 published with no
52
+ entry here, and a released version with no changelog row is a version nobody
53
+ downstream can read. Sourced from that lane's own progress note, not invented.*
54
+
55
+ * **`ReferenceBuilder` + `previewWords`** — the one place a reference to another
56
+ table is built. It asks, in the order a person thinks of it: which table →
57
+ what a record of it is called TODAY (its own reference column, SHOWN rather
58
+ than hidden) → only if they want it, which columns instead, in order, with a
59
+ separator → a preview on that table's REAL first rows. `FieldEditor`'s private
60
+ `TableToPointAt` is deleted and this stands in its place.
61
+ * **A relation is asked its questions when EDITING too.** That branch skipped
62
+ every existing column that was not a choice list, so there was nowhere to say
63
+ which columns a link should show — the one thing about an existing relation a
64
+ person most wants to change. The target stays locked there, because the panel
65
+ sends no `relation_target` in a patch and a picker that changed it would be a
66
+ control that silently does nothing.
67
+ * **`looksLikeId` and `WITHHELD_RECORD_LABEL` are exported at last** — they were
68
+ defined and unreachable, so a host could not agree with the package about what
69
+ a name is.
70
+
71
+ **Consumer action:** a surface that lets a person choose a column's target table
72
+ mounts `ReferenceBuilder` instead of building its own dropdown.
73
+
3
74
  ## 0.61.0
4
75
 
5
76
  **A link to a board opens a board, and a cell that is still resolving says what