@ai-matrx/records 0.58.6 → 0.58.7

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,24 @@
1
1
  # Changelog — @ai-matrx/records
2
2
 
3
+ ## 0.58.7
4
+
5
+ Automatic changed-only republish (docs/metadata drift since the last tag — see
6
+ `git diff npm/records/v0.58.6..npm/records/v0.58.7 -- apps/shared/records`).
7
+ No source changes intended and no consumer action required.
8
+
9
+ ## Unreleased — lane SOURCE-KEY (2026-09-25)
10
+
11
+ * **A record-store table's event-source key is `record:<table id>`** (was `custom_record:<table id>`,
12
+ the retired tier-2 table's word). `recordChangeTrigger(tableId)` now writes it; new
13
+ `recordSourceKey(tableId)` is the one builder, and `recordSourceTable(key)` reads the table back
14
+ from either key (rows saved before the move). The store moved first (lane SOURCE-KEY, applied to
15
+ production 2026-09-25 03:29 UTC): `custom.record_change_actions`, `custom.table_webhook_declare`
16
+ and the row-change producer write `record:<table id>`, read both, and turn an older client's
17
+ `custom_record:` key into the new one on the way in, so a schedule saved by an older release
18
+ still fires until the store refuses the old key (the next step, once this release is installed).
19
+ **Consumer action:** anything that compares a trigger's or webhook's key to the literal
20
+ `custom_record:` must use `recordSourceTable(key)`.
21
+
3
22
  ## 0.58.6 (2026-09-24 — published by PUBLISH-SWEEP-5)
4
23
 
5
24
  0.58.5 (the release run's automatic tag, run 36082256533) never reached npm: the live census found
@@ -2332,6 +2332,8 @@ __export(core_exports, {
2332
2332
  predictWriteRefusals: () => predictWriteRefusals,
2333
2333
  publicFormPath: () => publicFormPath,
2334
2334
  recordChangeTrigger: () => recordChangeTrigger,
2335
+ recordSourceKey: () => recordSourceKey,
2336
+ recordSourceTable: () => recordSourceTable,
2335
2337
  rememberedOpCount: () => rememberedOpCount,
2336
2338
  sameDocument: () => sameDocument,
2337
2339
  scopeChip: () => scopeChip,
@@ -2902,10 +2904,18 @@ async function exportPageXlsx(page, labels = {}, sheetLabel = "Records") {
2902
2904
  }
2903
2905
  return XLSX.write(workbook, { type: "array", bookType: "xlsx", compression: true });
2904
2906
  }
2907
+ function recordSourceKey(tableId) {
2908
+ return `record:${tableId}`;
2909
+ }
2910
+ var SOURCE_KEY = /^(record|custom_record):([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/;
2911
+ function recordSourceTable(key) {
2912
+ const m = key ? SOURCE_KEY.exec(key) : null;
2913
+ return m ? m[2] : null;
2914
+ }
2905
2915
  function recordChangeTrigger(tableId, options = {}) {
2906
2916
  return {
2907
2917
  type: "event",
2908
- entity_type: `custom_record:${tableId}`,
2918
+ entity_type: recordSourceKey(tableId),
2909
2919
  table_id: tableId,
2910
2920
  ...options.actions && options.actions.length > 0 ? { actions: options.actions } : {},
2911
2921
  ...options.changedFields && options.changedFields.length > 0 ? { changed_fields: options.changedFields } : {}