feat: tighten conversation folder archive projections
This commit is contained in:
@@ -517,13 +517,17 @@ export function getConversationHomeItems(state: BossState): ConversationItem[] {
|
||||
const topContextItem = [...items]
|
||||
.filter((item) => item.contextBudgetIndicator.visible)
|
||||
.sort((a, b) => {
|
||||
if (a.mustFinishBeforeCompaction !== b.mustFinishBeforeCompaction) {
|
||||
return a.mustFinishBeforeCompaction ? -1 : 1;
|
||||
}
|
||||
const aLevel = a.contextBudgetIndicator.level ?? "safe";
|
||||
const bLevel = b.contextBudgetIndicator.level ?? "safe";
|
||||
if (levelPriority[aLevel] !== levelPriority[bLevel]) {
|
||||
return levelPriority[aLevel] - levelPriority[bLevel];
|
||||
}
|
||||
return (a.contextBudgetIndicator.percent ?? 100) - (b.contextBudgetIndicator.percent ?? 100);
|
||||
return b.latestReplyAt.localeCompare(a.latestReplyAt);
|
||||
})[0];
|
||||
const recentThreadLabel = latestItem.threadTitle.trim();
|
||||
passthrough.push({
|
||||
conversationId: `folder-${folderKey}`,
|
||||
conversationType: "folder_archive",
|
||||
@@ -534,7 +538,7 @@ export function getConversationHomeItems(state: BossState): ConversationItem[] {
|
||||
threadTitle:
|
||||
project?.threadMeta.folderName ??
|
||||
(latestItem.folderLabel || latestItem.threadTitle),
|
||||
folderLabel: `${device?.name ?? latestItem.deviceNamesPreview[0] ?? "设备"} · ${items.length} 个线程`,
|
||||
folderLabel: recentThreadLabel ? `${items.length} 个线程 · 最近:${recentThreadLabel}` : `${items.length} 个线程`,
|
||||
folderKey,
|
||||
threadCount: items.length,
|
||||
preview:
|
||||
@@ -565,7 +569,9 @@ export function getConversationHomeItems(state: BossState): ConversationItem[] {
|
||||
percent: topContextItem?.contextBudgetIndicator.percent ?? 100,
|
||||
level: topContextItem?.contextBudgetIndicator.level ?? "safe",
|
||||
},
|
||||
mustFinishBeforeCompaction: items.some((item) => item.mustFinishBeforeCompaction),
|
||||
contextBudgetSourceNodeId: topContextItem?.contextBudgetSourceNodeId,
|
||||
contextBudgetUpdatedAt: topContextItem?.contextBudgetUpdatedAt,
|
||||
mustFinishBeforeCompaction: Boolean(topContextItem?.mustFinishBeforeCompaction),
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user