@ai-matrx/records 0.54.0 → 0.56.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 +78 -0
- package/dist/core/index.cjs +2485 -8
- package/dist/core/index.cjs.map +1 -1
- package/dist/core/index.d.cts +154 -9
- package/dist/core/index.d.ts +154 -9
- package/dist/core/index.js +2492 -8
- package/dist/core/index.js.map +1 -1
- package/dist/index.cjs +111 -4
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +250 -4
- package/dist/index.d.ts +250 -4
- package/dist/index.js +101 -4
- package/dist/index.js.map +1 -1
- package/dist/react/index.cjs +2495 -8
- package/dist/react/index.cjs.map +1 -1
- package/dist/react/index.d.cts +767 -10
- package/dist/react/index.d.ts +767 -10
- package/dist/react/index.js +2491 -8
- package/dist/react/index.js.map +1 -1
- package/dist/{field-Ct7_iYEF.d.cts → types-RxnWzAWZ.d.cts} +395 -5
- package/dist/{field-Ct7_iYEF.d.ts → types-RxnWzAWZ.d.ts} +395 -5
- package/dist/use-cases/index.cjs +15 -0
- package/dist/use-cases/index.cjs.map +1 -1
- package/dist/use-cases/index.d.cts +3 -336
- package/dist/use-cases/index.d.ts +3 -336
- package/dist/use-cases/index.js +15 -0
- package/dist/use-cases/index.js.map +1 -1
- package/package.json +7 -7
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,83 @@
|
|
|
1
1
|
# Changelog — @ai-matrx/records
|
|
2
2
|
|
|
3
|
+
## 0.56.0
|
|
4
|
+
|
|
5
|
+
**A Person or File column takes an id** (lane RELATION-TARGETS): `coerceTypedAnswer`'s member and
|
|
6
|
+
attachment arms pass a member's user id, an uploaded file's id or the kernel record's own id
|
|
7
|
+
through as the value, because the store resolves it to the Person / File record at every write
|
|
8
|
+
door; a typed NAME is still refused, with the control that holds it.
|
|
9
|
+
|
|
10
|
+
**And the grid's store primitives** (lane GRID-PRIMITIVES), below. Published by PUBLISH-SWEEP-4.
|
|
11
|
+
|
|
12
|
+
### The grid's store primitives
|
|
13
|
+
|
|
14
|
+
**Everything the /data grid rebuild needs from the store, as typed calls** (`src/grid.ts`):
|
|
15
|
+
`tableDecorate` / `tableDecorations` (row color by a choice column, ordered color rules, hand
|
|
16
|
+
highlights on rows, cells and columns — Fields and records by id), `gridLayout` (platform →
|
|
17
|
+
organization knob `custom/grid_layout` → the saved view's own `definition.layout`, each choice
|
|
18
|
+
saying where it came from), `formulaParse` (the older grid's formula text → the store's
|
|
19
|
+
expression), `actionDeclare` / `rowActions` / `actionRun` (a row action on a whole selection in
|
|
20
|
+
ONE transaction; `actionRefusals(error)` lists every record and field that refused),
|
|
21
|
+
`tableWebhookDeclare` / `tableWebhooks` / `tableWebhookArchive` (every record change out to a
|
|
22
|
+
signed webhook), `tableFromExample` (one real use case of `./use-cases`, built whole),
|
|
23
|
+
`autonumberBackfill`, `ioExport` and `exportXlsx` (the export door's own page as an .xlsx, a
|
|
24
|
+
withheld column named on its own sheet). `AggregateOperation` gains `median`, `filled`, `empty`,
|
|
25
|
+
`unique`.
|
|
26
|
+
|
|
27
|
+
**Consumer action:** none until the chair applies the five `gridprim_*` migrations to the main
|
|
28
|
+
database (01:00–04:00 PT) and `pnpm records:generate` lists the doors in `STORE_DOORS`. Until
|
|
29
|
+
then every new method answers `door_absent` naming GRID-PRIMITIVES — never a guess, never an
|
|
30
|
+
empty answer.
|
|
31
|
+
|
|
32
|
+
## 0.55.1
|
|
33
|
+
|
|
34
|
+
**0.55.0, actually published.** The tag `npm/records/v0.55.0` never reached the registry: its
|
|
35
|
+
publish gate failed on `pnpm typecheck` (OLD-TABLES-2's relation-words suite had four type
|
|
36
|
+
errors vitest never reads) and then on two `real-doors` clauses that still asserted the record
|
|
37
|
+
store OFF after STORE-ON's owner ruling made it ON by default. Both are fixed in the suites; no
|
|
38
|
+
runtime byte differs from what 0.55.0 describes below. The version moved rather than the tag
|
|
39
|
+
because a published tag is never rewritten. (lane PUBLISH-SWEEP-4.)
|
|
40
|
+
|
|
41
|
+
## 0.55.0
|
|
42
|
+
|
|
43
|
+
**Three things that were already in the source and had never reached a consumer.** (published
|
|
44
|
+
by lane PUBLISH-SWEEP-4; built by STORE-TXN, OLD-TABLES-2 and ORG-CLEANUP-2, each of which
|
|
45
|
+
landed its work marked "source only, not published".)
|
|
46
|
+
|
|
47
|
+
* **`recordWriteGraph`** — the typed client over `custom.record_write_graph` (lane STORE-TXN).
|
|
48
|
+
A parent, the edges it stands on and the rows that belong to it in ONE transaction, with one
|
|
49
|
+
op id for the whole graph. `recordWrite` and `recordWriteMany` are each one statement, so a
|
|
50
|
+
caller needing a parent and its children to land together had no door: a loop is N
|
|
51
|
+
transactions and a failure on child nineteen leaves a parent standing without the lines it
|
|
52
|
+
promised. Not a second write path — the door calls `custom.record_write_many`,
|
|
53
|
+
`public.assoc_add` and `platform.relation_set`, so every guard and trigger runs once as
|
|
54
|
+
before. `RecordGraphWritten` counts the two edge writers apart (`edge_ids` / `relations`)
|
|
55
|
+
instead of making a caller subtract.
|
|
56
|
+
* **`relationWordsMany` dispatches by store** (lane OLD-TABLES-2). A relation cell holds an id
|
|
57
|
+
and a screen shows words, and there are two stores holding such cells: `custom.record` and
|
|
58
|
+
the pre-doctrine `workbench.udt_*` tables, where most people's data actually sits. ONE client
|
|
59
|
+
primitive now reads both, discriminated by an optional `store` — and **a caller that names
|
|
60
|
+
none reaches exactly the door and the arguments it reached before**, so the thirteen live
|
|
61
|
+
screens on `custom._words_for` change not one line. The older arm goes to
|
|
62
|
+
`workbench.udt_row_words_many` through `WORKBENCH_DOORS` / `WORKBENCH_SCHEMA`, named by hand
|
|
63
|
+
for the same reason `TRUST_DOORS` is (`records:generate` reads `custom` and only `custom`).
|
|
64
|
+
The arms are asymmetric on purpose: the unified arm takes the FIELD because that is where the
|
|
65
|
+
display spec is declared and judged; the older store has no declare-time judge, so its arm
|
|
66
|
+
carries the spec. An id the door answered nothing for stays ABSENT from the map either way —
|
|
67
|
+
inventing "Untitled" would erase the difference between a cell pointing at nothing and a row
|
|
68
|
+
that was refused. New types: `RelationStore`, `RelationDisplaySpec`, `RelationWordsManyArgs`.
|
|
69
|
+
* **The `throwaway` placeholder pattern** (lane ORG-CLEANUP-2) — after 48 organizations named
|
|
70
|
+
"Throwaway Dash 3fee58c2" walked back onto the owner's organization picker overnight and
|
|
71
|
+
`PLACEHOLDER_PATTERNS` could not see one of them: 28 of the 48 carried no `zz` at all. It
|
|
72
|
+
now catches "throwaway", "disposable org", "safe to delete" and "test only", and mirrors
|
|
73
|
+
`iam.placeholder_in_a_name` on the platform database — a pattern added to one belongs in the
|
|
74
|
+
other.
|
|
75
|
+
|
|
76
|
+
Also regenerated `store.generated.ts`, which was stale (`real-doors.test.ts` was red on main
|
|
77
|
+
claiming `record_write_graph` absent while it exists). Proof: `src/__tests__/relation-words-by-store.test.ts`
|
|
78
|
+
goes RED on 3 of 5 clauses with one line of the dispatch reversed. Suite at publish: 105/105
|
|
79
|
+
across 9 files.
|
|
80
|
+
|
|
3
81
|
## 0.54.0
|
|
4
82
|
|
|
5
83
|
**A formula can be re-aimed through a typed door.** (lane STORE-TAILS-2's ask, published by
|