Newsletter status: In progress. See
README.mdfor conversion guide.
v2605.06.1 — May 6, 2026
MRs: !2062, !2059, !2054, !2051, !2043
Highlights
Exact email and phone search now bypasses fulltext (!2051, closes #6083, closes #6084) Full email addresses like johnedrinkwater@gmail.com were being treated as broad fulltext queries, dominated by common tokens like “gmail.com” and causing slowdowns. Exact email and phone lookups now use direct match instead, making contact searches deterministic and fast.
Street View maps show the correct location (!2054, closes #6046) The job map component has been switched to use the Google Street View Static API, eliminating cases where indoor views were shown instead of the correct outdoor street view for the address.
Charge reordering now persists correctly (!2043, closes #6100) Reordering charges and clicking save no longer silently drops the new order. The work orders reducer has been fixed to properly track and persist charge ordering changes.
Performance
- Exact email and phone lookups bypass fulltext search, eliminating slow queries dominated by common tokens like gmail.com (!2051)
Features
- Added Accountant role scoped to the Turpin franchise with appropriate permissions (!2059, closes #6182)
Fixes
- Fixed email rules with
toSpecificEmailsnot validating addresses before sending, causing silent failures for malformed recipients (!2062) - Fixed Street View map displaying indoor photos instead of the correct outdoor view for an address (!2054, closes #6046)
- Fixed charge reordering not persisting when saving (!2043, closes #6100)
v2605.06.0 — May 6, 2026
MRs: !2061, !2057, !2056, !2055, !2053, !2052, !2049, !2048, !2047, !2046, !2045, !2044, !2042, !2041, !2039, !2038, !2037, !2035, !2034, !2033, !2032, !2031
Highlights
Dashboard Demo Mode (!2033)
You can now toggle Demo Mode from the user profile menu to view the dashboard with curated fixture data. This is useful for training, presentations, and screenshots without exposing real customer information. Demo data responds to period, currency, and filter controls just like live data.
Invoiced Revenue column in Dynamic Reports (!2031, closes #6160)
A new “Invoiced Revenue” column is available in dynamic reports, giving visibility into finalized invoice amounts alongside realized and scheduled revenue. Documentation for the requirement and calculation logic has been added.
Neo4j history projections for reports (!2045, !2245ab8c0ad)
Reports now use Neo4j history projections instead of live Elasticsearch queries. This improves report query performance and decouples reporting from the main history feed. A resumable backfill CLI has been added to populate projections from ES into Neo4j with progress tracking and resume support.
Distinct icons for inbound and outbound calls (!2039)
The call log now shows different icons for inbound versus outbound calls, making it easy to scan the timeline and identify call direction at a glance.
Performance
- Reports now read from Neo4j history projections instead of live ES queries, reducing load on Elasticsearch and improving report response times (!2045)
- Added index on
openphoneCallIdto prevent delayed processing of call events (!2049) - CallRail precall webhook early exit when CallRail integration is disabled (!2030)
Features
- Dashboard demo mode with curated fixture data that responds to period, currency, and filter controls (!2033)
- Invoiced revenue column in dynamic reports (!2031, closes #6160)
- Job start dwelling type available as a group-by option in dynamic reports (!2032)
- Distinct icons for inbound and outbound calls in the timeline (!2039)
- Default-long-no-time intake variant for long-form intake without time selection (!2061)
- Sharing events are now recorded in job history (!2046)
- Job watchers update in the Business page UI after switching zones (!2047)
- Improved Quo webhook event handling: resolve call participants for any event order, add parent comments for transcripts, summaries, and recordings (!2041)
- Email rules can now target a specific email address instead of all job crew and customer (!e883d6d035)
setStageEstimateAtnow set consistently for jobs entering the estimate stage (!4825e4dc04)
Fixes
- Fixed QuickBooks export failures caused by missing configuration, undefined item maps, and disabled integration checks (!2056, !2055, !2053)
- Fixed auth crash and white screen on deauthentication — deferred
userIdassignment until after refresh token check (!2048) - Fixed CalendarEvent history chunking for large related sets (!2052)
- Fixed “Go to Job” navigation crash when data is invalid (!2038)
- Fixed total price to customer calculation missing
additionalChargePrice(!2037, closes #6149) - Fixed adding a custom charge erasing unsaved selected regular charges (!2042)
- Fixed stale zone responses overwriting the active zone after a zone switch (!2035)
- Fixed customer
billingAddressundefined crash on overview page (!2034) - Fixed pipeline row revenues not summing to group total — rows now display “None” as attention placeholder to prevent double-counting (!de76cf662f, !4b176519ca)
- Fixed demo mode fixtures to respond correctly to period, currency, and filter controls (!aac0421f00)
- Fixed race condition in Quo webhook event handling — added Redis lock to prevent duplicate parent-level comments (!2044)
- Fixed role guard and ref-count loading flag issues in dashboard demo mode (!df9aa7c1e6)
- Fixed
frontend.demo-modeincorrectly included inOPERATIONS_PERMISSIONS(!ebed4a1e9f) - Fixed guard against undefined
currentZonein menu item template (!a1fa99beed) - Fixed strict form validation for saving only on new opportunity v4 (!f8e8fa012e)
- Fixed prompt to discard invalid new opportunity data on job page navigation (!a1d635ecc4)
- Fixed “OTR Fees” typo in dashboard (!2057, closes #6160)
- Fixed invoice lifecycle event history preservation (!7fe3b59ee1)
Other
- Resumable Neo4j backfill CLI for report history projections, replacing ES-based migration 43 (!50a2d6a523, !e980d61349)
- CodeRabbit review fixes: lock projections, stage timestamps, report queries, and backfill robustness (!e980d61349)
- Release skill updated to include intake/mr-cli version bumps and auto-publish (!719190b79c, !fde983a1db)
- Invoice revenue requirement documentation added (!b22228b100, !26c6cb4bca, !da04e5858d)