## Motivation
Fixes the case where switching tables mid-reindex (or a focus-driven background refresh) could spawn a second paginate-records against the same SQLite file and either trigger a duplicate full reindex or crash with database is locked.
## Change description
* A modal now overlays the workspace page while a large lazy reindex is running (>1000 files in a single batch). It blocks folder switches, header buttons, etc., and auto-closes when the reindex finishes.
* Small reindexes (≤1000 files, single batch) don't open the modal — they finish too fast for it to be useful.
* The paginate-records IPC handler now serializes calls per (workspace, connection), so concurrent calls against folders sharing the same .repos/{conn}.db queue instead of racing. This fixes the database is locked crash even for code paths that bypass the modal (focus sync, file-watcher refresh).
* fixed unused function compile warning in the CLI
## Checklists
- [x] Security impact of change has been considered
- Data Incident Risk:
- [x] None
- [ ] Low
- [ ] High