@rudderhq/server 0.6.5-canary.0 → 0.6.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/dist/services/chats.attention-order.d.ts +0 -5
- package/dist/services/chats.attention-order.d.ts.map +1 -1
- package/dist/services/chats.attention-order.js +2 -51
- package/dist/services/chats.attention-order.js.map +1 -1
- package/dist/services/chats.d.ts.map +1 -1
- package/dist/services/chats.js +9 -14
- package/dist/services/chats.js.map +1 -1
- package/dist/services/chats.types.d.ts +0 -1
- package/dist/services/chats.types.d.ts.map +1 -1
- package/dist/services/messenger-thread-summary-order.d.ts +1 -3
- package/dist/services/messenger-thread-summary-order.d.ts.map +1 -1
- package/dist/services/messenger-thread-summary-order.js +0 -21
- package/dist/services/messenger-thread-summary-order.js.map +1 -1
- package/dist/services/messenger-thread-summary-order.test.d.ts +2 -0
- package/dist/services/messenger-thread-summary-order.test.d.ts.map +1 -0
- package/dist/services/messenger-thread-summary-order.test.js +62 -0
- package/dist/services/messenger-thread-summary-order.test.js.map +1 -0
- package/dist/services/messenger.d.ts.map +1 -1
- package/dist/services/messenger.js +0 -1
- package/dist/services/messenger.js.map +1 -1
- package/package.json +13 -13
- package/ui-dist/assets/{LibraryLiveSurface-DK_shLMO.js → LibraryLiveSurface-DpX1FaVs.js} +1 -1
- package/ui-dist/assets/{abnfDiagram-VRR7QNED-BNs5ey4K.js → abnfDiagram-VRR7QNED-BFqFFwVV.js} +1 -1
- package/ui-dist/assets/{arc-Ckyxwfsp.js → arc-Dd7KXY7D.js} +1 -1
- package/ui-dist/assets/{architectureDiagram-ZJ3FMSHR-CJFgyCHF.js → architectureDiagram-ZJ3FMSHR-CzfeXkyX.js} +1 -1
- package/ui-dist/assets/{blockDiagram-677ZJIJ3-CxqCKEwp.js → blockDiagram-677ZJIJ3-BSiL3FsI.js} +1 -1
- package/ui-dist/assets/{c4Diagram-LMCZKHZV-CfVUwZXE.js → c4Diagram-LMCZKHZV-BjT_aSi4.js} +1 -1
- package/ui-dist/assets/channel-C3u-3GHU.js +1 -0
- package/ui-dist/assets/{chunk-2Q5K7J3B-BgFdoqcv.js → chunk-2Q5K7J3B-CtGd7b4J.js} +1 -1
- package/ui-dist/assets/{chunk-32BRIVSS-C7YmmAau.js → chunk-32BRIVSS-DLOelT5l.js} +1 -1
- package/ui-dist/assets/{chunk-5VM5RSS4-CzhcoGoa.js → chunk-5VM5RSS4-BUPqCqOC.js} +1 -1
- package/ui-dist/assets/{chunk-EX3LRPZG-Don-SFO1.js → chunk-EX3LRPZG-CIzOp80L.js} +1 -1
- package/ui-dist/assets/{chunk-JWPE2WC7-XzpuBw7S.js → chunk-JWPE2WC7-CQ6lawYC.js} +1 -1
- package/ui-dist/assets/{chunk-MOJQB5TN-Cs0QVjOl.js → chunk-MOJQB5TN-6yDvAm1z.js} +1 -1
- package/ui-dist/assets/{chunk-RYQCIY6F-BrVJj0fC.js → chunk-RYQCIY6F-BsWFsIK3.js} +1 -1
- package/ui-dist/assets/{chunk-V7JOEXUC-I5dhQ16l.js → chunk-V7JOEXUC-C90E5Ayd.js} +1 -1
- package/ui-dist/assets/{chunk-VR4S4FIN-yp45ozgw.js → chunk-VR4S4FIN-CRCxXqZI.js} +1 -1
- package/ui-dist/assets/{chunk-XXDRQBXY-Bv4azKWj.js → chunk-XXDRQBXY-B3don1Cz.js} +1 -1
- package/ui-dist/assets/classDiagram-OUVF2IWQ-NsiQrj0J.js +1 -0
- package/ui-dist/assets/classDiagram-v2-EOCWNBFH-NsiQrj0J.js +1 -0
- package/ui-dist/assets/{cose-bilkent-JH36ORCC-DqdIwR5X.js → cose-bilkent-JH36ORCC-DEP7BeI3.js} +1 -1
- package/ui-dist/assets/{cynefin-VYW2F7L2-V0VcQysm.js → cynefin-VYW2F7L2-CJVhT4Mh.js} +1 -1
- package/ui-dist/assets/{cynefinDiagram-TSTJHNR4-DLH6lRAc.js → cynefinDiagram-TSTJHNR4-BaE-6YFm.js} +1 -1
- package/ui-dist/assets/{dagre-VKFMJZFB-DtxeSaMy.js → dagre-VKFMJZFB-DjLUyC8r.js} +1 -1
- package/ui-dist/assets/{diagram-FQU43EPY-BVsPhTmj.js → diagram-FQU43EPY-qFPhWckH.js} +1 -1
- package/ui-dist/assets/{diagram-G47NLZAW-DLpEf5v7.js → diagram-G47NLZAW-x2c8-YSi.js} +1 -1
- package/ui-dist/assets/{diagram-NH7WQ7WH-cbRKFbpp.js → diagram-NH7WQ7WH-DVJZnTdn.js} +1 -1
- package/ui-dist/assets/{diagram-OA4YK3LP-DcLsZShl.js → diagram-OA4YK3LP-CGmPSCZl.js} +1 -1
- package/ui-dist/assets/{diagram-WEI45ONY-BdgWvwuT.js → diagram-WEI45ONY-CVrk0gkQ.js} +1 -1
- package/ui-dist/assets/{ebnfDiagram-CCIWWBDH-VZZAjZ0y.js → ebnfDiagram-CCIWWBDH-ERUk1pe4.js} +1 -1
- package/ui-dist/assets/{erDiagram-Q63AITRT-FcgmpHRn.js → erDiagram-Q63AITRT-CTI3QQAr.js} +1 -1
- package/ui-dist/assets/{flowDiagram-23GEKE2U-7B0xzRxc.js → flowDiagram-23GEKE2U-CEsaHxu3.js} +1 -1
- package/ui-dist/assets/{ganttDiagram-NO4QXBWP-Bm8SKlLO.js → ganttDiagram-NO4QXBWP-gzxhoaFK.js} +1 -1
- package/ui-dist/assets/{gitGraphDiagram-IHSO6WYX-DtxEARvQ.js → gitGraphDiagram-IHSO6WYX-DTL52PDj.js} +1 -1
- package/ui-dist/assets/{graph-4DRB0kfJ.js → graph-Amp0nqof.js} +1 -1
- package/ui-dist/assets/{index-Dk8hzIyo.js → index-B1m6wL07.js} +1 -1
- package/ui-dist/assets/{index-CiqGOXnt.js → index-BHESmW5p.js} +1 -1
- package/ui-dist/assets/{index-CJkoLuWi.js → index-BI4_BIid.js} +488 -488
- package/ui-dist/assets/{index-AUxiC7D4.js → index-BV7fBmZ3.js} +1 -1
- package/ui-dist/assets/{index-CFjJnsV3.js → index-BcVy8ihr.js} +1 -1
- package/ui-dist/assets/{index-DhgZ5cmq.js → index-CPDrDmuH.js} +1 -1
- package/ui-dist/assets/{index-DWBhj5oK.js → index-CRXGUaWn.js} +1 -1
- package/ui-dist/assets/{index-C_YSTWkX.js → index-CSzq_DKH.js} +1 -1
- package/ui-dist/assets/{index-yi942t6h.js → index-CepgLuN-.js} +1 -1
- package/ui-dist/assets/{index-By_SJcjB.js → index-DYrmKlSC.js} +1 -1
- package/ui-dist/assets/{index-DTgddYM8.js → index-D___9Wjc.js} +1 -1
- package/ui-dist/assets/{index-CYrgR6oC.js → index-DoitzL1N.js} +1 -1
- package/ui-dist/assets/{index-gXg8eQej.js → index-HtRgAJ4M.js} +1 -1
- package/ui-dist/assets/{index-qs76sre0.js → index-QQAVYTub.js} +1 -1
- package/ui-dist/assets/{index-BUOn6vyG.js → index-gr3tM_aY.js} +1 -1
- package/ui-dist/assets/{index-D9jyoGcg.js → index-msFHymhK.js} +1 -1
- package/ui-dist/assets/{index-7qQB1CXH.js → index-v7MQxR2M.js} +1 -1
- package/ui-dist/assets/{index-D9ZcZfyC.js → index-xJT81p6g.js} +1 -1
- package/ui-dist/assets/{infoDiagram-FWYZ7A6U-Dyoc4tA8.js → infoDiagram-FWYZ7A6U-DGE65dHv.js} +1 -1
- package/ui-dist/assets/{ishikawaDiagram-FXEZZL3T-Bs1AcAzN.js → ishikawaDiagram-FXEZZL3T-Cd4UBCAL.js} +1 -1
- package/ui-dist/assets/{journeyDiagram-5HDEW3XC-DGIZQgEA.js → journeyDiagram-5HDEW3XC-DGgKZBkH.js} +1 -1
- package/ui-dist/assets/{kanban-definition-HUTT4EX6-9KTfE7uu.js → kanban-definition-HUTT4EX6-BKEVE30G.js} +1 -1
- package/ui-dist/assets/{layout-8UhAXXZP.js → layout-ok0OdtMA.js} +1 -1
- package/ui-dist/assets/{linear-CLLXEbCL.js → linear-BIUm0r-d.js} +1 -1
- package/ui-dist/assets/{map-Bl6yWaCO.js → map-B3hrNe5c.js} +1 -1
- package/ui-dist/assets/{mermaid.core-B0tGZ5JG.js → mermaid.core-BB3ZW0W5.js} +4 -4
- package/ui-dist/assets/{mindmap-definition-LN4V7U3C-CezDzfgP.js → mindmap-definition-LN4V7U3C-Ce2GzycL.js} +1 -1
- package/ui-dist/assets/{pegDiagram-2B236MQR-Dcr1KWJm.js → pegDiagram-2B236MQR-CsGZjyrh.js} +1 -1
- package/ui-dist/assets/{pieDiagram-ENE6RG2P-Bxr840vw.js → pieDiagram-ENE6RG2P-13XdwDXP.js} +1 -1
- package/ui-dist/assets/{quadrantDiagram-ABIIQ3AL-DHIF8RZG.js → quadrantDiagram-ABIIQ3AL-Dp1K1uSq.js} +1 -1
- package/ui-dist/assets/{railroadDiagram-RFXS5EU6-D2ncWfSt.js → railroadDiagram-RFXS5EU6-Dw5jHw28.js} +1 -1
- package/ui-dist/assets/{requirementDiagram-TGXJPOKE-Bij5Rcol.js → requirementDiagram-TGXJPOKE-C3_H_i7q.js} +1 -1
- package/ui-dist/assets/{sankeyDiagram-HTMAVEWB-Dtkw4OGI.js → sankeyDiagram-HTMAVEWB-DTEaptJZ.js} +1 -1
- package/ui-dist/assets/{sequenceDiagram-DBY2YBRQ-BJDTvmD9.js → sequenceDiagram-DBY2YBRQ-DPbvDbuP.js} +1 -1
- package/ui-dist/assets/{sizeCapture-X5ZJPWSS-tQ9WqtJx.js → sizeCapture-X5ZJPWSS-Ck2fmKhq.js} +1 -1
- package/ui-dist/assets/{stateDiagram-2N3HPSRC-BwcAX_WF.js → stateDiagram-2N3HPSRC-DpRZgrRj.js} +1 -1
- package/ui-dist/assets/stateDiagram-v2-6OUMAXLB-DgWbRGjL.js +1 -0
- package/ui-dist/assets/{swimlanes-5IMT3BWC-BzvgxlAr.js → swimlanes-5IMT3BWC-hhbRmwUj.js} +2 -2
- package/ui-dist/assets/swimlanesDiagram-G3AALYLV-DArbKvVx.js +8 -0
- package/ui-dist/assets/{timeline-definition-FHXFAJF6-C8sjJJP5.js → timeline-definition-FHXFAJF6-DdDMc8Ts.js} +1 -1
- package/ui-dist/assets/{vennDiagram-L72KCM5P-CsoRY5Bj.js → vennDiagram-L72KCM5P-o_kY0dM1.js} +1 -1
- package/ui-dist/assets/{wardleyDiagram-EHGQE667-Bi-D0h0K.js → wardleyDiagram-EHGQE667-DSHITBPO.js} +1 -1
- package/ui-dist/assets/{xychartDiagram-FW5EYKEG-CIglSB-b.js → xychartDiagram-FW5EYKEG-CDaFkU2E.js} +1 -1
- package/ui-dist/index.html +1 -1
- package/ui-dist/assets/channel-U76Poeuh.js +0 -1
- package/ui-dist/assets/classDiagram-OUVF2IWQ-CiKY0-ZW.js +0 -1
- package/ui-dist/assets/classDiagram-v2-EOCWNBFH-CiKY0-ZW.js +0 -1
- package/ui-dist/assets/stateDiagram-v2-6OUMAXLB-BX8gB2_j.js +0 -1
- package/ui-dist/assets/swimlanesDiagram-G3AALYLV-BKj4hY4N.js +0 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chats.types.d.ts","sourceRoot":"","sources":["../../src/services/chats.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAE1D,KAAK,UAAU,GAAG,OAAO,YAAY,CAAC,YAAY,CAAC;AAEnD,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,iBAAiB,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,UAAU,GAAG;IAC7C,iBAAiB,CAAC,EAAE;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;KACxB,GAAG,IAAI,CAAC;CACV,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,
|
|
1
|
+
{"version":3,"file":"chats.types.d.ts","sourceRoot":"","sources":["../../src/services/chats.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAE1D,KAAK,UAAU,GAAG,OAAO,YAAY,CAAC,YAAY,CAAC;AAEnD,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,iBAAiB,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,UAAU,GAAG;IAC7C,iBAAiB,CAAC,EAAE;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;KACxB,GAAG,IAAI,CAAC;CACV,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,UAAU,EAAE,IAAI,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,MAAM,EAAE,mBAAmB,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAAC"}
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
import type { MessengerThreadSummary } from "@rudderhq/shared";
|
|
2
2
|
export type ThreadSummaryCursor = {
|
|
3
|
-
attentionRank: number;
|
|
4
3
|
activityAt: string;
|
|
5
4
|
title: string;
|
|
6
5
|
threadKey: string;
|
|
7
6
|
isPinned: boolean;
|
|
8
7
|
};
|
|
9
|
-
|
|
10
|
-
type OrderableThreadSummary = Pick<MessengerThreadSummary, "latestActivityAt" | "title" | "unreadCount" | "needsAttention" | "metadata"> & {
|
|
8
|
+
type OrderableThreadSummary = Pick<MessengerThreadSummary, "latestActivityAt" | "title"> & {
|
|
11
9
|
threadKey?: string;
|
|
12
10
|
isPinned?: boolean;
|
|
13
11
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messenger-thread-summary-order.d.ts","sourceRoot":"","sources":["../../src/services/messenger-thread-summary-order.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAE/D,MAAM,MAAM,mBAAmB,GAAG;IAChC,
|
|
1
|
+
{"version":3,"file":"messenger-thread-summary-order.d.ts","sourceRoot":"","sources":["../../src/services/messenger-thread-summary-order.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAE/D,MAAM,MAAM,mBAAmB,GAAG;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,KAAK,sBAAsB,GAAG,IAAI,CAChC,sBAAsB,EACtB,kBAAkB,GAAG,OAAO,CAC7B,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAE/C,wBAAgB,uBAAuB,CACrC,CAAC,EAAE,sBAAsB,EACzB,CAAC,EAAE,sBAAsB,UAS1B;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,sBAAsB,UAWxE;AAED,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAChC,mBAAmB,GAAG,IAAI,CAsB5B;AAED,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,sBAAsB,EAC/B,MAAM,EAAE,mBAAmB,GAAG,IAAI,WASnC"}
|
|
@@ -1,20 +1,7 @@
|
|
|
1
|
-
export function threadSummaryAttentionRank(summary) {
|
|
2
|
-
if (summary.unreadCount > 0 || summary.needsAttention)
|
|
3
|
-
return 0;
|
|
4
|
-
if ((typeof summary.metadata?.activeExecutionRunId === "string"
|
|
5
|
-
&& summary.metadata.activeExecutionRunId.length > 0)
|
|
6
|
-
|| (typeof summary.metadata?.activeGenerationId === "string"
|
|
7
|
-
&& summary.metadata.activeGenerationId.length > 0))
|
|
8
|
-
return 1;
|
|
9
|
-
return 2;
|
|
10
|
-
}
|
|
11
1
|
export function comparePinnedThenLatest(a, b) {
|
|
12
2
|
const pinnedDiff = Number(Boolean(b.isPinned)) - Number(Boolean(a.isPinned));
|
|
13
3
|
if (pinnedDiff !== 0)
|
|
14
4
|
return pinnedDiff;
|
|
15
|
-
const attentionDiff = threadSummaryAttentionRank(a) - threadSummaryAttentionRank(b);
|
|
16
|
-
if (attentionDiff !== 0)
|
|
17
|
-
return attentionDiff;
|
|
18
5
|
const aTime = a.latestActivityAt?.getTime() ?? Number.NEGATIVE_INFINITY;
|
|
19
6
|
const bTime = b.latestActivityAt?.getTime() ?? Number.NEGATIVE_INFINITY;
|
|
20
7
|
if (aTime !== bTime)
|
|
@@ -27,7 +14,6 @@ export function encodeThreadSummaryCursor(summary) {
|
|
|
27
14
|
? new Date(summary.latestActivityAt)
|
|
28
15
|
: new Date(0);
|
|
29
16
|
const payload = {
|
|
30
|
-
attentionRank: threadSummaryAttentionRank(summary),
|
|
31
17
|
activityAt: (Number.isNaN(activityAt.getTime()) ? new Date(0) : activityAt).toISOString(),
|
|
32
18
|
title: summary.title,
|
|
33
19
|
threadKey: summary.threadKey,
|
|
@@ -47,10 +33,6 @@ export function decodeThreadSummaryCursor(cursor) {
|
|
|
47
33
|
|| decoded.threadKey.length === 0)
|
|
48
34
|
return null;
|
|
49
35
|
return {
|
|
50
|
-
attentionRank: typeof decoded.attentionRank === "number"
|
|
51
|
-
&& Number.isFinite(decoded.attentionRank)
|
|
52
|
-
? decoded.attentionRank
|
|
53
|
-
: 2,
|
|
54
36
|
activityAt: decoded.activityAt,
|
|
55
37
|
title: decoded.title,
|
|
56
38
|
threadKey: decoded.threadKey,
|
|
@@ -69,9 +51,6 @@ export function threadSummaryIsAfterCursor(summary, cursor) {
|
|
|
69
51
|
title: cursor.title,
|
|
70
52
|
threadKey: cursor.threadKey,
|
|
71
53
|
isPinned: cursor.isPinned,
|
|
72
|
-
unreadCount: cursor.attentionRank === 0 ? 1 : 0,
|
|
73
|
-
needsAttention: cursor.attentionRank === 0,
|
|
74
|
-
metadata: cursor.attentionRank === 1 ? { activeGenerationId: "cursor" } : undefined,
|
|
75
54
|
}) > 0;
|
|
76
55
|
}
|
|
77
56
|
//# sourceMappingURL=messenger-thread-summary-order.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messenger-thread-summary-order.js","sourceRoot":"","sources":["../../src/services/messenger-thread-summary-order.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"messenger-thread-summary-order.js","sourceRoot":"","sources":["../../src/services/messenger-thread-summary-order.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messenger-thread-summary-order.test.d.ts","sourceRoot":"","sources":["../../src/services/messenger-thread-summary-order.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { describe, expect, it } from "vitest";
|
|
2
|
+
import { comparePinnedThenLatest, decodeThreadSummaryCursor, encodeThreadSummaryCursor, threadSummaryIsAfterCursor, } from "./messenger-thread-summary-order.js";
|
|
3
|
+
function summary(threadKey, latestActivityAt, overrides = {}) {
|
|
4
|
+
return {
|
|
5
|
+
threadKey,
|
|
6
|
+
kind: "chat",
|
|
7
|
+
title: threadKey,
|
|
8
|
+
preview: null,
|
|
9
|
+
subtitle: null,
|
|
10
|
+
href: `/messenger/${threadKey}`,
|
|
11
|
+
latestActivityAt: new Date(latestActivityAt),
|
|
12
|
+
lastReadAt: null,
|
|
13
|
+
unreadCount: 0,
|
|
14
|
+
needsAttention: false,
|
|
15
|
+
isPinned: false,
|
|
16
|
+
metadata: {},
|
|
17
|
+
...overrides,
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
describe("Messenger thread summary ordering", () => {
|
|
21
|
+
it("keeps pinning first and otherwise ignores unread and processing state", () => {
|
|
22
|
+
const pinnedRead = summary("chat:pinned", "2026-07-29T08:00:00.000Z", {
|
|
23
|
+
isPinned: true,
|
|
24
|
+
});
|
|
25
|
+
const newestRead = summary("chat:newest", "2026-07-29T12:00:00.000Z");
|
|
26
|
+
const processing = summary("chat:processing", "2026-07-29T11:00:00.000Z", {
|
|
27
|
+
metadata: { activeGenerationId: "generation-1" },
|
|
28
|
+
});
|
|
29
|
+
const oldestUnread = summary("chat:unread", "2026-07-29T10:00:00.000Z", {
|
|
30
|
+
unreadCount: 1,
|
|
31
|
+
needsAttention: true,
|
|
32
|
+
});
|
|
33
|
+
expect([oldestUnread, processing, newestRead, pinnedRead]
|
|
34
|
+
.sort(comparePinnedThenLatest)
|
|
35
|
+
.map((item) => item.threadKey)).toEqual([
|
|
36
|
+
"chat:pinned",
|
|
37
|
+
"chat:newest",
|
|
38
|
+
"chat:processing",
|
|
39
|
+
"chat:unread",
|
|
40
|
+
]);
|
|
41
|
+
});
|
|
42
|
+
it("uses latest activity cursor position regardless of attention state", () => {
|
|
43
|
+
const middleProcessing = summary("chat:processing", "2026-07-29T11:00:00.000Z", {
|
|
44
|
+
metadata: { activeGenerationId: "generation-1" },
|
|
45
|
+
});
|
|
46
|
+
const cursor = decodeThreadSummaryCursor(encodeThreadSummaryCursor(middleProcessing));
|
|
47
|
+
const newerRead = summary("chat:newer", "2026-07-29T12:00:00.000Z");
|
|
48
|
+
const olderUnread = summary("chat:older", "2026-07-29T10:00:00.000Z", {
|
|
49
|
+
unreadCount: 1,
|
|
50
|
+
needsAttention: true,
|
|
51
|
+
});
|
|
52
|
+
expect(cursor).toEqual({
|
|
53
|
+
activityAt: "2026-07-29T11:00:00.000Z",
|
|
54
|
+
title: "chat:processing",
|
|
55
|
+
threadKey: "chat:processing",
|
|
56
|
+
isPinned: false,
|
|
57
|
+
});
|
|
58
|
+
expect(threadSummaryIsAfterCursor(newerRead, cursor)).toBe(false);
|
|
59
|
+
expect(threadSummaryIsAfterCursor(olderUnread, cursor)).toBe(true);
|
|
60
|
+
});
|
|
61
|
+
});
|
|
62
|
+
//# sourceMappingURL=messenger-thread-summary-order.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messenger-thread-summary-order.test.js","sourceRoot":"","sources":["../../src/services/messenger-thread-summary-order.test.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EACL,uBAAuB,EACvB,yBAAyB,EACzB,yBAAyB,EACzB,0BAA0B,GAC3B,MAAM,qCAAqC,CAAC;AAE7C,SAAS,OAAO,CACd,SAAiB,EACjB,gBAAwB,EACxB,YAA6C,EAAE;IAE/C,OAAO;QACL,SAAS;QACT,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,SAAS;QAChB,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,cAAc,SAAS,EAAE;QAC/B,gBAAgB,EAAE,IAAI,IAAI,CAAC,gBAAgB,CAAC;QAC5C,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,CAAC;QACd,cAAc,EAAE,KAAK;QACrB,QAAQ,EAAE,KAAK;QACf,QAAQ,EAAE,EAAE;QACZ,GAAG,SAAS;KACa,CAAC;AAC9B,CAAC;AAED,QAAQ,CAAC,mCAAmC,EAAE,GAAG,EAAE;IACjD,EAAE,CAAC,uEAAuE,EAAE,GAAG,EAAE;QAC/E,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,EAAE,0BAA0B,EAAE;YACpE,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;QACH,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,EAAE,0BAA0B,CAAC,CAAC;QACtE,MAAM,UAAU,GAAG,OAAO,CAAC,iBAAiB,EAAE,0BAA0B,EAAE;YACxE,QAAQ,EAAE,EAAE,kBAAkB,EAAE,cAAc,EAAE;SACjD,CAAC,CAAC;QACH,MAAM,YAAY,GAAG,OAAO,CAAC,aAAa,EAAE,0BAA0B,EAAE;YACtE,WAAW,EAAE,CAAC;YACd,cAAc,EAAE,IAAI;SACrB,CAAC,CAAC;QAEH,MAAM,CACJ,CAAC,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC;aAC/C,IAAI,CAAC,uBAAuB,CAAC;aAC7B,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CACjC,CAAC,OAAO,CAAC;YACR,aAAa;YACb,aAAa;YACb,iBAAiB;YACjB,aAAa;SACd,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oEAAoE,EAAE,GAAG,EAAE;QAC5E,MAAM,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,EAAE,0BAA0B,EAAE;YAC9E,QAAQ,EAAE,EAAE,kBAAkB,EAAE,cAAc,EAAE;SACjD,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,yBAAyB,CACtC,yBAAyB,CAAC,gBAAgB,CAAC,CAC5C,CAAC;QACF,MAAM,SAAS,GAAG,OAAO,CAAC,YAAY,EAAE,0BAA0B,CAAC,CAAC;QACpE,MAAM,WAAW,GAAG,OAAO,CAAC,YAAY,EAAE,0BAA0B,EAAE;YACpE,WAAW,EAAE,CAAC;YACd,cAAc,EAAE,IAAI;SACrB,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACrB,UAAU,EAAE,0BAA0B;YACtC,KAAK,EAAE,iBAAiB;YACxB,SAAS,EAAE,iBAAiB;YAC5B,QAAQ,EAAE,KAAK;SAChB,CAAC,CAAC;QACH,MAAM,CAAC,0BAA0B,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClE,MAAM,CAAC,0BAA0B,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messenger.d.ts","sourceRoot":"","sources":["../../src/services/messenger.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAkBvC,OAAO,EASL,KAAK,2BAA2B,EAChC,KAAK,yBAAyB,EAE9B,KAAK,6BAA6B,EAElC,KAAK,4BAA4B,EACjC,KAAK,wBAAwB,EAC7B,KAAK,8BAA8B,EAEnC,KAAK,yBAAyB,EAE9B,KAAK,qBAAqB,EAE1B,KAAK,sBAAsB,EAC3B,KAAK,0BAA0B,EAChC,MAAM,kBAAkB,CAAC;AAM1B,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAwCzC,KAAK,eAAe,GAAG;IACrB,UAAU,EAAE,IAAI,CAAC;CAClB,CAAC;AAUF,KAAK,wBAAwB,GAAG;IAC9B,aAAa,EAAE,OAAO,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB,CAAC;AACF,KAAK,wBAAwB,GAAG;IAC9B,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AACF,KAAK,wBAAwB,GAAG,wBAAwB,GAAG;IACzD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB,CAAC;AAoJF,KAAK,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAqB/F,KAAK,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAwqBlG,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,EAAE;8BAiME,MAAM,UAAU,MAAM,KAAG,OAAO,CAAC,6BAA6B,CAAC;8BA5B/D,MAAM,UAAU,MAAM,cAAc,MAAM,EAAE;yCAcjC,MAAM,UAAU,MAAM,WAAW,MAAM;+BA+KjD,MAAM,UAAU,MAAM,QAAQ,MAAM,SAAQ,MAAM,GAAG,IAAI;;;;;;;;;;;;0CA8LxF,MAAM,UACL,MAAM,QACR,MAAM,QACN,MAAM,GAAG,IAAI,cACP,MAAM,EAAE,kBACJ,MAAM;+BA9Lf,MAAM,UACL,MAAM,WACL,MAAM,SACR;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE;;;;;;;;;;;;iCAiEjE,MAAM,UAAU,MAAM,WAAW,MAAM;;;;;;;;;;;;+BAIzC,MAAM,UAAU,MAAM,WAAW,MAAM;;;;;;;;;;;;iCAIrC,MAAM,UAAU,MAAM,YAAY,MAAM,EAAE;uCAwEpC,MAAM,UAAU,MAAM,WAAW,MAAM,aAAa,MAAM;;;;;;;;;;;;;;;;;;;;0CAmGvD,MAAM,UAAU,MAAM,aAAa,MAAM;;;;;;;uCAyC5C,MAAM,UAAU,MAAM,WAAW,MAAM,cAAc,MAAM,EAAE;iCA8jCpG,MAAM,UACL,MAAM,YACL,wBAAwB;mCAsC1B,MAAM,UACL,MAAM,YACL,wBAAwB,KAChC,OAAO,CAAC,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"messenger.d.ts","sourceRoot":"","sources":["../../src/services/messenger.ts"],"names":[],"mappings":"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"}
|
|
@@ -2126,7 +2126,6 @@ export function messengerService(db) {
|
|
|
2126
2126
|
const syntheticAfterCursor = syntheticSummaries.filter((summary) => threadSummaryIsAfterCursor(summary, cursor));
|
|
2127
2127
|
const chatAfter = cursor && !cursor.isPinned
|
|
2128
2128
|
? {
|
|
2129
|
-
attentionRank: cursor.attentionRank,
|
|
2130
2129
|
activityAt: new Date(cursor.activityAt),
|
|
2131
2130
|
title: cursor.title,
|
|
2132
2131
|
threadKey: cursor.threadKey,
|