@ai-matrx/kit 0.12.1 → 0.13.2

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,36 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.13.2 — 2026-09-12
4
+
5
+ Surface capture now omits nested optional properties whose values are
6
+ `undefined` before enforcing the immutable JSON boundary. This preserves the
7
+ strict public validator while allowing declared application scopes, such as
8
+ task records with optional fields, to become valid transfer drafts.
9
+
10
+ **Consumer action:** update to 0.13.2. No host configuration changes are
11
+ required.
12
+
13
+ ## 0.13.1 — 2026-09-12
14
+
15
+ Publishes the new `content-transfer` module with source-consumer compatibility
16
+ for TypeScript's `erasableSyntaxOnly` mode. The error class now uses explicit
17
+ readonly field assignments instead of constructor parameter properties; runtime
18
+ behavior is unchanged.
19
+
20
+ Version 0.13.0 was cancelled before npm publication after the source-consumer
21
+ diagnostic was found. No `0.13.0` registry artifact exists.
22
+
23
+ **Consumer action:** adopt `@ai-matrx/kit/content-transfer` as described below
24
+ and remove equivalent host implementations.
25
+
26
+ ## 0.13.0 — 2026-09-12
27
+
28
+ **`content-transfer` adds the shared Matrx Alchemy core.** It supplies immutable normalized captures, projection-before-draft, explicit all-matching collection, deterministic table/JSON serializers, omission-aware preparation, and a result-returning clipboard/download transport. `marked` and `dompurify` are runtime dependencies solely for lazy, sanitized Markdown rich-copy conversion; no hand-rolled Markdown-to-HTML converter ships here.
29
+
30
+ **Consumer action:** import the universal capture/prepare/export primitives from
31
+ `@ai-matrx/kit/content-transfer`. Matrx-owned consumers must remove equivalent
32
+ host implementations when adopting the Alchemy package family.
33
+
3
34
  ## 0.12.1 — 2026-09-12
4
35
 
5
36
  **`formatUsd` groups thousands and learns `digits: "adaptive"`.** Both were
package/README.md CHANGED
@@ -26,6 +26,9 @@ npm install @ai-matrx/kit
26
26
  | `@ai-matrx/kit/autosave` | `useAutosave` | Debounced autosave with in-flight coalescing, a UI status (`idle/unsaved/saving/saved/error`), loud non-throwing failures that re-queue the payload, and flush-on-unmount so no keystroke is ever lost. |
27
27
  | `@ai-matrx/kit/latest-request` | `useLatestRequest` | Makes a superseded async response impossible to apply: claim an attempt, then check the predicate before every state write after an `await`. Kills the out-of-order-response bug (the wrong record under a confident label) at the only moment that matters — apply time. Render-stable by construction. |
28
28
  | `@ai-matrx/kit/clipboard` | `useClipboard` | Copy/paste text, links, and images with the browser quirks solved: canvas→PNG re-encode for image copy, Safari `clipboard.read` feature detection, param-stripping link copy. Notifier injected — wrap your own toast. |
29
+ | `@ai-matrx/kit/content-transfer` | snapshot, preparation, serializers, `createBrowserTransport` | Immutable projected content snapshots, explicit omission evidence, JSON/table formats, and rich clipboard/download outcomes. Browser APIs are used only when delivery is requested. |
30
+
31
+ Surface handles omit own object properties whose captured value is `undefined`, recursively, so host optional fields retain absent-value semantics. This exception belongs only to declared surface capture: `normalizeTransferJson` remains strict, and array `undefined` entries or sparse slots still fail at their JSON pointer.
29
32
 
30
33
  | `@ai-matrx/kit/search-scoring` | `filterAndSortBySearch`, `computeSearchScore`, `matchesSearch`, `idMatchesQuery` | Relevance-weighted search ranking — title above description, exact above prefix above includes, pasted-UUID matching — instead of the naive `.includes()` filter. |
31
34
  | `@ai-matrx/kit/concurrency` | `runWithConcurrency` | Bounded worker pool over an array with per-item failure isolation and a cooperative `shouldStart()` cancel hook. |