@ai-matrx/agents 0.21.3 → 0.21.5

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,11 +1,64 @@
1
1
  # Changelog
2
2
 
3
- ## 0.21.3
3
+ ## 0.21.5
4
+
5
+ ### Fixed (in `./context`)
6
+
7
+ - A record that merely has a `content` key (a note `{ id, title, content }`) was treated as a rich
8
+ envelope: its size was measured on `.content` only, and it was sent as
9
+ `{ id, title, content, label, max_inline_chars }`, which the server reads as raw content — the
10
+ page limit was silently lost. Envelope detection now matches the server exactly: own `content`
11
+ and every key in `RICH_ENVELOPE_KEYS` (aidream `_RICH_FORM_KEYS`); anything else is wrapped as
12
+ `{ content: record, … }`. Applies to `resolveContextRow` sizing, `buildContextWire` and
13
+ `serverDefaultMax`.
14
+
15
+ ### Added
16
+
17
+ - `RICH_ENVELOPE_KEYS`, `isRichEnvelope(value)`, `splitContextValue(value)` (the twin of aidream
18
+ `_split_rich_context_value`). Corpus `envelope_cases`, run here and by aidream pytest.
19
+
20
+ ### Consumer action
21
+
22
+ - matrx-frontend: no API change; drop any local "is this an envelope" check in favor of
23
+ `isRichEnvelope` / `splitContextValue` from `@ai-matrx/agents/context`.
24
+
25
+ ## 0.21.4
4
26
 
5
27
  Automatic changed-only republish (docs/metadata drift since the last tag — see
6
- `git diff npm/matrx-agents/v0.21.2..npm/matrx-agents/v0.21.3 -- apps/shared/matrx-agents`).
28
+ `git diff npm/matrx-agents/v0.21.3..npm/matrx-agents/v0.21.4 -- apps/shared/matrx-agents`).
7
29
  No source changes intended and no consumer action required.
8
30
 
31
+ ## 0.21.3
32
+
33
+ ### Added (in `./context`)
34
+
35
+ - `serverDefaultMax(value)` + `LAZY_SOURCE_DEFAULT_MAX` (6000): the server's per-key default
36
+ for a wire value (envelope `default_max_inline_chars`; resource reference → 0; lazy source
37
+ → 6000). `resolveContextRow` uses it for `layers.default_max` when the source sets none.
38
+ Parity: new `server_default_cases` in the corpus, run here and by aidream pytest through
39
+ `normalize_resource_context` → `ContextManifest.build` → `_server_default_max`.
40
+ - `receiptRowToResolved(row)` — a receipt row as a read-only table row (sent messages).
41
+ - `compareReceipt` now returns `modelReadsContext`; when the receipt says the model reads no
42
+ context, `delivery` is not compared (include / limit / your rule still are).
43
+
44
+ ### Fixed
45
+
46
+ - A source-only lazy pointer (`{ source, type, label }`, no `content`) now ships as the pointer
47
+ itself (it was wrapped as `{ content: <pointer> }`), and its size is unknown (`null`) instead
48
+ of the pointer's own JSON length.
49
+
50
+ ### Changed (in `./context/react`)
51
+
52
+ - `ContextRulesChip`: `on` / `onToggleAll` are optional — no page, no master switch. New
53
+ `modelReadsContext` prop: false shows a muted eye-off face, the tooltip "This model can't read
54
+ context", and no amber.
55
+
56
+ ### Consumer action
57
+
58
+ - matrx-frontend: pass `modelReadsContext={result.modelReadsContext}` from `compareReceipt` to
59
+ `ContextRulesChip`; omit `on` where the composer has no page; render sent messages' context
60
+ with `receipt.rows.map(receiptRowToResolved)` in a `readOnly` `ContextRulesTable`.
61
+
9
62
  ## 0.21.2
10
63
 
11
64
  Automatic changed-only republish (docs/metadata drift since the last tag — see