@ai-matrx/associations 0.7.1 → 0.7.3

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,21 @@
1
1
  # Changelog — @ai-matrx/associations
2
2
 
3
+ ## 0.7.3 — 2026-09-01 (favorites surface in universal recents)
4
+
5
+ - Empty-query universal pickers now include a newly favorited entity even when
6
+ no detail route has stamped `last_viewed_at` yet. Previously the canonical
7
+ favorite write succeeded but the picker silently filtered the row out.
8
+ - Favorites sort ahead of ordinary recents, with view recency preserving the
9
+ order inside each group.
10
+ - A failing-then-passing hook regression covers a favorite with no viewed
11
+ timestamp alongside an ordinary recent item. Full package suite: 191 tests.
12
+
13
+ ## 0.7.2 — 2026-09-01 (verified republish of universal-search repair)
14
+
15
+ - Republishes the 0.7.1 reference-pickable universal-search repair under a
16
+ fresh immutable version because npm accepted 0.7.1 metadata but never served
17
+ its tarball. Consumers must adopt this hash-verified release, not 0.7.1.
18
+
3
19
  ## 0.7.1 — 2026-09-01 (reference-pickable universal search)
4
20
 
5
21
  - Universal search and attach defaults now use `registry.listableTokens()`.
@@ -1472,8 +1472,11 @@ async function loadRecents(store, tokens) {
1472
1472
  if (!res.ok) return [];
1473
1473
  const tokenSet = new Set(tokens);
1474
1474
  const rows = res.data.items.filter(
1475
- (i) => tokenSet.has(i.entityType) && isEntityTypeToken(i.entityType) && i.lastViewedAt
1476
- ).sort((a, b) => (b.lastViewedAt ?? "").localeCompare(a.lastViewedAt ?? "")).slice(0, RECENTS_LIMIT);
1475
+ (i) => tokenSet.has(i.entityType) && isEntityTypeToken(i.entityType) && (i.isFavorite || i.lastViewedAt)
1476
+ ).sort((a, b) => {
1477
+ if (a.isFavorite !== b.isFavorite) return a.isFavorite ? -1 : 1;
1478
+ return (b.lastViewedAt ?? "").localeCompare(a.lastViewedAt ?? "");
1479
+ }).slice(0, RECENTS_LIMIT);
1477
1480
  if (rows.length === 0) return [];
1478
1481
  const byToken = /* @__PURE__ */ new Map();
1479
1482
  for (const r of rows) {