fix: warn when /sessions falls back to live-only list (v0.3.3)

Phone showed 2 sessions because apiProxy catalog failed (pre-0.3.2 inject bug) and live-agent fallback hid cold Web sessions. Surface that mode explicitly.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
owo
2026-08-14 20:22:20 +08:00
co-authored by Cursor
parent 5dbe833205
commit 3566df945b
7 changed files with 16 additions and 7 deletions
+3 -1
View File
@@ -310,7 +310,9 @@ export class TelegramBridge {
}])),
}
const body = [
`选择工作区(共 ${workspaces.length} 个,与 Web 对齐,已排除归档):`,
catalog.complete
? `选择工作区(共 ${workspaces.length} 个,与 Web 对齐,已排除归档):`
: `选择工作区(共 ${workspaces.length} 个)⚠️ 仅运行中的会话(apiProxy 未就绪,完整列表需插件 ≥0.3.2 并重启 dsh web):`,
'',
...shown.map((ws, i) => {
const n = visibleSessionsForWorkspace(catalog, ws).length
+4 -2
View File
@@ -25,6 +25,8 @@ export interface CatalogSnapshot {
workspaces: WorkspaceRow[]
sessionsById: Map<string, SessionRow>
archivedIds: Set<string>
/** true when loaded from apiProxy (Web-aligned); false for live-agent fallback. */
complete: boolean
}
type RpcOk<T> = { result: { ok: true; value: T } }
@@ -107,7 +109,7 @@ export async function loadCatalog(ctx: Context): Promise<CatalogSnapshot | undef
sessionIds: (w.sessionIds ?? []).map(String),
}))
return { workspaces, sessionsById, archivedIds }
return { workspaces, sessionsById, archivedIds, complete: true }
}
/** Sessions visible under one workspace (Web-like filters). */
@@ -170,5 +172,5 @@ export function catalogFromLiveAgents(agents: Agent[], ctx?: Context): CatalogSn
sessionIds: bucket.sessionIds,
}))
return { workspaces, sessionsById, archivedIds: new Set() }
return { workspaces, sessionsById, archivedIds: new Set(), complete: false }
}