layr. ← All releases
Release notes

Measurement tools and reliable PDF processing0.10.0

Measure and mark up drawings with more consistent tools, organize specifications and drawing sheets, and repair existing PDFs without losing saved work. This release also reduces unnecessary work when opening saved markups.

2026-09-09Minor289 commitsMigrations 073–086

Highlights

Measurement and markup tools work together

Length, Polylength, Perimeter, Diameter, Radius and Angle share more consistent snapping, handles and labels. Polylength shows segment and total lengths. Text, callouts, clouds, lines, arrows, polygons, rectangles, ellipses and highlights use page-based geometry, with a pinned tool belt and an All Tools drawer.

Set scale for the sheet and its details

Choose a preset, enter a custom ratio or calibrate from the drawing. Separate horizontal and vertical scales support profile views, and saved scale regions handle details drawn at a different scale.

Read and mark up organized specifications

Specification pages render with PDF.js and save markups on the server. The specification pane survives a reload through its URL, and documents with reliable section information are grouped by CSI division and section. Drawing navigation uses source-PDF structure, positioned text and drawing indexes.

Repair existing pages from their original PDF

Reprocess rebuilds stored pages from the original upload before refreshing text and folders. Page IDs, saved names, rotations, measurements and markups remain in place. Failed repairs resume from their checkpoint. The processing screen provides one Reprocess or Try again action per PDF and shows progress before the editor opens.

Turn the view without moving saved coordinates

Sheet rotation now separates display orientation from saved geometry. Source-based orientation recalculation can be repeated while keeping markup coordinates fixed; stale saves are rejected instead of overwriting a newer rotation or another author's work.

Open saved markups with less waiting

Page and version reads overlap, unchanged authorized shared layers can reuse a bounded cache, and opening a page no longer schedules a save just because its state finished loading. Fresh access and version checks still run.

Fixes worth naming

Upgrade notes

AreaWhat to know
Migrations 073–078Separate specifications from drawing membership; add versioned PDF structure, positioned navigation, specification sections and drawing-index groups; resume stalled imports. Existing manual sheet order is preserved.
Migration 076 data changeClears existing active plan/vendor sheet codes and titles and queues text v2, based on the original assumption that those fields contain automatic guesses. Confirm the production inventory before merging if data has been added. Text reprocessing uses stored page artifacts; use the new Reprocess action to repair damaged artifacts from the intact source.
Migrations 079–084Scope page rosters by project, bound queue-status reads, retain grouping diagnostics, reject obsolete navigation/grouping results, publish text and navigation together, and add renewable processing reservations.
Migrations 085–086Add durable orientation/rebuild runs and service-role functions for atomic state saves, presentation changes and resumable source-based repairs. They do not rewrite existing markup geometry during migration.
Hosted deploymentDev has applied migrations through 086. Production needs the pending migrations in 073–086; CI applies them before deploying the web app and Modal workers. Check both deployment jobs: web publication and worker publication run in parallel. Do not apply migrations or deploy by hand for this release.
Worker configurationThe Modal layr-pipeline secret must include OPEN_ROUTER_API_KEY. Deployment checks the key's presence without printing its value. Fresh drawing-index inference may incur API cost; accepted reusable results can be rematched without another inference request.
Default toolspreAdamP1ToolsOnly defaults to true, including for older configuration that omits it. This restricts creation to the supported 17-tool list; change it at /admin to restore the wider toolbox. Takeoff and components retain their existing feature settings.
Access and savesProject-processing upgrades require read access to inspect and write access to start. Specification pages use source-document project ownership. Rotation and scale regions are shared sheet properties; markups remain author-owned. New saves check both shared and user state together.

Known limits