@ai-matrx/records 0.55.1 → 0.57.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,53 @@
1
1
  # Changelog — @ai-matrx/records
2
2
 
3
+ ## 0.57.0
4
+
5
+ **The grid primitives are live, so their doors are in the catalogue.** (published by lane
6
+ PUBLISH-SWEEP-4; built by GRID-PRIMITIVES.) The 2026-09-23 chair window applied G1–G8 to the main
7
+ database and `pnpm records:generate` was re-run (`8df00afbb3`, `fa3434f967`): `store.generated.ts`
8
+ now lists 605 doors, so `tableDecorate`, `gridLayout`, `actionRun`, the table webhooks and the rest
9
+ of 0.56.0's grid methods reach the store instead of answering `door_absent`.
10
+
11
+ * **`recordChangeTrigger(tableId, { actions, changedFields })`** (G8) builds the event-schedule
12
+ trigger that runs an agent when a row changes, the same way in either store; the scheduler's
13
+ one matcher hears it, and the store switch is honoured.
14
+ * **`54000` maps to `store_limit`.** The grid doors refuse past an organization ceiling
15
+ (`custom/example_rows_max`, `custom/table_webhooks_max`, the action-selection and decoration
16
+ limits) with 54000 and the knob named in the hint; before this it would have read as `internal`.
17
+ * The refusal census now exempts exactly one raise: `custom.action_run`'s self-caught P0001 probe,
18
+ and only while it is the sole raiser and the probe sentence is still in the live body.
19
+
20
+ Suite 111/111, `check:store-registry` OK against the live store.
21
+
22
+ ## 0.56.0
23
+
24
+ **A Person or File column takes an id** (lane RELATION-TARGETS): `coerceTypedAnswer`'s member and
25
+ attachment arms pass a member's user id, an uploaded file's id or the kernel record's own id
26
+ through as the value, because the store resolves it to the Person / File record at every write
27
+ door; a typed NAME is still refused, with the control that holds it.
28
+
29
+ **And the grid's store primitives** (lane GRID-PRIMITIVES), below. Published by PUBLISH-SWEEP-4.
30
+
31
+ ### The grid's store primitives
32
+
33
+ **Everything the /data grid rebuild needs from the store, as typed calls** (`src/grid.ts`):
34
+ `tableDecorate` / `tableDecorations` (row color by a choice column, ordered color rules, hand
35
+ highlights on rows, cells and columns — Fields and records by id), `gridLayout` (platform →
36
+ organization knob `custom/grid_layout` → the saved view's own `definition.layout`, each choice
37
+ saying where it came from), `formulaParse` (the older grid's formula text → the store's
38
+ expression), `actionDeclare` / `rowActions` / `actionRun` (a row action on a whole selection in
39
+ ONE transaction; `actionRefusals(error)` lists every record and field that refused),
40
+ `tableWebhookDeclare` / `tableWebhooks` / `tableWebhookArchive` (every record change out to a
41
+ signed webhook), `tableFromExample` (one real use case of `./use-cases`, built whole),
42
+ `autonumberBackfill`, `ioExport` and `exportXlsx` (the export door's own page as an .xlsx, a
43
+ withheld column named on its own sheet). `AggregateOperation` gains `median`, `filled`, `empty`,
44
+ `unique`.
45
+
46
+ **Consumer action:** none until the chair applies the five `gridprim_*` migrations to the main
47
+ database (01:00–04:00 PT) and `pnpm records:generate` lists the doors in `STORE_DOORS`. Until
48
+ then every new method answers `door_absent` naming GRID-PRIMITIVES — never a guess, never an
49
+ empty answer.
50
+
3
51
  ## 0.55.1
4
52
 
5
53
  **0.55.0, actually published.** The tag `npm/records/v0.55.0` never reached the registry: its