Layr can now take real drawing and specification PDFs through project creation, process every page durably in the background, and make the resulting set available for navigation, markup and full-text search.
Drawings and specifications can be selected from the computer, uploaded, assigned and imported as part of creating a project. The old preloaded-demo handoff and its fallback data are gone: the project that opens is the project made from the files that were chosen.
Uploading a document now queues its pages for durable background work instead of making project creation wait for extraction. Sheets appear as their geometry completes, and a dedicated administrator view shows queued, active, failed and completed work with safe recovery controls.
The project search box now finds durable page text across both drawing sheets and specification books. Results stay within the current project and open directly on the matching drawing or specification page.
Geometry, user marks, workbench output, ordering and source-document membership now belong to addressable pages rather than to the legacy drawing record or storage layout. Moving a document between projects moves the whole document, and deleting its source is refused while sheets still depend on it.
Measure gained area and angle modes; highlight gained continuous ink and enclosed-region fill; callouts gained selectable boxes and steadier arrows; markups can be hidden or faded; and pan, zoom, selection, shortcuts and tool switching now follow one consistent interaction model.
CI now applies pending Supabase migrations before publishing the app and deploys the matching Modal processing services from the branch. A failed migration blocks the app deploy, so code cannot be promoted ahead of the schema it requires.
| Area | What to know |
|---|---|
| Migrations | Migrations 044–060 establish the page-based storage model, remove the legacy pipeline engine, add durable processing runs and normalize project-sheet membership and page-text search. CI applies them in order before each environment's app deploy; production receives them when this release is merged. |
| Processing secret | PIPELINE_SHARED_SECRET must contain the same value in the Vercel environment and the layr-pipeline Modal secret. A missing or mismatched value fails closed and leaves queued work undrained. |
| Processing endpoint | Hosted app environments need MODAL_PIPELINE_URL for the branch's Modal pipeline service. Modal deploys now run from CI for both dev and main. |
| Access control | PROJECT_ACL_ENABLED remains the project-membership switch. It must only be enabled where creators and existing users have the required membership rows. |
| Local database | The local Supabase ports moved to the 5532x range. ./layr local start detects and repairs an older or interrupted local stack. |