SVG and image uploads for user avatars, org logos, and branch logos now succeed without 403 errors.
Wide wordmarks in sidebar and settings tables now render with object-contain instead of being cropped to a square.
Cleaner estimate tables, better invoice creation feedback, and improved account verification experience.
Fixed focus loss when moving between Bag #, Count, and Unit price fields in the inventory spreadsheet.
Upload 500 errors are now resolved for avatars, branch logos, and organization logos.
Only admins and owners can configure Stripe payments; team members see who in the org to ask.
Organization, branch, and user logos in SVG format now display properly instead of triggering downloads.
Work-area templates now resolve quantity formulas using the destination room's dimensions.
Salvageable items now get automatic pack-out assignments: AI picks bagged, boxed, or wrapped and assigns tracking numbers. Your edits are respected.
The underline below the title on estimate and invoice cover pages is now navy blue instead of red, matching the app's brand colors.
Preview estimates while keeping the app shell visible for navigation and context.
Estimate covers now display property address under the client name. Preview layout no longer scrolls the document body.
PDF and spreadsheet toggle now in the toolbar. Preview refreshes when thumbnails or estimate details change.
Documentation, estimating, pack-out, and storage now each have their own sub-phase with independent inventories and estimates.
Phase navigation is cleaner and simpler with contents sub-phase tabs now integrated directly into the main nav card.
Copy an existing estimate to a new draft revision, or click work-area headers to verify scope without leaving the estimate.
View and edit estimates with a professional cover page, scope summary, and spreadsheet preview before sending to clients.
Clicking back on contents sub-phase estimates no longer crashes—the sub-phase context is preserved.
Clicking Back from a contents estimate preview now returns to the correct tab instead of an error page.
The preview panel now fills your viewport without pushing the outer page past its bounds.
Fixed unwanted page scrolling when using the estimate preview overlay.
Fixed double-scrolling in the estimate preview — page now stays in place while editor and spreadsheet scroll internally.
Missing phases display a clean 404 page instead of a generic error.
Create tasks, notes, projects, and clients from a unified dropdown in the top bar — faster access to project and client setup.
Submit estimates to specific approvers; rejected estimates auto-fork into new editable drafts.
Navigation moves to a persistent top bar — faster context switching between phases and estimates without sidebar delays.
Scope notes are now editable with visibility controls, and the scope tab is redesigned for better organization.
Customers can pay invoices via embedded checkout. Organizations manage refunds, disputes, and payment history from one consolidated panel.
Progress indicator now displays simplified stage labels for clarity.
Pick from four clear item categories instead of eight — photo analysis and manual entry stay perfectly in sync.
Fall back to manual address entry when the Places API fails.
Upload photos faster during contents estimation by dragging them directly onto any work area card.
Create shareable project notes with visibility controls; quick-create buttons in the top bar let you start new tasks or notes from any screen.
Resend estimates and monitor delivery status in real-time — see the full history of every send attempt.
Fixed: AI stage was emitting 4× drywall lines when scope had three drywall variants in one room.
Repair phases automatically derive line items from removal work on sibling destruction phases.
Watch photos analyze as you upload. Smooth progress bar. Fast scrolling lists. Automatic retries on failure.
A new Recent projects card shows your 5 most recently opened projects on the dashboard.
Visual refresh with hero layout, loss-type color coding, and reliable access tracking that ignores prefetch hovers.
Fixed webhook handler to correctly process Resend's tag format, restoring delivery and bounce status updates.
Avatars and logos render from storage directly. Fixes broken images on public pages; eliminates unnecessary API calls.
Dashboard tasks card now has a "+ New task" button. Task form reordered to show Project, Assignee, and Due Date first, with Title and Description at the bottom.
See a reference photo for each line item directly in your estimates and invoices. Toggle on/off per document with org-level defaults.
Text-only deduplication cuts costs by 64% with live progress visibility.
Estimates now show canonical photos for each line item and offer a simplified Generate Estimate workflow.
Estimates and invoices now export to Excel spreadsheets alongside PDFs, with a toggle to choose attachment format when emailing clients.
Sending an estimate no longer reloads the page. Status changes appear live as events arrive from Resend.
Waiting for client decisions now polls efficiently without full-page reloads. Preview and download buttons show live spinners.
Inline controls on the estimate table let you edit or remove overhead and profit rates on draft estimates — no save delay or page refresh.
Fixed an infinite render loop that caused the app to freeze when switching between work areas and inventory tabs.