See your project layout while it loads instead of a generic spinner.
User avatars render square without shifting when the image loads — no more layout jank.
Estimates no longer fail when old pipeline runs are cleaned up from the system.
Estimate pipelines now have built-in timeouts to prevent hangs when AI calls or metadata updates stall.
The Add Phase button is now accessible on the phases overview after a recent refactor temporarily hid the creation trigger.
The revision selector and timeline now display the grand total including tax, matching the estimate footer to the cent.
Search dialog displays a visible loading spinner and 'no results' message; AI estimates are correctly findable by Grand Total.
Phase types locked to a static set to prevent breaking AI workflows. Custom phases available for manual-only work.
See exactly what clients see before they review, and watch for responses without refreshing the page.
Generating an estimate before adding scope now completes as a draft instead of failing.
Estimates now correctly persist as drafts when phases have no scope or job-level rules.
Switch between photos, documents, and other tabs without reloading unrelated data. Each section now loads only what it needs.
Keyboard shortcut (Cmd/Ctrl+K or /) opens a global search bar to find projects, clients, contacts, estimates, and more instantly. Save your searches.
Estimate status auto-refreshes every 8 seconds. Improved portal UI with cost breakdown and cleaner recipient picker.
Phase tabs stay mounted when switching between Work Areas, Estimate, and other tabs — zero UI reloads.
Project detail pages now stream content, showing navigation immediately instead of waiting for heavy data to load.
Each project tab now loads only what it needs, cutting unnecessary database queries by ~60% and making tab switches instant.
Fixed broken image loading when using custom api.operant360.com and staging domains for Supabase storage.
Non-scoped work areas now show hints instead of disappearing, and General items always calculate.
Click the client name in project headers to navigate to client details. Authorized users can now edit project status inline.
Clients now review, approve, or request changes on estimates through a secure portal. Contractors track delivery and engagement in real-time.
The sidebar now remains visible during page navigation, eliminating the flash of the loading overlay.
Job-level rules now stay pinned between revisions, so estimate totals remain consistent across runs.
The sidebar no longer flickers or remounts when navigating between project sections, keeping your context in place.
Fixed project switcher dropdown to show all projects in your organization, not just the selected one.
Non-residential clients can now be edited and saved. Contact management moved to the Contacts tab for all client types.
Organize restoration photos across multiple project phases without duplicate uploads.
Quick-fix work area details inline with a pencil button — no need to cancel and re-add.
The 'Scope' phase tab is now 'Work Areas.' Standalone menu removed. Old URLs redirect automatically.
Users with exactly one organization now land directly on the dashboard after sign-in, no picker step needed.
Fixed broken checkboxes in project batch-update toolbar; replaced dropdown menus with searchable Combobox.
Field technicians can no longer view estimate details, pricing, or line items they aren't authorized to access.
No more vanishing estimates when generation is cancelled, with improved revision handling and persistent action access throughout history.
Cancel button now responds immediately with a brief placeholder instead of waiting for the server, preventing confusing error states mid-cancel.
AI-generated estimates now display the correct tax amount immediately instead of showing $0.00.
Default-applied tax rates display the correct amount immediately. No more $0 tax totals until manual adjustment.
Fixed a zero-line regression where AI estimates silently drafted without any line items, especially with custom materials or sparse scope data.
Field names, user names, and dates are now plain English. Faster search finds what you see.
When creating an insurance client inline, adjusters now populate immediately without requiring you to close and reopen the sheet.
New per-project activity log with manual notes and CSV export.
Phase status is instantly visible with color-coded left edges — no need to read the badge.
Contact details now open in a side panel on the client page, keeping you in context while viewing or editing.
Search clients and projects smoothly—new unified filter toolbar with debouncing eliminates page freezing.
Override organization defaults for overhead and profit on individual projects for flexible markup strategies.
New organizations now start with a 'Main' branch, preventing deployment issues from orphaned projects.
Default roles are now editable to suit your team, and position ranks display as ordinals (1st, 2nd, 3rd) instead of cryptic level numbers.
Error digests are now captured in Sentry tags, allowing you to cross-reference with Vercel runtime logs to debug root causes.
Set flat or percent discounts on any estimate. Tax and overhead adjust on the discounted base, with original taxable ratios preserved.
Pipeline no longer throws errors when estimates are canceled or deleted during generation.
Set insurance details on clients; new projects inherit them automatically with clear attribution.