@ai-matrx/messaging 0.7.0 → 0.8.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,26 @@
1
1
  # Changelog — `@ai-matrx/messaging`
2
2
 
3
+ ## 0.8.0 — 2026-09-07
4
+
5
+ **Every conversation in the first real inbox was titled with a raw UUID.** The second live defect
6
+ of the adoption session, found by looking at the screen rather than at a test.
7
+
8
+ ### Fixed
9
+
10
+ - **The participant profile is NESTED under `user`, and the top-level `id` is the participant
11
+ ROW.** The live `get_dm_conversations_with_details` aggregate is
12
+ `{ id, user_id, role, is_muted, last_read_at, user: { user_id, email, display_name, avatar_url } }`.
13
+ This package read `display_name` / `email` / `avatar_url` off the TOP level, found nothing, and
14
+ fell back to the user id — so a direct conversation's title, its avatar, and every participant
15
+ name rendered as a UUID. The nested profile is now the source, `user_id` is the identity, and
16
+ the bare `id` fallback survives only for an aggregate that carries neither — because here `id`
17
+ belongs to a different entity, and using it as a user id attributes a message to a row key.
18
+ - A regression test built from the verbatim live aggregate; it fails against 0.7.0.
19
+
20
+ ### Consumer action (C28)
21
+
22
+ None. Names and avatars simply appear now.
23
+
3
24
  ## 0.7.0 — 2026-09-07
4
25
 
5
26
  🚨 **Every RPC in this package was calling the wrong schema, so every read failed against the
package/dist/index.cjs CHANGED
@@ -798,11 +798,13 @@ function projectParticipants(value, operation) {
798
798
  for (const entry of value) {
799
799
  if (typeof entry !== "object" || entry === null) continue;
800
800
  const record = entry;
801
- const id = str(record, "user_id") ?? str(record, "id");
801
+ const nested = typeof record["user"] === "object" && record["user"] !== null ? record["user"] : {};
802
+ const id = str(record, "user_id") ?? str(nested, "user_id") ?? str(record, "id");
802
803
  if (id === null) continue;
803
804
  summaries.push(
804
805
  projectUserSummary({
805
806
  ...record,
807
+ ...nested,
806
808
  user_id: id
807
809
  })
808
810
  );