← All Release Notes
Minor Release
v1.4.0
Tikrr V1.4.0
Published August 4, 2026By Rheyan - Technical Engineering Lead
Tikrr V1.4.0 is the next production release after V1.3.0. This update adds company branding, Team Communication, unified Taz, universal search, deposit on quote accept, Job Compliance alerts, SalesLab Twilio dual connect, and a large pass of ScopeLab / SalesLab / SiteLab / Portal polish across web and mobile. Read full notes anytime from Portal → Support → Patch Notes.
New Features
- Support access history — Companies can review Tikrr support visits (duration and pages viewed) in-app; the same history is available in Admin Portal per customer.
- Support account access — Tikrr support can temporarily access your account to help troubleshoot; access is time-limited and appears in your Activity Feed when it starts and ends.
- Company branding — Configure brand colors and logo orientation under Portal → Company Profile → Branding; quote presentations, customer surfaces, and outbound ScopeLab emails use resolved light/dark tokens (with WCAG-aware button text).
- Customer experience settings — Configure approval/rejection modal copy and communication automations (welcome, deposit, reminders, payment confirmation); public quote and presentation payloads include modal copy for customer surfaces.
- Deposit on quote accept — When Stripe deposit collection is enabled, accepting a quote can auto-create a deposit payment request and optionally email an invoice-access pay link without blocking accept.
- ScopeLab Team Communication hub — Chat across All team, direct messages, and group conversations with archive, unread badges, and realtime updates; the dashboard All-team widget keeps working.
- Onsite Takeoff contact link — TikrrX deal+quote stream accepts an optional CRM
contact_idso Onsite Takeoff can attach a selected or newly created contact to the deal and quote without asking again for client identity. - Bulk generate work item tasks — Generate AI tasks for every eligible work item on a work order in one action; items that already have tasks are skipped and the response summarizes generated, skipped, and failed counts.
- SalesLab Twilio dual connect — Companies can use a SalesLab-managed Twilio Subaccount (custom friendly name) or connect their own Account SID and Auth Token; softphone uses that company’s credentials only.
- SalesLab Connections All list — Contacts list can return people and organizations together (omit
type); industry filter on that list limits results to matching organizations. - Product-level upgrade and downgrade options — Configure and select upgrades or downgrades per product on a quote line (not only once per item), including multi-product selections that flow through to invoices and work orders.
- Quote item cost transparency — Optionally show base material, base labor, markup amount, and blended markup % under each quote line; controlled per quote and honored on customer, quote-link, and presentation views.
- Default team roles on signup — New organizations get nine ready-to-assign user types (Owner, Office Manager, Marketing Specialist, Business Development Representative, Sales Representative, Sales Coordinator, Production Coordinator, Production Manager, Production Supervisor) so you can invite teammates without creating roles from scratch.
- View in SalesLab from work orders — Work order details include the linked CRM deal id and name when the work order’s quote is tied to a SalesLab deal, so admins can open the deal from Production.
- Work order project category on publish — Publishing a work order requires a Site Lab project category (from settings). Admins can pick one manually or use AI to suggest from the work order details.
- Subcontractor Job Board recommendations — Open jobs can be filtered to those whose project category matches the subcontractor’s profile categories.
- Quote titles — Quotes get an auto-generated title from the deal name (with lead/contact/address fallbacks) that you can edit anytime.
- Unified Taz agent — One cross-lab AI assistant for drawers and agent pages; understands which lab/page you are on, searches company data with RAG, and can run tools across Estimator, CRM, Production, Media, Analytics, and the Guide Book.
- Taz agent conversation history — Save, archive, and resume Taz chats; load older messages with pagination.
- Universal search — Search deals, leads, contacts, tasks, events, quotes, invoices, work orders, subcontractors, and media projects from one place and jump straight to the matching page.
- Estimator product project types — Products can optionally be limited to a project type (or left as “all”); filter the catalog by project type when building estimates.
- Estimator item configs & email templates favorites — Pin and drag-reorder item configs and email templates the same way as products and production rates.
- Email template types — Templates can be typed as Follow-up, Change order, Payment request, Welcome, or Payment confirmation (plus Quote, Invoice, General, and Work order); create/update enforces these types, and invoice payment-request lists include payment-request and general templates.
- Project type email defaults — Each project type can set optional defaults for send-quote, follow-up, payment-request, and change-order templates; new quotes seed follow-up template IDs from the project type when none are set yet.
- Job Compliance insurance expiration — Admins are alerted once as insurance enters the 30, 14, and 7 day windows before expiry; expired insurance is marked non-compliant with optional admin override.
- Job Compliance remove document — Admins can remove a subcontractor’s uploaded compliance file so they can re-submit.
- Job Compliance submission alerts — Admins get in-app, realtime, and mobile push when a subcontractor uploads a compliance document for review.
- Quote acceptance confirmation email — Customers receive a confirmation listing accepted items, optionals, and upgrades/downgrades when a quote is approved (portal, public link, or admin on their behalf).
- Work order ready for quality review — Admins (and the assigning PM) get an in-app and mobile push alert when every task on a work order is completed, with a link to open it. The alert fires once per completion cycle and can fire again after tasks are reopened or new incomplete tasks are added and then finished.
- Subcontractor work item tasks — Assigned subcontractors can create and edit tasks on their work orders and assign them only to themselves or their own crew; crew members remain limited to updating status on tasks assigned to them.
- UICompany branding — Set brand color and logo orientation under Company Profile; used for client-facing presentations and emails.
- UIOnsite Takeoff contact link — Select an existing CRM contact or create a new one in-flow before Taz creates the deal and quote.
- UICustomer experience settings — Configure post-accept and decline modal copy plus customer communication automations (Quotes → Customer experience).
- UIStripe deposit on accept — Choose percent or fixed deposit, auto-email invoice-access links, and prefill Configure Payment from Stripe account settings.
- UIClearer quote status labels — Signed estimates show Accepted or Declined (replacing mobile OK / NO).
- UIDecline confirmation — Customers see a thank-you modal after declining an estimate.
- UITeam Communication hub — Live All / DM / group chat with archive, members, photos, unread sidebar badge, and realtime updates.
- UIGenerate All Tasks — On a work order’s Scope of Work, generate AI tasks for every work item that does not already have tasks in one click; see how many items were generated vs skipped, and keep the per-item Generate tasks action.
- UISubcontractor work item tasks — Assigned subcontractors can add and edit work-item tasks and assign them to themselves or their own crew from a polished, mobile-friendly task editor.
- UIProduct-specific quote upgrades — Configure and preview separate upgrade or downgrade choices for each product within the same quote item across staff, customer portal, direct-access, and invoice views.
- UITurbo Quote voice input — Dictate project scope in Create Quote with live words and server transcription; same mic pattern as Scope Generator and Onsite Takeoff.
- UIView in SalesLab — Open the linked deal from Quote Details and Work Order Details when a SalesLab deal exists and you have access.
- UIPublish work order — Choose a Site Lab project category (or Suggest with AI) before publishing; required for open bids and direct assign.
- UISubcontractor Job Board — Switch between All jobs and Recommended for you; recommendations match each job’s project category to your profile categories.
- UIQuote title — Rename quotes inline from the details header; titles auto-save and stay sticky when the deal is renamed.
- UIUnified Taz agent — Lab assistants (Scope, Sales, Site, Media, Metrix, and Portal) stream from one Taz endpoint; you’ll see when Taz is using tools mid-reply.
- UIGlobal Taz — Same FAB, drawer, and chat experience across all labs (lab-tinted accents); header Quick Add opens Taz everywhere it appears.
- UIMediaLab Taz — Ask Taz from the MediaLab FAB, header Quick Add, or Command Center → Taz page.
- UIMetrixLab Taz — TikrrX branding renamed to Taz; chart Ask TAZ opens the same Global Taz drawer on every Metrix page.
- UISalesLab Deal Detail Quote Preview — The Quote tab shows a full read-only ScopeLab quote preview (line items, areas, pricing); edit in ScopeLab via View in ScopeLab.
- UISalesLab Deal Detail Same as Address — Job Address can stay synced to Address with the same toggle used when creating or editing a deal.
- UIUniversal header search — Search across Sales, Scope, Site, and Media Lab from any lab or Portal header; results are tagged by lab, and View all opens a paginated list.
- UIJob Compliance insurance expiration — Track insurance expiry on document sets, show status badges, and let admins override expired coverage.
- UIJob Compliance remove document — Submissions row menu includes Remove Document for admin cleanup and re-upload.
- UIJob Compliance submission alerts — Admin bell shows Compliance notifications when a subcontractor uploads a document; taps open Job Compliance.
- UISalesLab Twilio softphone — Call from deal Call tab and lead overview using company Twilio credentials (Integrations → Twilio).
- UISalesLab Twilio dual connect — Integrations → Twilio lets admins create a SalesLab-managed Subaccount (editable name) or connect their own Account SID and Auth Token; Auth Tokens are never shown after connect.
- UISalesLab Connections All view — Browse people and organizations together from a new default All tab; People and Organizations tabs remain for focused lists.
Improvements
- Auth session company logo —
GET /auth/mememberships includecompany_logoso sidebar and Branding can show the logo on first paint without waiting on Profile. - Team Communication soft-deleted DMs — Conversation list and unread summary include
removed_direct_peer_idsso the hub can keep soft-deleted peers out of directory/roster merges until you recreate the DM. - Voice dictation reliability — Hybrid speech-to-text accepts Turbo Quote context, Safari AAC audio, and longer segment uploads so mic capture on Create Quote, Scope Generator, and Onsite Takeoff stays smoother under load.
- Work item Require Photo — Only company admins can enable or disable Require Photo on a work item; completing a work item, its tasks, or the work order is blocked until at least one photo is uploaded when the setting is on.
- Field flag resolution — Marking a punchlist item ready for review requires at least one proof photo; resubmitting for inspection is allowed once every field flag is marked completed (admin is still notified).
- Field flags — Punchlist items created from inspections or manually now auto-assign to the work order’s subcontractor (including field-only crew ids).
- Work order schedule conflicts — Assignment checks now identify the conflicting project and date range so schedules can be resolved before assigning.
- Universal search quote titles — Quote hits use the same name as the Quote List: deal name, then lead name, then address; search matches those fields too.
- Universal search coverage — Matches phones, addresses, notes, statuses, related lead/contact on deals, invoice/WO metadata, and media notes — not just primary titles.
- Universal search ranking & pagination — Results are ordered by match strength (exact title first); use
page,per_page, andtypefor View-all pagination. - Quote decision alerts — Estimators are notified (email + in-app) when a quote is accepted or declined, including when recorded by staff; delivery runs in the background so accept/decline responses stay fast.
- Change Order reason — Reason for modification is optional when saving or sending a change order.
- Customer quote & invoice emails — Spacing between headings, paragraphs, lists, Estimate Summary, and signatures is standardized for a cleaner, more professional look across desktop and mobile.
- SiteLab notifications — Opening the header bell marks unread items as read; insurance expiration alerts use the Job compliance preference category. Clear permanently removes all in-app notifications for the current user.
- Job Compliance insurance alerts — Real-time Reverb broadcast + mobile FCM push when insurance is expiring or expired; also fires on approve when within the reminder window.
- Job Compliance submission alerts — Real-time Reverb broadcast + mobile FCM push when a subcontractor submits a document (
job_compliance.submitted). - Work order timeline — Includes work-order media uploads with the crew member who uploaded them.
- Calendly connection — Connecting Calendly in SalesLab settings is company-wide: every teammate sees the same connected account, and any member can disconnect or connect a different Calendly account.
- Project-type email defaults — Assign optional default email templates per project type for send quote, follow-ups, invoice payment requests, and change orders (or leave any as unset).
- Production rate import Rate value ↔ Coat 1 — Import keeps Rate value and Coat 1 in sync like PaintScout (fill the empty side on save); Preview soft-warns when they use different columns or reuse a file column, without blocking the import.
- UISalesLab Deal Contact from Lead — Selecting an Associated Lead when creating a deal auto-fills Associated Contact from that lead’s linked contact; you can still change or clear the contact before saving.
- UIScopeLab invoice details — Invoice tab shows a print-style white document layout (header, breakdown, totals) matching the downloaded PDF, with staff actions kept in the ScopeLab chrome. Send invoice and payment-request previews use the same document layout.
- UIProduction rates — Rate value and Coat 1 stay in sync like PaintScout (Use Coats off ↔ Rate value; on ↔ Coat 1); import auto-maps both to the same column when coats are detected, with soft warnings if they diverge.
- UIWork order overview — Project status, category, dates, ID, price, and tag management now use a compact responsive header, with the price kept visible in the upper corner on mobile.
- UIWork order payment status — The work order overview shows Fully paid or Partially paid when milestone payments have been released, so admins and subcontractors can see settlement at a glance.
- UIWork order next steps — Subcontractors now see clear progress cards for inspection resubmission and payment-draw eligibility, including field-flag progress and direct guidance.
- UIJob site inspections — A clearer Quality Control header, wider guided checklist, pass/correction controls, section progress, and labeled ratings make inspections faster to complete and review.
- UIField flag actions on mobile — Start fix, Mark ready for review, Approve, and Reject are now full-width, touch-friendly buttons on phones instead of being hidden behind the status pill.
- UIField flag proof photos — Tap a proof thumbnail to open a mobile-friendly full-screen viewer with a safe-area-aware close button.
- UITask Tracker filters — Search, status, assignee, and date filters now use a polished responsive toolbar with clearer labels and one-tap reset.
- UIQuote item cost details — Optionally show base material, base labor, markup amount, and markup % under each line total (including optionals); hide by default and toggle per quote for staff, customers, and PDF.
- UIWork item Require Photo — Only admins can turn Require Photo on or off; subcontractors see a notice when a photo is required and must upload one before completing the work item or its tasks.
- UIField flag resolution — Subcontractors upload proof photos before marking a flag Ready for Review; Resubmit for Inspection appears only after every flag is marked completed.
- UIWork order Inspect — After a work order is marked complete (For Inspection), admins can start Inspect from the work order header without opening the Quality Control tab; the button hides once inspection finishes.
- UIField flags — New flags auto-assign to the work order’s subcontractor (Assignee picker removed); status menu shows every option when Open.
- UIWork order items — Scope cards show a clear item number, quantity, type, and status instead of internal IDs like “1 general” or snowflake sequence numbers.
- UIPublish work order — Existing project category is kept selected when you reopen Publish (after categories finish loading).
- UICalendly — One shared company connection; teammates see the same status, and disconnect or change account affects everyone.
- UICalendly schedules — Event types and bookings use Load more cursor pagination so large Calendly accounts keep every matching row without numbered pages.
- UIPortal Settings — Expand Settings in the sidebar to jump straight to Company Profile or any lab’s settings (Sales, Scope, Site, Media, Metrix).
- UIWork order scheduling — Assignment conflicts now show the conflicting project, dates, and assignee, with an option to update the work order schedule and recheck availability.
- UISubcontractor Job Board — Search, location, service, price, and sorting controls now use a compact responsive toolbar that leaves more room for available jobs.
- UISiteLab settings — Project types removed from Site Lab job configuration; manage them under Scope Lab (Estimator). Old Site Lab project-types URLs redirect there.
- UITask Tracker — SiteLab task creation and editing now match SalesLab’s responsive modal, field layout, controls, and light/dark styling.
- UISiteLab Trackr filters — Status, Priority, and Assignee filters now use the shared dropdown menu instead of native selects.
- UIWork item conversation — Messages now use a simple messenger layout with left/right bubbles, sender avatars, date separators, grouped replies, and a mobile-friendly composer.
- UIPricing configuration — Working hours / day and labor cost / day are back on Scope Lab Pricing; daily rate stays in sync with hourly × hours.
- UITaz conversation history — Server-saved chats across Scope, Sales, Site, Media, Metrix, and Portal Taz pages and drawers: browse Active/Archived, start New chat, archive or delete threads, and load older messages (replaces local import/export reset).
- UITaz entity links — Quote numbers and labeled deal, lead, contact, invoice, work order, and media project IDs in Taz replies open the matching detail page in-app.
- UIScopeLab pickers — Favorites and manual order from Products, Item configuration, Production rates, and Email templates settings now apply in Add Item, rate pickers, product selects, and send quote/invoice/change-order template lists.
- UIItem configuration — Pin favorites and drag to reorder line and area presets; order is shared across the company.
- UIEmail template types — Add Follow-up, Change order, and Payment request types; send quote, follow-up, invoice, and payment request pickers show matching templates (plus General). Change Order send lists Change order templates only.
- UIProject type email defaults — Optionally set default templates per project type for send quote, follow-up, payment request, and change order; send and follow-up dialogs prefill from those defaults when set.
- UIEmail templates — Pin favorites and drag to reorder quote, invoice, and other templates; order is shared across the company.
- UISiteLab CoreX renamed to Taz — Same assistant under
/sitelab/taz(old/sitelab/corexredirects); chat uses the unified streaming agent. - UIProducts catalog — Assign a project type on create/edit (defaults to All project types) and filter the products list by project type.
- UICustom line item hourly rate — When adding or editing a custom line item with hourly pricing, the rate autofills from the quote’s project type (or the company default when the project type uses it); you can still override it.
- UICustomer portal feedback — Feedback Type options are Talk to Supervisor, Request Change Order, and Request Additional Work (replacing issue-style categories).
- UIScopeLab Change Order — Reason for modification is optional when saving or sending; the scope section is labeled Change Order Breakdown.
- UISalesLab dashboard — Simplified the pipeline preview header by removing its decorative status and view controls.
- UISalesLab sidebar — Removed the Account footer link; profile remains available from Settings and the header avatar.
- UISiteLab notification bell — Opening the panel marks notifications as read automatically; insurance expiry alerts show an Insurance label and arrive live over WebSocket and mobile push. Clear permanently removes all in-app notifications.
- UISubcontractor work-order bell — Opening the bell clears the unread badge once assignments are viewed; the list still shows work orders until you accept or decline. Use Clear to dismiss alerts from the bell without accepting or declining.
- UIWork order details — Removed the duplicate job site banner from the header; address and maps stay in the location section.
- UIWork item tasks — Assignee search placeholder now says “Search Crews”.
- UIWork order details — Payment Rules and Publish actions now use consistent widths.
- UIWork order publish — Missing requirements show as a header banner instead of a hover tooltip; guidance points to Tasks on each work item.
- UIWork order details — Tabs keep
?tab=in the URL, and publish blockers link straight to the step you need. - UIWork order publish — “Before you can publish” waits until readiness checks finish, so it no longer flashes while loading.
- UIWork order assignment — The subcontractor picker now has clearer profiles, status badges, and full-row selection.
- UIWork order details — Change Price and Change Schedule use cleaner, accessible action colors.
- UIWork order work items — Removed Add Work Item; new line items are managed in Scope.
- UIWork order work items — Removed the Material Schedule tab; materials stay in ScopeLab.
- UIWork order work items — A clearer scope header and item count accompany the new two-column desktop layout, while mobile remains single-column.
- UIStripe account settings — deposit, card/ACH, and surcharge options now drive invoice payment requests and customer Pay Now (not display-only).
Revamped Features
- UICompany switcher —
/portal/select-companynow uses the shared Portal/login shell, CRM styling, and touch-friendly company cards without changing how company selection works. - UIWork item workspace — Refined navigation, responsive activity text, task cards, photo uploads, status details, and touch-friendly actions.
- UIWork order media — Work item filter now uses the shared dropdown menu instead of a native select.
- UIWork order media — Gallery cards show Photo/Video and upload date instead of raw file names.
- UIWork order timeline — Shows media uploaded by associated field crews alongside task and job activity.
- UIWork item tasks — Office admins no longer get complete-task checkboxes; field crews mark progress after the job is live.
Bug Fixes
- Quote new client duplicate email — Creating a new client on a quote with an email already used by another CRM contact now creates a new contact (same as SalesLab) instead of silently linking the existing one.
- Team Communication create — Creating a conversation or DM no longer fails when realtime WebSocket delivery is temporarily unavailable.
- Stripe account payment settings — Saving Stripe account settings no longer crashes on deposit payment method validation; Credit Card / ACH values persist correctly.
- Stripe Connect onboarding create — Connect account create uses classic Express Accounts v1 (
type=express) again so onboarding works while Accounts v2 platform access is still Requested; Stripe migration notices no longer abort a successful create. - Stripe Connect onboarding — Starting Stripe Connect no longer fails with an Accounts v2 migration error; new connected accounts use Express-equivalent Accounts v2 onboarding for invoice payments and subcontractor payouts.
- Quote viewed in Recent Activity — Client views from the Customer Portal or a shared quote link now appear in the quote’s Recent Activity feed.
- Work order media Visible to All — Media marked Visible to All (including documents) is returned to subcontractors; previously only rows tagged Subcontractors appeared. Existing admin-only work-order documents are promoted to Visible to All.
- Inspection result alerts — Subcontractors now receive the in-app, realtime, and mobile push alert when an inspection is approved or sends the job back for touch ups; the notification was silently dropped for field crews. Invoice generated, payment processed, and work order closed alerts are fixed the same way, and all assignees are notified instead of only the first.
- Work order settlement after payout — Paying a subcontractor from Disbursement Hub now notifies assignees that payment was released, and auto-closes the work order when every milestone is paid and no draws are still open.
- SalesLab email Reply links — Public reply submissions use only the secure link token for thread and address binding (client-supplied IDs are ignored).
- SalesLab Leads Hub Lead→Quote Rate — Conversion percentage now uses the full filtered lead set (converted leads ÷ eligible leads) instead of incorrectly staying at 0%.
- Subcontractor payment draws — Draw requests are rejected until the work order has passed Quality Control (Inspection Approved or Completed).
- Mobile push notifications — FCM delivery works again after the Firebase Admin SDK upgrade (message target API change).
- Quote to work order sync — Accepting a quote now syncs accepted line items (including product upgrades/downgrades), sets schedule dates from the quote overview when available, and sets the work order total from labor cost plus labor markup.
- Subcontractor appearance — Switching between light and dark mode no longer fails with Access Denied, and the choice is saved to your account so it follows you to new devices.
- Customer portal password reset — Reset links work again when a customer’s first company membership was deleted; the email now uses a living company and invalid codes no longer crash verification.
- Customer portal company codes — Verification codes for a deleted company are rejected instead of opening a different company the customer still belongs to.
- Quote approval activity — Customer portal and quote link approvals now show as approved, not edited.
- Quote items — Creating area quote items without a product no longer returns a server error.
- Taz create quote — Creating quotes via Taz no longer fails on missing
status_updated_at; deal/work-order creates validate required fields and tool failures are logged. - Universal search quotes — Searching by deal or lead name no longer errors on Postgres when linking quotes to deals.
- Universal search quotes — Quotes now match project and billing address (e.g. city like Coral Gables), not only client name and quote number.
- Job Compliance insurance — Requirements with nothing uploaded yet no longer report a missing expiry date, so they stop inflating the expired-insurance count.
- Product & production rate import — Sheet reading works again when the server blocks remote
file_get_contents(allow_url_fopen=Off) - Work order timeline — Field crew actions show the crew member’s name instead of “System”
- Snowflake IDs in API responses — Large resource IDs are returned as strings so browsers no longer lose precision when opening quotes, work orders, and related records
- Calendly event bookings — Opening an event type’s booking list now shows only that event’s appointments, not every booking on the connected Calendly account
- Calendly booking lists — Large Calendly calendars can load every matching booking via Load more (
page_token/has_more) without skipping appointments - Support access subscription gate — Support JWTs now carry
is_subscribedfor the customer company so staff can open portal/labs when that company is subscribed (no more redirect to choose-plan after exchange) - UISalesLab Lead required markers — Address and Job Address no longer show a required asterisk; Lead Type and Stage now show one to match API validation.
- UIInvoice company logo — Invoice details and previews show the company logo from session when the API has not returned it yet (e.g. after upload before Profile Save).
- UISign out after demo ends — Sign out from Choose Plan works when demo or subscription access has ended.
- UISalesLab Edit Contact address — Opening Edit Contact on a person now pre-fills saved address lines, country, state/province, city, and ZIP so you can change one field without re-entering the rest.
- UIPresentation document View button — Packaged document CTAs use company brand colors instead of hardcoded blue.
- UIPresentation packaged chrome — Gallery borders, Estimate/Terms placeholders, invoice accents, and quote display accents follow company branding.
- UIPresentation document preview — PDF thumbs show the first page fitted in the box (no collapsed strip / sidebar chrome in the preview pane).
- UICompany settings navigation — Side menu sections switch reliably; Company Profile links land on Profile instead of leaving the previous section stuck.
- UICompany branding preview — Profile logo shows on Branding, and brand color changes update the email and presentation preview immediately.
- UITeam Communication live thread — New messages from teammates appear in the open chat without leaving and re-entering the conversation.
- UITeam Communication unread badge — Unread count sits on the chat avatar so it no longer covers archive or delete.
- UITeam Communication reload loop — Opening All team (or any chat) no longer repeatedly reloads messages and conversations.
- UITeam Communication DM list — Company teammates appear in the Active list so you can start a private chat without creating one first (unless you deleted that conversation).
- UIQuick Add permissions — Global Quick Add only shows create actions for labs your role can access (e.g. Jr. Estimators see Scope Lab options only).
- UIInsights & reports — Team Communications and Live Proposal Metrics show live widgets instead of empty placeholders.
- UITeam communication — Long threads scroll inside the chat; the message input stays pinned at the bottom.
- UIWork order status alerts — Posting a comment, voice note, or photo no longer triggers a false “Work Order status updated” notification; status alerts now appear only when the work order actually changes.
- UIWork order media Visible to All — Subcontractors now see images, videos, and documents marked Visible to All; the Media tab accepts documents, and attachment uploads let staff choose visibility (default Visible to All).
- UIQuote upgrade selections — After accept, staff quote items show every approved product upgrade or downgrade (not just the first), and customer/admin adjusted totals stay in sync without double-counting.
- UIVoice dictation — Scope Generator, Onsite Takeoff, and Turbo Quote keep the last spoken words when you stop the mic, show Catching up while transcription finishes, and share one hybrid live + server path.
- UITurbo Quote voice input — only keeps clearly spoken words; ignores silence and noise inventions from transcription.
- UIWork order total hours — Quote Workorder tab and SiteLab now show the same two-decimal total, using the production work order hours when linked and matching production-rate calculations otherwise.
- UICustomer invoice pay — Minimum payment errors on the customer portal and invoice access links use the company’s currency format instead of hardcoded “$1.00 USD.”
- UIQuote presentation money — Shadow DOM upgrade/downgrade totals parse amounts without assuming a
$prefix, so non-USD and suffix currencies stay correct. - UIProduct-specific quote options — Added, auto-filled, and cleared upgrade or downgrade options now refresh immediately and remain in sync with the saved quote.
- UIQuote preview parity — Send Quote and staff preview/accept views now show the same interactive product upgrades, downgrades, and optional items customers see.
- UIConsistent quote previews — Quote documents now always use a clean light presentation, without dark-mode color blending from the surrounding app.
- UIQuote upgrade totals — Canceling a product upgrade or downgrade in the quote preview restores the original item price and summary total.
- UICustomer portal company formatting — Portal financial, date, and phone formats load for the active company (including multi-company sessions via company id).
- UISubcontractor payment draws — Request Payment stays disabled until Quality Control is completed (Inspection Approved); shows why payment cannot be requested yet.
- UIiPad AI task generator — Generated task lists use one touch-friendly scroll area, keep every task and action accessible, keep Generate Tasks in the modal footer, and return to new tasks after they are added.
- UIScopeLab quotes and change orders — Upgrade and downgrade selections now close correctly after choosing a product.
- UIWork order items from quote — Materials and approved product upgrades/downgrades from the accepted quote now show on the work order details view.
- UIJob Board recommendations — “Recommended for you” now loads your project categories reliably and matches jobs from every general contractor that hired you.
- UIJob Board filters — Removed the unused Location and Service dropdowns; search, price range, and sorting remain.
- UISchedule conflict dialog — The schedule editor now uses a dark Site Lab surface instead of a bright background in dark mode.
- UISite Lab dark mode — Selected tabs, highlighted rows, and heading accents use the dark blue wash instead of a washed-out light fill.
- UIScopeLab Taz menu — Overflow actions open as a floating overlay so the header no longer stretches around the menu.
- UISalesLab email Reply links — Recipients can open the secure reply page from the email link without being sent to login.
- UISalesLab CallSync Open Quote — Opens the linked ScopeLab quote in the same session instead of sometimes sending authenticated users to login.
- UISalesLab Leads Hub Lead→Quote Rate — Shows the correct conversion percentage and converted-lead count for the current filters (no longer stuck at 0%).
- UISalesLab Deal Detail sidebar — Long custom field labels wrap cleanly and select inputs no longer overflow past the sidebar edge.
- UISalesLab Lead Detail phone format — Lead phone uses the shared Global Formatting PhoneInput so US, Canada, Local, and International masks update when Portal phone format changes (stored value unchanged).
- UISalesLab pipeline configuration — Active and Inactive status labels remain readable in dark mode.
- UIStripe Connect — “Connect my account” OAuth button text is readable again in light mode.
- UIJob Compliance — After an admin removes a document, the subcontractor row no longer offers View Files or claims a missing expiry date; it simply shows Missing and prompts a fresh upload.
- UIWork order dialogs — Publish and assignment dialogs now show the readable work order number instead of the internal record ID.
- UIWork item voice notes — Record voice notes in Comments, preview them, then Send or Discard (Messenger-style); playback controls stay fully visible on phones, tablets, and desktop.
Security Updates
- Taz tool errors — Tool failures return a generic message to the assistant instead of raw exception text.