List all workspaces (metadata only, no full data), newest first.
()
| 86 | export const workspaceDB = { |
| 87 | /** List all workspaces (metadata only, no full data), newest first. */ |
| 88 | async list(): Promise<WorkspaceEntry[]> { |
| 89 | const db = await openDB(); |
| 90 | try { |
| 91 | const store = txStore(db, 'readonly'); |
| 92 | const entries: WorkspaceEntry[] = await reqToPromise(store.getAll()); |
| 93 | entries.sort((a, b) => (b.updatedAt || '').localeCompare(a.updatedAt || '')); |
| 94 | return entries; |
| 95 | } finally { |
| 96 | db.close(); |
| 97 | } |
| 98 | }, |
| 99 | |
| 100 | /** Load workspace metadata + state. Returns undefined if not found. */ |
| 101 | async load(id: string): Promise<WorkspaceEntry | undefined> { |