Inventory
Added sequential, stable item numbers (#1, #2, …) to every item in a job, visible across the inventory table, gallery cards, the Edit Item dialog, custody views, and reports.
Added image rotate and flip editing on web and mobile, with a revert-to-original option for items, job photos, and room photos.
Added an image crop tool with corner-drag handles to image editing on both web and mobile.
Added a Split Item feature on web that separates a multi-photo item into multiple items via drag-and-drop columns.
Added a single-item Review view to web inventory with side-by-side photos and details, prev/next navigation, arrow-key support, and configurable visible columns.
Added separate Cleaning Code and Replacement Code columns to inventory tables, gallery cards, and the Single Item View, replacing the single code column.
Added code description tooltips on hover across inventory, gallery, single-item review, and the estimate builder.
Added "Inventory Error" detection during AI identification, with badges in the inventory list and an "Image Quality" / "Inventory Error" option in the Flags filter.
Added an Image Integrity quick action on the Job Dashboard for items with suspicious image provenance.
Added a batch duplicate-detection rerun for multi-selected items.
Added a Policyholder option to the User filter in inventory when policyholder sharing is enabled.
Added a "Submit for Review" button to the Policyholder inventory view that locks items once submitted and shows the count of unreviewed items.
Added multi-file image upload with a salvage-category step, creating a separate item per selected photo.
Added HEIC/HEIF upload support across all web upload routes (item images, bulk upload, room photos, job photos, etc.).
Added a "Clear AI insights" action to per-item context menus and bulk edit.
Added search-by-item-number capability to the inventory search box.
Added an info banner to the Create Item dialog clarifying that it creates a single item.
Added a warning when merging items that belong to different custody labels.
Added a dedicated Inventory view for showing Salvage vs. Non-Salvage totals and a Salv/Non-Salv toggle, plus a Review tab tailored to that view.
Added arrow-key navigation to cycle images in the full-view image dialog and right-click context menu support on images.
Improved the inventory gallery to show a loading spinner while images load and to display a single replacement price (instead of the legacy $x – $y range).
Improved label-name truncation to ellipsize from the beginning so the ID suffix stays visible.
Improved the policyholder review experience with policyholder-side image compression, item numbers in the list, and a fix for non-photo items not being clickable.
Improved the mobile gallery on big jobs with a "Load More" pattern in a denser 2-column grid.
Improved the mobile Item Edit screen with a horizontally scrolling image preview and visible Inventory Error flags.
Mobile offline storage reliable concurrent updates, eliminating offline race conditions.
Fixed image reorder race conditions in the Edit Item dialog on both web and mobile so a quick Save no longer reverts the reorder.
Fixed broken state when filters produce no results in the Replacements and Pricing views.
Fixed gallery item-# sort order so it matches the table sort.
Fixed the inventory search bar overflowing the row width on desktop.
Fixed policyholder items getting stuck in the "Identifying…" state.
Fixed camera thumbnail tiles displaying as blank white images.
Chain of Custody
Added a Locations tab to the mobile custody main view with per-job vault label counts.
Added multiselect mode and batch status/location operations to the mobile custody Labels list.
Added job label creation (Create Labels modal) to the mobile Custody tab, with auto-incrementing numbers and prefix validation.
Added a label metadata viewer (UUID, Tag ID, type, created/updated by/at) to mobile custody label rows.
Added a Status field option to printed custody labels (e.g., Packed, On Route, Delivered) across all label layouts.
Added a Cleaning Code column to the web custody table and a read-only Cleaning Code field to the Label Details dialog.
Added a Box Size filter and a Flags (warnings) filter to the web Custody tab.
Added an item-number prefix to items in the web Custody tab and in custody PDF/XLSX reports.
Added warning indicators on tag-type labels when more than one item is attached or an item quantity is greater than one.
Added a Room filter and room-name in label subtitles to the mobile Custody Labels view.
Added an info tooltip on the Name Prefix field in the Create Labels dialog when an org-level prefix is set.
Added an organization-level setting to configure a default prefix for job labels, streamlining label creation across jobs.
Improved sticker label layout previews with crisp inline SVGs replacing static thumbnails across all 13 layouts.
Improved the salvage-category indicator to also show on tag-type labels (previously only boxes).
Improved consistency of mobile icons for tag types and other domain concepts.
Moved the non-salvageable disposal-approval flow into Quick Actions on the Job Dashboard.
Replaced the welcome header above the Custody tabs with a more focused empty state.
Made vault rows tappable in the Custody Vault view.
Fixed the mobile custody labels list being cut off at the bottom on long lists.
Fixed non-salvageable labels created in the mobile camera flow not syncing full metadata to the server.
Estimates
Added a richer KDE-based price distribution chart with a rug plot to the Valuation and Pricing views, replacing the static box-plot bar.
Added an LKQ (Like Kind & Quality) supplement to AI pricing that surfaces comparable replacements when exact-model results are sparse, tagged with an LKQ pill.
Added tax-on-RCV to the ACV calculation, with a tax breakdown shown in the calculation popover.
Added a quantity-mode selector to the Merge Duplicates dialog.
Improved the valuation table to show per-price quantities inline (e.g. "$324.30 / 30") in both the inventory Value column and the Rep. Price column, replacing the previous multi-line layout.
Improved Replacements pricing accuracy with smart strategy routing, per-result match-tier evaluation.
Improved the Job Valuation view to use the state sales tax rate from Job Settings instead of a stale default.
Fixed the Diff calculator in valuation reports to correctly compute price differences.
Reports
Added an archive option to the reports tab, allowing users to archive old reports for a cleaner workspace.
Added a new Valuation Report type (PDF + XLSX) showing RCV, depreciation, ACV, and tax for non-salvage items, with configurable columns and per-room totals.
Added a Replacement Code column option to item-table reports (PDF and XLSX).
Added an item-number column and a TOTALS: row to the Valuation export (CSV and spreadsheet).
Added an optional sign-off section with separate contractor and customer signature rows to item-table PDF reports.
Added a Storage Categories filter to the Summary Report options dialog, with the active filter listed in the report header.
Added a denser 5-photos-per-row grid to thumbnail photo reports and a Description column toggle independent from Name in item-table reports.
Added an empty-report warning when the selected filters produce no items.
Added a filter dialog to the Download Photos (zip) action so users can narrow which images are included.
Improved Photo Report rendering for images with extreme aspect ratios using a fit-mode fallback so panoramas are no longer severely cropped.
Improved the Reports tab UI: Close button merged into the action row, badge layout fixed in the export dialog, and long room names truncated with an ellipsis in Summary Reports.
Improved the Valuation Report dialog to use the standard Advanced Options collapse pattern and widened the Dep. Category column.
Fixed report summary totals to account for item quantities in Total Objects and Non Salvageables counts.
Fixed the timestamp discrepancy between Job Photos and the Photo report PDF.
Fixed the spreadsheet export to write empty cells instead of "Unknown" for unknown brand/model values.
Mobile App
Added a "Chat with Support" button (Intercom) on the mobile app.
Added video thumbnails when uploading videos from mobile so the web shows a thumbnail preview instead of a broken image.
Added EXIF preservation for additional item images captured from the mobile camera.
Added a keyboard-dismiss-on-scroll behavior to the item label setting screen.
Improved the image-edit UX with a centered "Uploading…/Reverting…" overlay and disabled controls during the operation.
Improved the responsive web UI on phones: stacked job header, hamburger tab navigation, mobile inventory card list, sticky filter toggle, dialog side margins, and mobile cards for the Reports and Custody tabs.
Improved tab switching in the Job Report screen so Custody, Inventory, and Notes no longer reload from scratch on each switch.
Improved dark-mode contrast for contained buttons, the multi-item notice on Item Edit, and the locked salvage/cleaning category container.
Standardized the icon language across the mobile app for tag types and other domain concepts.
Hid rotate/flip when offline so users don't trigger uploads that can't succeed.
Switched mobile inventory list items to show item-number prefixes (e.g., "#1 USB Hub").
Fixed iPad logout and Delete Account button centering on the Profile tab.
Job Documentation
Added "+ New Room" inline creation in the Edit Item dialog and the Bulk Item Upload room dropdown.
Added a canned room-name picker to the web Room Edit dialog (matching mobile).
Added date-time overlays on Photos & Notes thumbnails and the full-screen viewer, plus a Metadata tab on the photo edit dialog.
Renamed "+ Add Photos" to "+ Add Media".
Fixed new-room photo upload and duplicate-room bugs in the Room Edit dialog.
General
Added Microsoft Single Sign-On for web login.
Added an "Editor" organization role between admin and member that can create jobs but cannot delete, archive, lock, or change settings.
Added a dedicated New Claim dialog separate from the standard New Job dialog.
Added a distinct set of job/claim statuses (Created, Needs Review, Manager Review, etc.).
Added Auto-Owners Insurance Company to the carriers list.
Added Phone Sync (Browser Sync), an admin-triggered flow that pulls a worker phone's offline queue directly to the admin PC over LAN, then uploads to the cloud.
Added a Download App button with App Store and Google Play links to the desktop top navigation bar.
Added a SMS opt-in compliance page and updated signup consent text per carrier requirements.
Added a "Show pricing" setting in the mobile app and defaulted it to off for restoration organizations.
Added a Usage tab to the Organization page for org admins, with monthly stat cards and an Items per Month chart.
Added Quick Actions cards on the Job Dashboard: Inventory Issues, Detected Duplicates, Unread Policyholder Messages, Image Integrity, plus Getting Started buttons (Add Item, Import from spreadsheet, Upload images) when a job is empty.
Added a "Messages" label on the policyholder review link for restoration organizations.
Added contextual support article links to empty states across job pages.
Added an org-level option to skip "My First Job" creation for invited users.
Added a clear button to the Organization Members table search input.
Added auto-detect header/mapping and bulk-save support to the Batch Item Upload dialog.
Added a 15-tip carousel with support article links to the loading screen.
Improved the "New version" message from a full-screen blocker to a non-dismissible bottom-right popup.
Improved Job Dashboard empty states for Boxes, Room Activity, Content Categories, Users, and Locations.
Improved scoped job queries so franchise users see only the active org's jobs after switching orgs.
Improved the Job-Sharing Disposal Approval description to only mention "add items" when that permission is enabled.
Improved the Activity by User table on the job dashboard to show profile names instead of emails.
Removed the redundant terms-acceptance checkbox from the web login screen.
Fixed a brief /login flash when logged-in users opened protected routes on the web.
Fixed the archived jobs list disappearing when a per-job preview prefetch failed.
Fixed the "New version, please refresh" overlay reappearing in a refresh loop on Firefox.