On a Polylength, Total length and Segment lengths are both switches. You can show the total, each segment, both, or neither. A run saved as a total only, from before segment lengths were locked on, shows that total again. Ask Layr is a project chat that can search, read, and mark up the open project. It is on for review on layrbuild.dev and off in production, so customers do not see it.
The Measurements chip on a Polylength has two rows, Total length and Segment lengths, and neither is locked. Turn either one on or off. Both off draws the line, its caps, and its handles, with no length on the sheet and none in an export. A new Polylength still starts with Segment lengths on and Total length off, and Factory puts a placed one back to that. A tool default with both off is what the next one commits. A Polylength with no saved choice still shows both, which is what older markups drew. A run saved as a total only before the lock shows that total only again, on the sheet and in an export. A Sketch Polyline still locks Segment lengths. (#894, #896)
The right sidebar can hold a chat about the open project: search the project, read a sheet or a spec, look at what is open, place and edit markups, rename a sheet, and open a sheet in the main view or beside. A conversation is saved for the person who started it, in that project. Type @ to name a sheet. The flag ui:askLayr is review: on for layrbuild.dev and local, off on layrbuild.app. The route answers 404 before it calls a model, so production spends nothing. The old Ask panel was behind askAi: false and was never shown to customers. (#891, #892, #893, #897)
Staff Usage has an Ask Layr tab: spend, requests, conversations, tokens, spend per day, the tools used, and the same figures per person and per project, for the last 7, 30, or 90 days. It reads ask_usage, one row per model request and per compaction summary. The page is staff-only, the same way the rest of Usage is. (#893)
125_ask_layr.sql adds ask_conversations, ask_messages, and ask_usage. Row level security is on. PUBLIC, anon, and authenticated have no grants. The service role can select, insert, update, and delete. It also creates the private storage bucket ask-files (public false). Screenshots and attachments live there under <project>/<conversation>/. Messages store the path, not the bytes.dev deploy that contained the file ran. That deploy’s dry-run and apply both reported the remote database up to date (deploy 41093490420, #893, commit 96aba0d9). The product deploy for the commit this release sits on reported the same (deploy 41138635905, commit a398afc6). Production does not have the file until this release merges. Production applies 125 through deploy.yml on merge, before the new code. Do not apply it by hand, and do not edit the file.ui:askLayr is new, status review. It does not turn on for production. No other flag changed. POST /api/projects/[id]/ask and the conversation and file routes are project-scoped. GET /api/admin/ask-usage is staff. A conversation is readable and deletable by its owner only.OPEN_ROUTER_API_KEY, and only after the flag check. On production the route returns 404 first. Where the flag is on and the key is missing, the route answers 503, “Ask Layr is not configured on this server.” Questions use anthropic/claude-sonnet-5.5. Compaction summaries use anthropic/claude-haiku-5.5. Both are set in the route.ai 7.0.157, @ai-sdk/react 4.0.161, @openrouter/ai-sdk-provider 3.1.0, plus the chat UI packages the panel is built from. The deploy installs them. package.json’s version is 0.41.0.polylengthDisplayMode: 'none' on the markup. Absent still means both. That is markup JSON, not a migration. An export with both off writes no number. Bringing that file back keeps total-only and both-off when the caption still matches what Layr wrote./api/chat. They are not part of Ask Layr.