An import that was interrupted at the wrong moment could report ready while some of its pages had no text. Layr now finishes those pages before it calls a project ready, and the import retry repairs a project that is already in that state.
Before, an import could stop between saving a batch of pages and saving their text. The next attempt skipped that batch, and the project went ready with pages you could open but not search or navigate. On dev one large project lost text on 150 of 370 drawing pages and 550 of 1,009 spec pages, with no error shown. Now a batch only counts as done once its text is saved, and a project cannot reach ready until every batch is.
Run the import retry on a ready project that has pages without text, and Layr redoes the text for those pages only. It does not upload the page files again. On a healthy project the retry still does nothing.
094_import_range_text_gate.sql to production before it deploys the import worker. Dev already applied it. The migration adds document_import_ranges.text_published_at and marks every existing batch whose pages all have text as done, so healthy projects need nothing.POST /api/project-imports/<import id>/finalize.IMPORT_RANGE_WORKERS=1 in the Modal layr-pipeline secret. Nothing to set.