()
| 222 | } |
| 223 | |
| 224 | async function listNotesFromBridge(): Promise<NoteMeta[]> { |
| 225 | if (!window.zen.listNotesPage) return await window.zen.listNotes() |
| 226 | |
| 227 | const requestId = `${Date.now()}-${Math.random().toString(16).slice(2)}` |
| 228 | const notes: NoteMeta[] = [] |
| 229 | let offset = 0 |
| 230 | |
| 231 | for (;;) { |
| 232 | const page = await window.zen.listNotesPage({ |
| 233 | requestId, |
| 234 | offset, |
| 235 | chunkSize: LIST_NOTES_BRIDGE_PAGE_SIZE |
| 236 | }) |
| 237 | if (page.notes.length > 0) notes.push(...page.notes) |
| 238 | if (page.done) return notes |
| 239 | if (page.nextOffset <= offset) { |
| 240 | throw new Error('listNotesPage returned a non-advancing offset') |
| 241 | } |
| 242 | offset = page.nextOffset |
| 243 | await nextRendererTask() |
| 244 | } |
| 245 | } |
| 246 | |
| 247 | // Coalesce full note-list refreshes triggered by vault-change (watcher) events. |
| 248 | // A bulk external change — git pull, cloud sync, bulk move/import — fires one |
no test coverage detected