diff --git a/lib/bridge.js b/lib/bridge.js index 3a7f932..b724c08 100644 --- a/lib/bridge.js +++ b/lib/bridge.js @@ -245,7 +245,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; diff --git a/lib/catalog.d.ts b/lib/catalog.d.ts index e1f4cdc..463dc2a 100644 --- a/lib/catalog.d.ts +++ b/lib/catalog.d.ts @@ -19,6 +19,8 @@ export interface CatalogSnapshot { workspaces: WorkspaceRow[]; sessionsById: Map; archivedIds: Set; + /** true when loaded from apiProxy (Web-aligned); false for live-agent fallback. */ + complete: boolean; } /** Load workspaces + sessions aligned with Web UI (via apiProxy when available). */ export declare function loadCatalog(ctx: Context): Promise; diff --git a/lib/catalog.js b/lib/catalog.js index 14254f5..205dfe6 100644 --- a/lib/catalog.js +++ b/lib/catalog.js @@ -58,7 +58,7 @@ export async function loadCatalog(ctx) { path: w.path, sessionIds: (w.sessionIds ?? []).map(String), })); - return { workspaces, sessionsById, archivedIds }; + return { workspaces, sessionsById, archivedIds, complete: true }; } /** Sessions visible under one workspace (Web-like filters). */ export function visibleSessionsForWorkspace(catalog, workspace) { @@ -116,5 +116,5 @@ export function catalogFromLiveAgents(agents, ctx) { path, sessionIds: bucket.sessionIds, })); - return { workspaces, sessionsById, archivedIds: new Set() }; + return { workspaces, sessionsById, archivedIds: new Set(), complete: false }; } diff --git a/package.json b/package.json index ed6faf6..ad6bcf9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "dsh-telegram-channel", - "version": "0.3.2", + "version": "0.3.3", "description": "DeepSeek Harness Telegram mobile remote: workspace→session picker (Web-aligned), /model switch, same trajectory — dsh-plugin", "keywords": [ "telegram", diff --git a/src/bridge.ts b/src/bridge.ts index 2ebe1d8..d999fb1 100644 --- a/src/bridge.ts +++ b/src/bridge.ts @@ -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 diff --git a/src/catalog.ts b/src/catalog.ts index 97fec1e..783bef1 100644 --- a/src/catalog.ts +++ b/src/catalog.ts @@ -25,6 +25,8 @@ export interface CatalogSnapshot { workspaces: WorkspaceRow[] sessionsById: Map archivedIds: Set + /** true when loaded from apiProxy (Web-aligned); false for live-agent fallback. */ + complete: boolean } type RpcOk = { result: { ok: true; value: T } } @@ -107,7 +109,7 @@ export async function loadCatalog(ctx: Context): Promise { const catalog: CatalogSnapshot = { + complete: true, archivedIds: new Set(['arch']), sessionsById: new Map([ ['ok', { sessionId: 'ok', title: 'OK', blank: false, running: true, updatedAt: 1 }],