At a glance
- Settlement sending shows email history, live send progress and whether the email reached the driver
- A failed settlement send can be retried, and batch sends report exactly which statements failed
- Cargo can be transferred between trucks mid-route, with the scheduling updated on both orders
- Driver pay can be calculated from actual miles driven, with a preview before you commit the batch
- You can sign in with a link or a code sent to your email instead of typing a password
Improvements 150
A failed settlement send can be retried instead of leaving the settlement stuck
- Why we changed it
- When sending a settlement email failed, there was no way to try again from the screen.
- How it helps
- Drivers and carriers get their settlement without support having to re-run the send.
- How to use it
- Open the settlement and use the retry action on a failed send.
Accounting mapping tables stay responsive with large lists, and search runs as you finish typing
- Why we changed it
- Long mapping tables rendered every row at once and searched on each keystroke, which made the screen slow to scroll and type in.
- How it helps
- Accounting staff can scroll and search long account mapping lists without the page stalling.
- How to use it
- Open the accounting integration mapping screen; nothing to switch on.
Batch settlement sending stays quiet while composing and reports the problems first when it finishes
- Why we changed it
- The batch send flow reported every step as it composed messages, so real failures were buried in a stream of progress noise.
- How it helps
- Staff see a calm compose step and then a result that leads with what failed, so any settlement needing attention is obvious.
- How to use it
- Open a settlement batch and send it; the outcome summary appears when the run finishes.
Guaranteed distance is easier to read and settlement panels line up when you switch between them
- Why we changed it
- The guaranteed distance value was hard to read and settlement panels shifted as you moved between them.
- How it helps
- Settlement details are easier to scan and switching views no longer jumps the layout.
- How to use it
- Open a settlement and switch between its panels.
Payout, accounting bill and Notes panels on a settlement now use the same card layout as Emails
- Why we changed it
- The panels on a settlement were each styled differently, so the page read as a set of mismatched blocks.
- How it helps
- The settlement page is easier to scan because every panel shares one header, spacing and border.
- How to use it
- Open any settlement; the new layout is already in place.
Settlement fuel columns compact on narrower screens and rows stay on a single line
- Why we changed it
- On displays under 1800px the fuel columns pushed the table wide and the expand chevron wrapped onto a second row.
- How it helps
- Settlements stay readable on laptops without horizontal scrolling or broken row layout.
- How to use it
- Open settlements on a narrower screen; the layout adjusts on its own.
Settlement rows recalculate only where you changed something
- Why we changed it
- Editing one line reconverted every row in the settlement, which made large settlements slow to edit.
- How it helps
- Edits on big settlements apply immediately.
- How to use it
- Nothing to switch on.
Settlement sending shows email history and live send progress while you pick settlements
- Why we changed it
- Selecting settlements to send was awkward and there was no way to see what had already been emailed or how far a send had got.
- How it helps
- Payroll staff can see which settlements were already sent, select the right ones and watch the send finish.
- How to use it
- Open settlements and start a send; history and progress appear in place.
Settlements ask for confirmation before sending, and checkboxes follow the dashboard theme
- Why we changed it
- A settlement could be sent with a single click and no chance to stop, and checkboxes ignored the dashboard colour theme.
- How it helps
- Staff get a moment to catch a wrong settlement before it goes out, and form controls look consistent with the rest of the dashboard.
- How to use it
- Open a settlement and press send; a confirmation step now appears. Nothing to switch on.
Settlements show suppressed recipients and a log of every settlement email sent
- Why we changed it
- There was no way to see that an address had been suppressed or to confirm whether a settlement email ever went out.
- How it helps
- You can tell why someone did not receive a settlement and see the full send history in one place.
- How to use it
- Open a settlement and check the email log section.
The pickers in the settlement payout and send tender forms use the current dropdown with search
- Why we changed it
- These two forms still used an older dropdown that behaved differently from the rest of the product.
- How it helps
- Selecting in these forms works the same way as everywhere else, with consistent search and keyboard handling.
- How to use it
- Open a settlement payout or a send tender form; the new pickers are there.
The settlement panels follow the current dialog layout and behavior
- Why we changed it
- The settlement panels lagged behind the dialog styling and interaction used elsewhere.
- How it helps
- Settlement dialogs look and behave like the rest of the product, with fewer layout surprises.
- How to use it
- Open a settlement and its side panels.
AI assistants are now managed from a single page under Integrations in settings
- Why we changed it
- Assistant setup was scattered and there was no one place to see which assistants were connected.
- How it helps
- Owners can see and set up every AI assistant connection from one settings page instead of hunting for the controls.
- How to use it
- Open Settings, then Integrations, then AI assistants.
You can now choose which tools and data an AI assistant is allowed to reach from the dashboard
- Why we changed it
- Assistant connections were all-or-nothing and there was no way to narrow what a connected assistant could do.
- How it helps
- Owners keep assistants to the data they actually need instead of granting everything.
- How to use it
- Open Settings, then Integrations, then AI assistants, and edit access on a connection.
Declining an assistant's request for access now tells the assistant it was denied
- Why we changed it
- Saying no to a connected assistant left it waiting instead of receiving a clear refusal, so it could keep asking or hang.
- How it helps
- A decline ends the request straight away and the assistant reports the denial, so nobody is left guessing whether access was granted.
- How to use it
- When an assistant asks for access, choose to decline on the consent prompt.
Batch sending settlements keeps the list in place and shows the status of each row
- Why we changed it
- Sending a batch reloaded or reset the list, so there was no way to see which settlements went out and which failed.
- How it helps
- Billing staff can send a batch and watch each settlement succeed or fail without losing their place in the list.
- How to use it
- Select settlements and use batch send; the status appears per row.
Factoring connection settings now show the current connection state and what to do when it breaks
- Why we changed it
- When a factoring connection failed or expired, the settings screen gave no indication of what had happened, so staff only found out when submissions stopped going through.
- How it helps
- Billing staff can see the state of the connection and act on it โ reconnect or fix credentials โ without contacting support to find out what went wrong.
- How to use it
- Open Settings and go to the factoring connection section.
Invoice and maintenance selectors let you pick several entries at once with search and clearer selection
- Why we changed it
- Those pickers used an older control that was slower to search and awkward when picking more than one entry.
- How it helps
- Choosing invoices or maintenance records takes fewer clicks and shows what is already selected.
- How to use it
- Open any invoice or maintenance form and use the selection field as usual.
Manifest details and send-settlement dialogs are cleaner and easier to read through
- Why we changed it
- Both dialogs had grown inconsistent spacing, labels and controls, which made checking a settlement before sending it slower than it needed to be.
- How it helps
- Billing staff can scan the manifest details and confirm what is being sent in fewer passes.
- How to use it
- Open a manifest or press send on a settlement; the reworked dialogs appear by default.
Settlement delivery recovers from a failed send, and wide settlement tables scroll properly on smaller screens
- Why we changed it
- A settlement send that failed left the screen in a dead end, and large settlement tables overflowed on narrower windows.
- How it helps
- Billing staff can retry a delivery without starting over and can read wide settlement tables on a laptop.
- How to use it
- Nothing to switch on; visible on the settlements screens.
Settlement lists show whether the settlement email reached the driver
- Why we changed it
- After sending settlements there was no way to tell from the list whether the email was delivered, bounced or still on its way.
- How it helps
- Payroll sees which drivers did not get their settlement and can chase the address instead of waiting for a complaint.
- How to use it
- Open the settlements list and check the delivery column after sending.
Settlement, billing and driver lists stop redrawing their headers and filters on every live update
- Why we changed it
- Live updates re-rendered the whole page around these lists, including the toolbars and filters, which made scrolling and filtering feel sluggish.
- How it helps
- Long lists stay smooth while data keeps streaming in, and the controls you are using do not reset under your hands.
- How to use it
- Open settlements, billing or drivers; nothing to switch on.
The batch send dialog stays still while you scroll it and updates arrive
- Why we changed it
- The dialog for sending settlements in a batch jumped and lost your scroll position whenever new data streamed in.
- How it helps
- You can work down a long batch and tick off drivers without the list moving under you.
- How to use it
- Open the batch send dialog on settlements; nothing to switch on.
The manifests table packs its columns tighter on screens narrower than 1800px
- Why we changed it
- On laptops and smaller monitors the manifests columns were cut off or pushed sideways, so reading a row meant scrolling horizontally.
- How it helps
- Billing and dispatch staff working on a laptop can see the whole manifest row at once.
- How to use it
- Open the manifests list on a narrower screen; the compact layout applies automatically.
The most recent note a person wrote is visible in the billing table and in the detail panel
- Why we changed it
- Notes lived one or two clicks away, so billing staff had to open each record to see whether anyone had already looked at it.
- How it helps
- Billing staff can scan a list and see the latest human comment on each row, which makes handovers and follow-ups faster.
- How to use it
- Open the billing list; the note appears in its own column and again at the top of the detail panel.
The settlement message field is now called Memo and explains where the text appears
- Why we changed it
- The field was labelled generically, so it was not clear what the text was for or who would read it.
- How it helps
- Whoever builds a settlement knows what the Memo is for before typing in it, which cuts back-and-forth with drivers and owner-operators about settlement wording.
- How to use it
- Open a settlement; the field appears as Memo with a short explanation next to it.
The settlements dialog is easier to follow, with wording and layout corrected throughout
- Why we changed it
- A review of the dialog turned up inconsistent labels, cramped layout and steps that were not obvious.
- How it helps
- Settlement work reads in a clear order, so staff spend less time working out what each field wants.
- How to use it
- Open a settlement and work through the dialog as usual.
The settlements screen remembers the pay cycle you selected across reloads and later visits
- Why we changed it
- The cycle reset to the default on every reload, so it had to be re-picked all day.
- How it helps
- Billing staff return to the cycle they work in instead of reselecting it each time.
- How to use it
- Pick a cycle once; it is restored next time you open settlements.
You can edit the message that goes out with a settlement before sending it
- Why we changed it
- The settlement message was fixed, so there was no way to add context for a particular driver or carrier.
- How it helps
- Billing staff can explain a deduction or a correction in the same mail as the settlement.
- How to use it
- Edit the message in the send step of a settlement.
Carrier type fields use the searchable picker used across the rest of the forms
- Why we changed it
- Carrier type selectors were still on the older picker, so search and keyboard handling differed from neighbouring fields on the same form.
- How it helps
- Setting or changing a carrier type takes fewer clicks and behaves the same as every other field on the form.
- How to use it
- Nothing to switch on. Open a carrier record and edit the carrier type field.
Cargo can be transferred between trucks mid-route, with the scheduling updated on both orders
- Why we changed it
- Moving freight from one truck to another mid-route had to be handled by hand, splitting stops and re-entering times on both sides.
- How it helps
- A transfer is planned in one place and both trucks' schedules line up, so the hand-off point and the times stay consistent.
- How to use it
- Set up the transfer from the order's scheduling view; the receiving truck's stops are created for you.
Creating a manual detention now shows the calculated detention time and charge before you confirm it.
- Why we changed it
- Manual detention had to be created blind, with the resulting time and amount visible only afterwards.
- How it helps
- Dispatchers can check the numbers before committing, and correct the stop or times if something looks wrong.
- How to use it
- Start a manual detention on an order; the preview appears in the dialog before you confirm.
Creating an order shows whether the broker was matched to an existing record or will be created with the load
- Why we changed it
- Broker resolution in the order composer was opaque: it was not clear whether a broker had been linked to an existing customer, and the search started empty.
- How it helps
- You see at a glance that a broker is matched, or that it will be created together with the load, and the search comes prefilled so it takes one lookup.
- How to use it
- Create an order and enter a broker in the composer.
Large tables settle into place faster, without the scrollbar jump while rows load
- Why we changed it
- Tables measured their scrollbar while the rows were still arriving, so long lists shifted and stuttered as they filled in.
- How it helps
- Lists open and scroll steadily, so scanning a long list of orders no longer means waiting for the layout to stop moving.
- How to use it
- Nothing to switch on; open any list view.
Long order lists stay responsive while data refreshes in the background
- Why we changed it
- Every order row redrew itself on each background refresh, so scrolling and clicking stuttered on boards with many orders.
- How it helps
- Dispatchers can scroll and work a full order list without the screen freezing each time new data arrives.
- How to use it
- Nothing to switch on; open the orders list as usual.
Opening the composer no longer throws up draft-creation toasts
- Why we changed it
- Creating the draft behind a new order raised notifications that the user had not asked for and that slowed the open.
- How it helps
- The composer opens quietly and faster.
- How to use it
- Nothing to switch on.
Order invoice totals are only shown to users whose role grants access to them
- Why we changed it
- The invoice total on an order was visible regardless of whether the user's permissions covered it.
- How it helps
- Financial figures stay with the people who are meant to see them, without removing the order from anyone's view.
- How to use it
- Review the invoice total permission on your roles in Settings.
Order notes and driver notes load in a single request, so the notes panel fills in at once
- Why we changed it
- The two sets of notes were requested one after the other, so the panel appeared in stages.
- How it helps
- Dispatchers see the full note history immediately instead of watching it arrive piecemeal.
- How to use it
- Open an order and look at the notes panel.
Order settings load faster and the order snapshot no longer slows the page down
- Why we changed it
- Opening an order pulled in more settings data and styling than the screen needed, which delayed the view.
- How it helps
- Orders open sooner and scrolling through them stays smooth.
- How to use it
- Open any order; the improvement is automatic.
Orders carry the last note written by a person, so it shows up without a separate lookup
- Why we changed it
- The latest human note was not part of the order data the screen received, so it could not be shown alongside the order.
- How it helps
- Dispatchers see the most recent comment on an order where they already work, instead of opening the notes history.
- How to use it
- Open the orders list or an order; the note appears with the order details.
Orders support favorites, flags and a manifest check from the dashboard
- Why we changed it
- The dashboard had no backing service for marking orders as favorites, flagging them or checking a manifest, so that work happened outside the system.
- How it helps
- Dispatchers can mark the orders they watch, flag the ones that need attention and run the manifest check in one place.
- How to use it
- Open an order list or an order and use the favorite, flag and manifest check actions.
PDF previews close cleanly and the orders list updates in one pass instead of redrawing per change
- Why we changed it
- Preview responses were held open and each cached order update redrew the list, which made long order lists heavy over a working day.
- How it helps
- Dispatchers keep a responsive orders list and can open document previews repeatedly without the tab slowing down.
- How to use it
- Nothing to switch on.
Screens that do not use drafts no longer load draft code, so they open faster
- Why we changed it
- Draft-retrieval code was pulled in globally even on pages that never touch drafts.
- How it helps
- Less code to download and run before a page becomes usable.
- How to use it
- Nothing to switch on.
Scrolling through long order lists is smoother and no longer jumps
- Why we changed it
- The orders list remeasured the scrollbar while rows were being virtualised, which made scrolling stutter and the content shift.
- How it helps
- Dispatchers can scroll long order lists quickly without the rows moving under the cursor.
- How to use it
- Open the orders list and scroll. Nothing to switch on.
The assign popover stays fast with long lists of options
- Why we changed it
- The popover rendered every option at once, so assigning from a large list of drivers or trucks was slow to open and scroll.
- How it helps
- The list opens and scrolls smoothly no matter how many options you have.
- How to use it
- Open the assign popover; nothing to switch on.
The carrier search field has been rebuilt so searching for a carrier behaves consistently with the rest of the forms
- Why we changed it
- The field used an older input style that looked and behaved differently from other fields on the same screens.
- How it helps
- Searching for a carrier now looks and reacts the same way as the other fields around it.
- How to use it
- Nothing to switch on. Use any carrier search field.
The carrier tender page opens faster by loading its map only when it is needed
- Why we changed it
- The map library was loaded before the tender page could show anything, slowing down the first view.
- How it helps
- Carriers see tender details sooner, which shortens the time to accept or decline.
- How to use it
- Nothing to switch on; open a carrier tender link.
The order composer opens without re-fetching lists the page has already loaded
- Why we changed it
- Opening the composer re-requested customers, trucks and other lookups that the page behind it already had, adding a wait every time.
- How it helps
- The composer opens faster, and repeated order entry costs less waiting.
- How to use it
- Nothing to switch on.
The order send dialogs use the current dropdown with search
- Why we changed it
- The order send dialogs used an older picker with different search and keyboard behavior.
- How it helps
- Choosing recipients and options when sending an order behaves like the rest of the dashboard.
- How to use it
- Send an order and open any dropdown in the dialog.
The orders list and its side panel stay responsive while live updates come in
- Why we changed it
- Each incoming update was applied on its own and the panel map kept running after the panel was closed, which made busy boards stutter.
- How it helps
- Order lists with heavy traffic scroll and open smoothly.
- How to use it
- Nothing to switch on.
The orders list no longer shifts while it loads more rows
- Why we changed it
- The loading indicator forced the table to re-measure its scrollbar, so the list jumped as new rows arrived.
- How it helps
- Scrolling through a long order list stays steady, so you do not lose your place or click the wrong row while data loads.
- How to use it
- Nothing to switch on; open the orders list and scroll.
The orders page loads 58% less before the first row appears
- Why we changed it
- Each route pulled in more than it needed before rendering, and it did so inconsistently, which delayed the first rows.
- How it helps
- Orders and other pages open noticeably faster, especially on slower connections.
- How to use it
- Nothing to switch on; open the orders list.
The stop status picker uses the current dropdown with search
- Why we changed it
- The stop status picker used an older component with different behavior from other selects.
- How it helps
- Setting a stop status is consistent with the rest of the dispatch screens.
- How to use it
- Open a stop and change its status.
The tracking table scrolls smoothly on long lists by rendering only the visible rows
- Why we changed it
- The tracking table drew every row at once, so it was slow to open and stuttered while scrolling.
- How it helps
- Watching a large set of tracked loads stays responsive.
- How to use it
- Nothing to switch on; open tracking.
Typing in order notes and other long text boxes no longer lags as the box resizes
- Why we changed it
- Text areas on order screens measured and laid themselves out twice on every change, which showed up as typing lag in longer notes.
- How it helps
- Notes and other long fields keep up with your typing.
- How to use it
- Type into a notes field on an order; nothing to switch on.
Document expiry now warns at three stages instead of one, so you see a paper going stale well before it lapses
- Why we changed it
- Documents only flipped to expired on the day they lapsed, which left no room to renew a licence, permit or certificate in time.
- How it helps
- Maintenance and compliance staff get an early and a second warning before a document expires, so renewals can be chased while the truck or driver is still legal to run.
- How to use it
- Open any record with attached documents; the expiry state is shown on the document itself with no setup required.
Documents expiring in less than 30 days are highlighted
- Why we changed it
- Expiry dates were listed plainly, so a licence or permit about to lapse looked like any other row.
- How it helps
- Fleet staff spot papers that need renewing before a driver or truck is caught out of compliance.
- How to use it
- Open the documents list; the near-expiry rows are marked.
Driver pay can be calculated from actual miles driven, with a preview before you commit the batch
- Why we changed it
- Pay was based on planned or estimated mileage, so detours, reroutes and repowers had to be corrected by hand after the fact.
- How it helps
- Payroll matches what the truck actually ran, and the preview shows the resulting amounts for a whole batch before anything is posted.
- How to use it
- Choose the actual-miles basis on the driver's pay setup, then review the preview when building the next pay batch.
Drivers' reviews of pickup and delivery locations now show on the location record
- Why we changed it
- What drivers learned about a facility - long waits, bad access, unclear gate instructions - stayed in conversations and never reached the people booking the next load there.
- How it helps
- Dispatchers can see how a facility has treated drivers before committing a truck to it, and drivers see that their feedback lands somewhere.
- How to use it
- Open a location and look at the reviews section on the record.
Fleet data is replayed to any tab that joins and resynced every five minutes
- Why we changed it
- A tab opened later could show stale or missing fleet state, with no periodic correction.
- How it helps
- Truck and driver positions stay current in every tab, and drift is corrected automatically.
- How to use it
- Nothing to switch on.
The state fields for vehicles and plates use a searchable state picker
- Why we changed it
- The state and plate state fields used an older picker that was slow to search on a long list.
- How it helps
- You can type a state to find it instead of scrolling the whole list.
- How to use it
- Edit a vehicle and open the state or plate state field.
Truck and driver pickers search as you type and behave the same everywhere they appear
- Why we changed it
- Truck and driver selectors used an older picker that behaved differently from the rest of the forms, with inconsistent search and keyboard handling.
- How it helps
- Dispatchers and fleet staff find the right truck or driver faster, with the same typing, filtering and keyboard behaviour on every form that asks for one.
- How to use it
- Nothing to switch on. Open any form with a truck or driver field and start typing.
The map stays steady with a large fleet in motion
- Why we changed it
- With many trucks moving at once, position updates piled up and the map could stutter or fall behind.
- How it helps
- Dispatchers watching a full fleet get a smooth, current picture instead of a lagging one.
- How to use it
- Nothing to switch on.
Tracking rows and the notes feed stay steady while live updates arrive
- Why we changed it
- Each incoming position or status update rebuilt the tracking rows and the notes feed, so the list flickered and notes could scroll away while you read them.
- How it helps
- You can follow a load and read notes while updates keep coming in, without the list shifting under you.
- How to use it
- Open tracking; nothing to switch on.
Truck positions on the map update with less delay and lighter data use
- Why we changed it
- Every position update resent the full record even when only the coordinates moved.
- How it helps
- The map keeps up with a moving fleet and uses less bandwidth on laptops and tethered connections.
- How to use it
- Open the map; nothing to switch on.
Vehicle locations are polled once per company instead of once per open browser tab
- Why we changed it
- Every open tab requested locations separately, which multiplied load and could make tracking updates lag.
- How it helps
- Location updates stay steady no matter how many tabs a dispatcher keeps open.
- How to use it
- Nothing to switch on.
The scheduling board handles long truck lists with less lag
- Why we changed it
- Every truck row held more live data subscriptions than it needed, which slowed down boards with many trucks.
- How it helps
- Scrolling and editing on the scheduling board feels quicker for larger fleets.
- How to use it
- Nothing to switch on; open the scheduling board.
The scheduling board redraws only the trips a live update actually changed
- Why we changed it
- Every update coming off the live stream re-rendered the whole board, which made it stutter on busy days and could interrupt what you were dragging.
- How it helps
- The board stays responsive while updates keep arriving, and dispatchers keep their place on screen.
- How to use it
- Open the scheduling board; nothing to switch on.
A failed one-click link or a page that will not load now says what went wrong
- Why we changed it
- When a one-click tender link or the app itself failed to start, the user saw a blank or generic screen with no reason and no next step.
- How it helps
- Drivers, carriers and staff can tell an expired link from a connection problem and know whether to retry or ask for a new link.
- How to use it
- Nothing to switch on; the reason appears on the error screen.
AI assistants now have their own section under My account, with a consent screen before they are used
- Why we changed it
- There was no single place to see the AI assistants available to you or to agree to how they handle your data.
- How it helps
- Each user can review the assistants and give or withhold consent from their own account settings.
- How to use it
- Open My account and go to AI assistants.
An email sign-in link takes you to the page you were heading for and signs in your other open tabs
- Why we changed it
- The link always landed on the default page and left other tabs logged out, so work in progress was lost.
- How it helps
- You resume where you were interrupted, with every open tab signed in.
- How to use it
- Request a sign-in link and open it; the destination is kept.
An invitation link tells you whether it expired or was already used
- Why we changed it
- Both cases showed the same generic failure, so the person joining could not tell what to do next.
- How it helps
- The invitee knows whether to ask for a new invite or sign in with the account already created.
- How to use it
- Open an invitation link that has expired or been used.
Any user can lift an email suppression instead of asking support
- Why we changed it
- Once an address was suppressed after a bounce, only support could release it, so mail stayed blocked.
- How it helps
- Staff can unblock a driver's or carrier's address themselves and get mail flowing again the same day.
- How to use it
- Open the affected profile and lift the suppression from the mailing section.
Billing cycle, revenue type and company settings forms open and respond faster
- Why we changed it
- These forms were slow to render and felt sluggish while typing and saving.
- How it helps
- Staff editing company, cycle or revenue-type settings spend less time waiting on the form.
- How to use it
- Open Settings and edit any of these forms.
Carrier rate confirmation settings now live in one settings hub
- Why we changed it
- Options controlling carrier rate confirmations were scattered, with no single place to review or change how they are issued.
- How it helps
- Staff can see and adjust all rate confirmation settings in one screen instead of hunting through separate pages.
- How to use it
- Open Settings and choose the carrier rate confirmation section.
Column filters open immediately instead of waiting for their options to load
- Why we changed it
- Opening a filter on a wide table built the whole option list before the panel appeared, so the click felt like nothing happened.
- How it helps
- Filtering a long list feels instant, and you can start typing as soon as the panel opens.
- How to use it
- Nothing to switch on; open any column filter on a table.
Country and state pickers can be searched by code and list entries in the order shown
- Why we changed it
- You had to type the full name; typing a two-letter code found nothing, and the list order did not match the labels.
- How it helps
- Typing TX or US lands on the right entry straight away when entering addresses.
- How to use it
- Open any country or state field and type the code.
Country fields let you type to search and show the country flag alongside the name
- Why we changed it
- Country pickers used an older selector with a plain scrolling list, which made finding the right country slow on long forms.
- How it helps
- Anyone filling in addresses or company details picks the country by typing a few letters and confirms it visually by the flag.
- How to use it
- Nothing to switch on. Open any form with a country field and start typing.
Currency fields let you type to find the currency instead of scrolling the list
- Why we changed it
- Currency selectors used an older picker with a long unsearchable list, which slowed down rate, invoice and settings forms.
- How it helps
- Billing and rate staff set the currency by typing a few letters, with consistent behaviour wherever a currency is asked for.
- How to use it
- Nothing to switch on. Open any form with a currency field and start typing.
Dashboard screens open and switch faster, with less stalling while pages load
- Why we changed it
- Moving between dashboard pages did more work than needed on each transition, so screens felt slow to respond.
- How it helps
- Navigation feels quicker and the interface stays responsive while a page is being prepared.
- How to use it
- Nothing to switch on; the speed-up applies everywhere in the dashboard.
Dialogs ask before discarding unsaved edits, close after a save, and empty settings screens explain what to add
- Why we changed it
- A dialog could be closed with edits still in the form and they were gone without a word; after a successful save the dialog stayed open, so it was unclear whether the change had gone through; and a settings screen with no records yet showed a blank area that could equally mean empty, loading or broken.
- How it helps
- An accidental close asks first, a save ends the dialog instead of leaving you to guess, and every empty settings screen says what it holds and offers the action that creates the first entry.
- How to use it
- Nothing to switch on. It applies wherever you edit in a dialog and across the settings area.
Dialogs open without the short stall caused by reaching for content that had not loaded yet
- Why we changed it
- A dialog tried to move focus into content that was still being deferred, which cost time on every open.
- How it helps
- Dialogs across the product open faster and land focus in the right place.
- How to use it
- Nothing to switch on.
Dropdown fields match what you type against more than the visible label
- Why we changed it
- Some pickers only matched the text shown in the list, so searching by a code or a secondary name returned nothing.
- How it helps
- Typing any part of an entry's details finds it, which is faster on long lists.
- How to use it
- Type in any dropdown search box; no setting to change.
Dropdowns with long option lists open and filter without lag
- Why we changed it
- Pickers built the whole option list at once, so lists with hundreds of entries such as clients or trucks were slow to open and type into.
- How it helps
- Searching for a client, driver or truck in a long list responds as fast as typing.
- How to use it
- Nothing to switch on; open any searchable dropdown.
Email template assignment fields use the updated multi-select picker with search
- Why we changed it
- Assigning email templates relied on an older multi-select control that did not match the rest of the dashboard and was slower to search through.
- How it helps
- Picking several recipients or templates is quicker and behaves like every other picker in the dashboard.
- How to use it
- Nothing to switch on. Open the email template settings and use the assignment fields.
Entities that carry master types can now be assigned one from settings
- Why we changed it
- The first set of catalog master types existed but could not be attached to the records that use them.
- How it helps
- You can classify records consistently against a shared catalog instead of typing free text per record.
- How to use it
- Open Settings and pick the master type on the entity you are editing.
Every chip field in forms uses the same control and shows clearly when it is read-only
- Why we changed it
- Chip fields were built on an older control with no consistent disabled appearance.
- How it helps
- Tag-style fields behave the same everywhere, and you can tell at a glance when one cannot be edited.
- How to use it
- Nothing to switch on.
Filter tabs remember their overflow state, so moving between pages feels quicker
- Why we changed it
- The filter tab row recalculated its overflow on every visit and some modules were preloaded when they were no longer needed, adding a delay when switching pages.
- How it helps
- Navigation and filter tabs settle faster, with less flicker when a page opens.
- How to use it
- Nothing to switch on; use the filter tabs as usual.
Leaving a settings page with unsaved edits now asks you to confirm first
- Why we changed it
- Navigating away from a settings page silently discarded anything not yet saved.
- How it helps
- Changes are no longer lost by accident when you click away mid-edit.
- How to use it
- Edit a settings page and navigate away; a confirmation appears.
Live updates across the dashboard arrive faster when many people from the same company are signed in
- Why we changed it
- Every open connection asked the server for the same company data separately, so busy offices pushed the server harder and updates lagged.
- How it helps
- Boards, lists and maps refresh more promptly during the busiest hours, even with a full dispatch floor online.
- How to use it
- Nothing to switch on.
Long dropdown lists scroll smoothly instead of freezing when there are thousands of options
- Why we changed it
- Fields with very long option lists rendered every entry at once, which made them slow to open and scroll.
- How it helps
- Picking a customer, driver or truck from a large list is quick even on big accounts.
- How to use it
- Open any search field with a long list of options.
Long dropdowns such as currency and state can be searched by typing
- Why we changed it
- These lists could only be scrolled, which was slow when the right option sat far down a long list.
- How it helps
- You can type a few letters to jump straight to the currency or state you need.
- How to use it
- Open any long dropdown and start typing.
Long lists scroll more smoothly with less redrawing
- Why we changed it
- Scrolling through large tables re-rendered rows more often than needed, which caused stutter.
- How it helps
- Working through long lists of orders, trucks or invoices feels steadier.
- How to use it
- Nothing to switch on.
Long sessions in the dashboard stay responsive as you move between screens
- Why we changed it
- Navigation caches grew without limit and charts kept running after their screen was left, so the tab slowed down over a shift.
- How it helps
- Dispatchers who keep the dashboard open all day see less slowdown and fewer reloads.
- How to use it
- Nothing to switch on.
Long tables scroll smoothly because only the rows on screen are drawn
- Why we changed it
- Tables rendered every row at once, so large result sets were slow to open and jerky to scroll.
- How it helps
- Lists with thousands of rows open quickly and scroll without stalling.
- How to use it
- Nothing to switch on; it applies to the shared tables across the dashboard.
Moving between sections of the dashboard responds faster
- Why we changed it
- Scrollbar setup, chart code and lookup work all ran while a page was being opened, which made navigation feel slow.
- How it helps
- Pages open with less delay when switching sections during a busy day.
- How to use it
- Nothing to switch on.
Notes panels show one compact empty state when there are no notes yet
- Why we changed it
- Different notes panels showed different, often oversized, placeholders when empty.
- How it helps
- Empty notes take up less room and read the same wherever notes appear.
- How to use it
- Open a record with no notes; nothing to switch on.
One-time code fields are now a consistent size wherever a code has to be typed in
- Why we changed it
- The code entry boxes came from an older component that sized differently from the rest of the forms, so screens that asked for a verification code looked out of step.
- How it helps
- Code entry looks and behaves the same everywhere it appears, which makes it easier to read and type the digits.
- How to use it
- Nothing to switch on. You will see it the next time a screen asks for a one-time code.
Opening a dropdown no longer causes the page behind it to shift or flicker
- Why we changed it
- Opening a select forced the whole page to restyle, so long screens jumped and stuttered every time a dropdown was opened.
- How it helps
- Dropdown-heavy screens such as order and fleet forms stay still and respond faster while you pick a value.
- How to use it
- Nothing to switch on; open any dropdown.
Pages load lighter because tooltip code is only prepared once you hover a tooltip for the first time
- Why we changed it
- Tooltip machinery was set up on every page whether or not a tooltip was ever shown.
- How it helps
- Slightly faster page loads across the dashboard, with tooltips behaving as before.
- How to use it
- Nothing to switch on.
Pages render faster, especially the dense list and detail screens
- Why we changed it
- Styling was applied through broad selectors that forced the browser to restyle far more of the page than needed.
- How it helps
- Screens paint quicker and feel lighter when scrolling or opening panels.
- How to use it
- Nothing to switch on.
Pages with many dropdowns load faster because a dropdown's options are built only when you reach for it.
- Why we changed it
- Every dropdown on a page built its full option list up front, which slowed down heavy screens such as order and invoice forms.
- How it helps
- Forms and lists with a lot of dropdowns open and respond more quickly.
- How to use it
- Nothing to switch on; dropdowns behave the same when opened.
Screens load faster because each one now ships only the icons it draws on first paint
- Why we changed it
- Every route pulled in the whole icon set before it could paint, which added load time on each page.
- How it helps
- Pages open sooner, which is noticeable on slower connections and on the first visit of the day.
- How to use it
- Nothing to switch on; the improvement applies everywhere in the dashboard.
Screens that receive live updates stay responsive during bursts of incoming events
- Why we changed it
- Each incoming event notified the data store separately, so a burst of updates could make the interface stutter.
- How it helps
- Live screens keep up when many updates arrive at once.
- How to use it
- Nothing to switch on.
Search-and-pick fields across the dashboard now behave the same way everywhere
- Why we changed it
- The dashboard had two generations of autocomplete fields with different behaviour, so some fields lacked options others had.
- How it helps
- Typing, filtering and selecting works consistently in every form, with fewer quirks between screens.
- How to use it
- Use any field where you type to search for a value; no setup needed.
Search-and-pick fields across the dashboard now use one consistent combo box with the same keyboard and typing behaviour
- Why we changed it
- Simple pick-from-a-list fields were built on an older autocomplete component that behaved differently from field to field, with inconsistent keyboard handling and filtering.
- How it helps
- Choosing a value in these fields works the same way everywhere: type to filter, arrow keys to move, Enter to select, so there is less guessing when moving between screens.
- How to use it
- Nothing to switch on. Open any form with a searchable dropdown and the new field is already in place.
Select-all on a large table responds without the long freeze
- Why we changed it
- Ticking select-all redrew every selection cell inside the click, locking the page on big lists.
- How it helps
- You can select every row on a long table and keep working right away.
- How to use it
- Nothing to switch on; use the select-all checkbox on any table.
Settings dialogs warn before you close them with unsaved edits, and close without a prompt once you save.
- Why we changed it
- Closing a settings dialog with unsaved changes discarded them without a word, and saving could still raise an unsaved-changes prompt on the way out.
- How it helps
- Edits are no longer lost by an accidental click outside a dialog, and a normal save closes the dialog cleanly.
- How to use it
- Open a settings dialog, change a field and try to close it; the prompt appears only when there is something unsaved.
Settings pages open and edit without the reload pause and the page no longer jumps while a dialog is open
- Why we changed it
- Opening Edit in settings refetched the whole page, and unsaved-change tracking re-rendered the form on every keystroke, so editing felt slow and the page behind a dialog could still scroll.
- How it helps
- Settings respond immediately when you open Edit and while you type, and the background stays put while you work in a dialog.
- How to use it
- Open any settings page and edit it; nothing to switch on.
Sign-in and registration show the account state the server reports instead of a generic error
- Why we changed it
- When an account was blocked, pending or already registered, the screens showed one unspecific failure message.
- How it helps
- You know why the attempt did not go through and what to do next.
- How to use it
- Nothing to switch on. Visible on the sign-in and registration screens.
Sign-in tells you where the confirmation code was sent
- Why we changed it
- After requesting a code, the screen did not say which address or number received it.
- How it helps
- You know where to look for the code instead of checking every channel.
- How to use it
- Request a sign-in code; the destination is shown on the code entry step.
State fields across the dashboard now use the same searchable state picker
- Why we changed it
- Some forms still used an older state dropdown that behaved differently from the rest of the dashboard, so picking a state depended on which screen you were on.
- How it helps
- Every state field now looks and behaves the same way, including type-to-search, so filling addresses and similar fields is predictable.
- How to use it
- Nothing to switch on. Open any form with a state field and start typing.
Table filters open faster because only the options for the filter you picked are loaded
- Why we changed it
- Every filter type's option code was loaded together, which added delay before filters could be used.
- How it helps
- Filtering a large list feels quicker, especially on slower connections.
- How to use it
- Nothing to switch on. Open the filters on any table.
Table loading placeholders now match the height of the rows they stand in for
- Why we changed it
- The loading skeleton was a different size than the real rows, so tables jumped as data arrived.
- How it helps
- Lists settle into place instead of shifting under the pointer, so a row you were about to click stays where it is.
- How to use it
- Nothing to switch on; open any table and watch it load.
The active tab is highlighted in the dashboard's own accent colour in both light and dark themes
- Why we changed it
- The selected tab used a generic highlight that was hard to pick out, particularly in dark mode.
- How it helps
- It is easier to see which tab you are on at a glance, in whichever theme you work in.
- How to use it
- Nothing to switch on. It applies to tabbed screens in both themes.
The client members picker uses the newer multi-select control with search and keyboard support
- Why we changed it
- It still used an older autocomplete that behaved differently from the rest of the forms.
- How it helps
- Selecting members works the same way as every other multi-select in the product.
- How to use it
- Open a client and edit its members.
The dashboard loads faster on start-up and when moving to a new screen
- Why we changed it
- On start-up the app worked out which screens to pre-load by re-ranking the whole asset manifest, which delayed the first usable screen.
- How it helps
- Dispatchers and billing staff get to the screen they want sooner, especially on the first load of the day.
- How to use it
- Nothing to switch on.
The dashboard now loads a single consistent version of itself after every release, instead of mixing old and new files
- Why we changed it
- Frontend files were served without being tied to a release, so a browser holding an older page could pull in newly deployed files. That mix showed up as blank screens or broken screens right after a deployment, usually cleared only by a hard refresh.
- How it helps
- After an update the dashboard keeps serving matching files for the version already open, so dispatchers and billing staff who keep a tab open all day stop hitting odd errors on release days.
- How to use it
- Nothing to switch on. Reload the dashboard when it tells you a new version is available.
The dashboard opens faster because each page now loads only the text it actually needs
- Why we changed it
- Every page load pulled in the full set of interface text for all areas of the product, even the parts the opened screen never showed, which slowed down the first screen after sign-in.
- How it helps
- The first screen appears sooner, especially on slower connections and older machines, with no change to what is on it.
- How to use it
- Nothing to switch on; it applies the next time you open the dashboard.
The dashboard paints its first screen without waiting for the full stylesheet to download
- Why we changed it
- Startup blocked on a large stylesheet, so the window stayed blank longer than it needed to.
- How it helps
- The app feels quicker to open, especially on slower connections.
- How to use it
- Nothing to switch on.
The dashboard shell appears together with the first screen's content instead of before it
- Why we changed it
- The shell rendered first and the content filled in afterwards, which showed an empty frame on load.
- How it helps
- Loading looks steadier and you stop seeing an empty layout while you wait.
- How to use it
- Nothing to switch on.
The dashboard shows its first screen sooner by leaving animation and calendar code out of the initial load
- Why we changed it
- Animation and calendar libraries were loaded before anything was drawn, delaying the first usable screen.
- How it helps
- Signing in and landing on a page takes less time.
- How to use it
- Nothing to switch on.
The dashboard starts faster because the message composer only loads when you reach for it
- Why we changed it
- Composer warm-up code ran during initial load whether or not you wrote a message.
- How it helps
- Less work at start-up means the first screen is usable sooner.
- How to use it
- Nothing to switch on.
The dashboard uses less browser memory during long sessions
- Why we changed it
- The interface held on to memory it no longer needed, so a workstation left open all day grew slow.
- How it helps
- Long shifts stay responsive and the tab is less likely to need a reload.
- How to use it
- Nothing to switch on.
The email sign-in link steps are faster and keep the keyboard focus where you are typing
- Why we changed it
- The steps between requesting and entering a sign-in link were slow and moved focus away from the field.
- How it helps
- Signing in by link takes fewer keystrokes and works for people who use the keyboard only.
- How to use it
- Request a sign-in link from the sign-in page.
The email template dialog uses the current dropdown with search
- Why we changed it
- The template dialog still used an older picker that searched and scrolled differently.
- How it helps
- Picking a template is consistent with other selects and easier to search on long lists.
- How to use it
- Open the email template dialog.
The factoring connection panel in settings now states what went wrong and what to do next
- Why we changed it
- When a factoring connection failed the panel showed little more than that something was wrong, leaving no next step.
- How it helps
- Whoever manages the connection can see the actual state and act on it instead of guessing or filing a support ticket.
- How to use it
- Open Settings and the factoring connection panel.
The first screen after sign-in starts loading while the app shell is still starting up
- Why we changed it
- The app waited for the shell to finish before it began fetching the code for the screen you asked for.
- How it helps
- Less waiting at the start of a shift, especially on slower connections and older machines.
- How to use it
- Nothing to switch on; sign in as usual.
The mailing screen shows suppressed recipients and lets you lift a suppression
- Why we changed it
- Suppressed addresses were invisible in the interface, so a recipient who stopped receiving mail looked like a silent failure.
- How it helps
- You can see which addresses are blocked and clear them without contacting support.
- How to use it
- Go to mailing settings, find the address in the suppression list and lift it.
The remaining settings dialogs also warn about unsaved edits and close quietly after a save.
- Why we changed it
- Only some settings dialogs had the unsaved-changes guard, so behaviour differed depending on which one you opened.
- How it helps
- Every settings dialog now behaves the same way, so edits are protected wherever you make them.
- How to use it
- Nothing to switch on; edit any settings dialog and try to close it.
Three more older modules are replaced by their current versions
- Why we changed it
- Two versions of the same screens were still shipping side by side, which meant different behaviour depending on which one you opened.
- How it helps
- One version of each screen to learn and one place to look, with the newer behaviour everywhere.
- How to use it
- The old entries are gone from navigation; use the current screens.
Tooltips across the dashboard are lighter and respond faster on dense screens
- Why we changed it
- Every tooltip carried its own provider, which added work on screens with many of them.
- How it helps
- Tables and toolbars with a lot of tooltips feel quicker.
- How to use it
- Nothing to switch on.
You can create a new entry straight from a search field when what you typed does not exist yet
- Why we changed it
- When a value was missing from a dropdown, you had to leave the form, create the record elsewhere and start over.
- How it helps
- Dispatchers and billing staff finish the form in one pass instead of breaking off to add the missing record.
- How to use it
- Type a value in a search field; if there is no match, use the add option shown in the list.
You can invite several people to the account at once
- Why we changed it
- Invitations had to be sent one address at a time, which was tedious when onboarding a group of dispatchers or drivers.
- How it helps
- Adding a whole team takes one pass instead of one invite per person.
- How to use it
- Open Members, choose invite, and enter multiple email addresses.
You can sign in by typing the code from the email instead of opening the link
- Why we changed it
- The sign-in email only worked through its link, which failed when the email was read on a different device from the one being signed in.
- How it helps
- Read the email anywhere, type the code on the Check your email screen, and carry on signing in on the device in front of you.
- How to use it
- Request a sign-in link and enter the code from the email on the Check your email screen.
You can sign in with a link sent to your email instead of typing a password
- Why we changed it
- The sign-in page only accepted a password, which locked out users who had forgotten theirs.
- How it helps
- Staff who do not remember a password can get into the dashboard from their inbox.
- How to use it
- On the sign-in page choose "Email me a sign-in link" and open the link from your mail.
A rate sheet editor and a home list for rate matrices are available from the toolbar
- Why we changed it
- There was no single place to see existing rate sheets or to open one for editing.
- How it helps
- Rate sheets are listed together and open into an editor from the same bar, so pricing work stays in one screen.
- How to use it
- Open rate management and use the rate sheet entry in the toolbar.
The rate matrix gains editors, imports, per-mile and per-weight cells, and stacked fuel surcharges
- Why we changed it
- Rates had to be maintained outside the product or entered one at a time, and fuel surcharges could not be layered on top of a matrix.
- How it helps
- Rate tables can be built, imported and edited in place, with mileage and weight breaks and fuel surcharge stacked on the result.
- How to use it
- Open rate management and edit or import a rate matrix.
The date-range filter behavior picker uses the current select
- Why we changed it
- This filter kept an older select that behaved differently from the other filter controls.
- How it helps
- Choosing how a date range filters is consistent with the rest of the filter bar.
- How to use it
- Open a date-range filter and change its behavior.
Fixes 112
A batch settlement send reports exactly which statements failed and lets you resend them
- Why we changed it
- The batch result reported success even when individual sends had failed, and there was no way to retry the ones that did not go out.
- How it helps
- You can trust the result and resend only the statements that failed.
- How to use it
- Send a settlement batch and read the per-statement result.
A negative net amount on a settlement is shown in a darker, readable colour
- Why we changed it
- The tint used for negative net amounts was too light to read, and both tints could be applied where they did not belong.
- How it helps
- Amounts that go against the carrier are easy to spot and no row is coloured by mistake.
- How to use it
- Open settlements and look at the net amount column.
A recurring transaction preset is only suggested when a threshold has been configured
- Why we changed it
- The suggestion showed up even with no threshold set, which produced a preset that could not do anything.
- How it helps
- Fewer misleading prompts while entering transactions.
- How to use it
- Nothing to switch on.
A settlement draft survives a failed refresh instead of losing the entries typed into it
- Why we changed it
- If refreshing the settlement failed, the draft in progress was discarded and the work had to be typed again.
- How it helps
- Billing staff keep what they entered when the connection or the refresh fails, and the detail controls are easier to work with.
- How to use it
- Work on a settlement as usual; the draft is kept if a refresh fails.
Accounting class fields now come through correctly when syncing with the connected bookkeeping system
- Why we changed it
- The sync asked for class fields the accounting system does not return, so class information was missing or the request failed.
- How it helps
- Classes land on synced records, so bookkeeping stays sorted the way your accountant expects.
- How to use it
- Nothing to switch on; the next sync uses the corrected fields.
Dialog spinners no longer jump and the batch send summary shows correct counts
- Why we changed it
- The loading spinner shifted position as dialogs opened, and the summary chips after a batch send did not reflect the real results.
- How it helps
- Dialogs open steadily and the counts after sending a batch match what actually happened.
- How to use it
- Nothing to switch on; open a dialog or send a settlement batch.
Sending a batch of settlements renders without the delay that crept into the send screen
- Why we changed it
- A shared component update slowed the batch send screen, so the list took longer to draw when a batch was prepared.
- How it helps
- Settlement batches open and send at the speed staff expect, with no stalling while the list paints.
- How to use it
- Nothing to switch on; open a settlement batch and send as usual.
Settlement controls respond again instead of staying disabled
- Why we changed it
- The settlement screen left its controls blocked, so staff could not act on a settlement.
- How it helps
- Settlement work can be completed in one pass without reloading or waiting for the controls to free up.
- How to use it
- Open a settlement and use the controls as usual.
Settlement dialogs lose the extra scrollbar, status chips fit on one line and bounce messages are readable
- Why we changed it
- The dialog showed a second scrollbar, status chips wrapped onto two lines, and bounce details were hard to read.
- How it helps
- Settlement dialogs are easier to read and scan without fighting the layout.
- How to use it
- Open a settlement dialog; nothing to switch on.
Settlement PDFs open in the built-in viewer and the Memo field stays put
- Why we changed it
- The settlement tab had lost its colour, PDFs were handed off outside the app, and the Memo field stuck while scrolling.
- How it helps
- You can read a settlement document without leaving the page and fill in the memo without fighting the layout.
- How to use it
- Open a settlement and click its PDF.
Settlement sends check CC addresses for suppression and keep a failed single send on screen
- Why we changed it
- Only the main recipient was checked against the blocked-address list, and a failed single send disappeared before you could act on it.
- How it helps
- You learn before sending that a CC address is blocked, and a failure stays visible so you can correct and resend.
- How to use it
- Send a settlement as usual; blocked addresses are flagged in the send dialog.
Settlement transactions without a truck can be edited again, and tab hover, the RPM cell and the CC header render correctly
- Why we changed it
- Editing a transaction that had no truck assigned failed, and several settlement cells and headers displayed incorrectly.
- How it helps
- Settlement corrections go through without workarounds and the table reads as intended.
- How to use it
- Open a settlement and edit a transaction; no setting to change.
Settlements no longer show empty counts and groupings that carried no information
- Why we changed it
- The settlements view displayed group headers and counts that were always blank or meaningless.
- How it helps
- The list is shorter and easier to scan, with only the figures that mean something.
- How to use it
- Open settlements; the extra rows are gone.
The Add and Edit Payment Item panel in revenue types opens and saves again
- Why we changed it
- The panel was broken, so payment items under revenue types could not be added or edited.
- How it helps
- Billing staff can set up and correct payment items on revenue types without a workaround.
- How to use it
- Open revenue types in settings and add or edit a payment item.
The checkbox on tinted revenue type cards stays visible
- Why we changed it
- On cards with a background tint the selection checkbox blended into the card and was hard to see.
- How it helps
- You can tell at a glance which revenue types are selected.
- How to use it
- Nothing to switch on. Open the revenue types list.
The manifests, fuel and tolls tables in settlements fit on screen without horizontal scrolling
- Why we changed it
- Column widths were too wide, so the tables ran off the edge on a standard wide monitor.
- How it helps
- Settlement detail can be read in one go instead of scrolling sideways to find a column.
- How to use it
- Open a settlement and look at the manifests, fuel or tolls tables.
The settlement cycle form has room for its date chips and refuses an empty closing time
- Why we changed it
- Date chips were cramped in the cycle form and a cleared closing time could be saved as blank.
- How it helps
- Cycle settings are easier to read and you cannot save a cycle with no closing time.
- How to use it
- Open settlement cycles and edit a cycle.
The settlement expand toggle is back and expanded rows take less space
- Why we changed it
- The toggle for opening a settlement's detail had gone missing, and expanded rows were taller than they needed to be.
- How it helps
- Settlement detail can be opened again and more of it fits on screen.
- How to use it
- Open settlements and use the expand toggle on a row.
The settlement payout column is tinted again and the expand toggle has a label
- Why we changed it
- The colour that marked the payout column had been lost and the expand control had no text describing it.
- How it helps
- Payout figures stand out at a glance and the expand control is clear, including for screen readers.
- How to use it
- Open settlements.
The settlement send result row lines up with the statement it belongs to
- Why we changed it
- The outcome shown after a send was misaligned against the rows, so it was hard to tell which statement a result referred to.
- How it helps
- You can read the outcome of each statement at a glance.
- How to use it
- Nothing to switch on.
The settlement transactions tab stays readable on narrower screens and shows full descriptions
- Why we changed it
- Below 1800px the tab crowded and transaction descriptions were cut off.
- How it helps
- You can read what each transaction is for without widening the window or hovering.
- How to use it
- Open a settlement and go to the transactions tab.
The settlements list stops jumping while it loads
- Why we changed it
- Rows shifted as the list filled in, so a click could land on the wrong settlement.
- How it helps
- You can open the settlement you aimed at on the first try.
- How to use it
- Nothing to switch on; open the settlements list.
The toll dialogs show the right vehicle selector and no longer have gaps between columns
- Why we changed it
- The accounting toll dialogs still used an older vehicle picker and their columns were spaced wrong, making entries hard to read and assign.
- How it helps
- You can pick the truck for a toll charge from the current vehicle list and read the dialog columns without misaligned spacing.
- How to use it
- Open a toll entry from the accounting screens.
Approval prompts for assistant actions no longer reappear once they have been answered
- Why we changed it
- A stale approval prompt could be repainted after it was already approved or declined, so it looked like the request was still waiting.
- How it helps
- What you see on screen matches what the assistant is actually waiting for, so you do not approve the same action twice.
- How to use it
- Nothing to switch on. Prompts clear themselves once you answer them.
Tender failure counts no longer include cancellations the app itself made
- Why we changed it
- Cancellations triggered internally by the app were recorded as failed tenders, inflating the failure numbers.
- How it helps
- Tender success and failure figures reflect what actually happened with carriers.
- How to use it
- Open the tender metrics in analytics; historical counts going forward exclude these.
After a rejected settlement send, Back is offered only when the send can still be corrected
- Why we changed it
- Back appeared even on settlements that had already been delivered, inviting a re-submission that could not work.
- How it helps
- Billing staff can tell a correctable rejection from a finished send and cannot send the same settlement twice.
- How to use it
- Nothing to switch on; visible in the settlement send flow.
Delivery tracking and the send table are back on settlements
- Why we changed it
- Delivery tracking and the scrolling send table had stopped appearing on the settlements send screen.
- How it helps
- Payroll staff can see what was sent and where it got to without leaving the settlement.
- How to use it
- Open a settlement and go to the send view; nothing to switch on.
Driver settlements use the company currency, validate toll entries, and warn before you discard edits
- Why we changed it
- Settlements could show the wrong currency, accepted invalid toll amounts, and dropped unsaved changes without asking.
- How it helps
- Settlement totals are right, bad toll entries are caught as you type, and you are asked before losing work.
- How to use it
- Open a driver settlement and edit it.
Gross weight on a manifest can no longer be overridden while the driver settlement is read-only
- Why we changed it
- A manifest let you type a gross override even when the linked driver settlement was locked, so the edit was either rejected or left the two records disagreeing.
- How it helps
- Locked settlements stay consistent with their manifests, and staff see straight away that the figure is not editable.
- How to use it
- Open a manifest tied to a read-only settlement; the gross override field is disabled.
Sending an invoice to factoring reports the outcome per order and stops retrying by itself
- Why we changed it
- A failed factoring send gave no reason and the dashboard kept retrying in the background, so it was unclear whether anything had been submitted.
- How it helps
- You see which orders were accepted, which were not and why, and you decide when to try again.
- How to use it
- Send to factoring from billing as usual and read the result.
Settlements show fleet details and settlement amounts together again
- Why we changed it
- On some settlements the fleet data or the money figures dropped out of the view, leaving the page incomplete.
- How it helps
- Payroll staff can read the truck and driver details next to the amounts without opening a second record to confirm them.
- How to use it
- Open a settlement; nothing to switch on.
The transaction dialog lays out its fields clearly, shows real entity tabs and aligns the pay item row
- Why we changed it
- Fields in the transaction dialog were crowded together, the entity tabs did not reflect the actual entities, and the pay item row sat out of alignment with the rest of the form.
- How it helps
- Staff entering or reviewing a transaction can read the form at a glance, switch to the entity they actually need and check pay items without misreading a misaligned row.
- How to use it
- Open any transaction dialog; the new layout is there with nothing to switch on.
The coverage page no longer crashes when a zone has a large radius
- Why we changed it
- Drawing a zone with a big radius broke the coverage page and left it blank.
- How it helps
- Wide coverage areas can be viewed and edited like any other.
- How to use it
- Open Coverage and select the zone that used to fail.
Portal users only see the areas their permissions allow
- Why we changed it
- The portal UI did not check customer portal permissions, so users could reach screens they were not entitled to.
- How it helps
- Customers see exactly what you granted them, and permission settings mean what they say.
- How to use it
- Review the portal permissions on each customer portal user; the UI now follows them.
The customer portals page scrolls properly and portal domain links open in a new tab.
- Why we changed it
- Longer lists of portals were cut off with no way to scroll, and clicking a portal domain replaced the dashboard tab.
- How it helps
- You can reach every portal in the list and open one without losing your place in the dashboard.
- How to use it
- Open the customer portals page; scrolling and links work as expected.
A broker that will be created with the load now appears in the client select
- Why we changed it
- When the composer was set to create a new broker along with the load, that broker was missing from the client picker, so the field looked empty.
- How it helps
- You can confirm which client the order is going against before saving, instead of trusting that the pending broker took.
- How to use it
- Create an order with a new broker and open the client select.
A note and its timestamp now sit on one readable line
- Why we changed it
- Notes wrapped awkwardly against their time, which made a list of notes hard to read.
- How it helps
- Notes can be scanned quickly to see who wrote what and when.
- How to use it
- Open any record with notes.
A refused step in the carrier tender flow resyncs, and a failed carrier invite is shown
- Why we changed it
- After a carrier refused a step the flow kept the old state, and an invite that failed to send gave no indication.
- How it helps
- You see the real status of the tender and know when an invite has to be sent again.
- How to use it
- Nothing to switch on; visible on the tender's carrier flow.
A refused submission now states the reason it was refused
- Why we changed it
- When a submission was rejected the message described the state of the form instead of what the receiving side objected to.
- How it helps
- You can see what to correct and resubmit without guessing.
- How to use it
- Nothing to switch on; the reason appears where the form was refused.
Date fields stop showing a format error while you are still typing the date
- Why we changed it
- The order composer validated a date on every keystroke, so a half-typed date was flagged as wrong before it could be finished.
- How it helps
- You type dates without a red error blinking at you, and only see a warning when the finished date is genuinely invalid.
- How to use it
- Type a date in the order composer; nothing to switch on.
Detention now uses the same thinned truck trail as the summary report, so the times match between the two.
- Why we changed it
- Detention read the full truck trail while the summary report read a thinned version, so the two could disagree on when a truck arrived and left.
- How it helps
- Detention times and the summary report tell the same story, which makes the charge easier to defend to a customer.
- How to use it
- Nothing to switch on; new detention calculations use the thinned trail.
Live updates no longer redraw the whole orders page
- Why we changed it
- Each burst of streamed updates re-rendered the entire orders list, which caused stutter and lost scroll position on busy boards.
- How it helps
- The orders board stays responsive while updates arrive, and your place in the list is kept.
- How to use it
- Open the orders list; the improvement applies automatically.
Load type icons use the standard foreground colour everywhere they appear
- Why we changed it
- The same icon rendered in different tones depending on the screen, which made load types harder to recognise at a glance.
- How it helps
- Load types look the same in lists, panels and detail pages, so you read them faster.
- How to use it
- Nothing to switch on.
One-click login from a tender reports success or failure instead of failing silently
- Why we changed it
- The outcome of the one-click login was swallowed, so nothing happened on screen when it did not work.
- How it helps
- You know immediately whether the login went through and why it did not.
- How to use it
- Use the one-click login on a tender.
One-click tender acceptance uses the same credential everywhere it is offered
- Why we changed it
- Different parts of the screen picked up their own copy of the credential, so a tender could be accepted in one place and refused in another.
- How it helps
- One-click acceptance behaves the same wherever you trigger it.
- How to use it
- Nothing to switch on.
Order-level comments and notes now show up in the note column of the order list.
- Why we changed it
- Notes added at order level were saved but never appeared in the note column, so the list looked empty.
- How it helps
- Dispatchers can see at a glance which orders carry a note without opening each one.
- How to use it
- Add or open a note on an order; it appears in the note column of the order list.
Picking a template on a new order replaces the draft again
- Why we changed it
- Since the 8 September 2026 release, choosing a template on a new order left parts of the earlier draft in place instead of replacing it.
- How it helps
- The order you start from a template contains exactly what the template says, so you are not hunting for leftover values from the draft you abandoned.
- How to use it
- Start a new order and pick a template; nothing to switch on.
Reopening the client picker while composing shows the chosen client instead of a stale search filter
- Why we changed it
- The picker reopened on whatever text was last typed rather than on the client already selected, so the right entry looked missing.
- How it helps
- Picking or changing a client on an order takes one step instead of clearing the leftover filter first.
- How to use it
- Open the client picker again on an order you are composing.
Rows in a long orders list stay in place while the list refreshes in the background
- Why we changed it
- Background refreshes rebuilt the virtual rows, so the list jumped under the cursor while scrolling.
- How it helps
- Dispatchers can scroll and click through long order lists without losing their place or hitting the wrong row.
- How to use it
- Nothing to switch on; visible on the orders list.
Rows in the orders table stay aligned while you scroll long lists
- Why we changed it
- Row positions were left to normal page flow instead of the scrolling engine's own offsets, so rows could shift or overlap on long lists.
- How it helps
- Scrolling a large order list shows rows where they belong.
- How to use it
- Nothing to switch on.
Searching in the orders table no longer leaves the list misaligned or the scrollbar stuck
- Why we changed it
- When search results replaced the rows, the table kept the old scrollbar geometry and the layout could jump or clip.
- How it helps
- You can search and clear a search in the orders list and keep a stable, correctly sized table.
- How to use it
- Nothing to switch on; search in the orders list as usual.
The appointment date picker in the order composer now works through to a saved date
- Why we changed it
- The transactional appointment date picker was incomplete, so picking an appointment date did not finish cleanly.
- How it helps
- Dispatchers can set pickup and delivery appointment dates while building the order, without leaving and coming back.
- How to use it
- Open the order composer and choose an appointment date on a stop.
The composer opens with one steady loading state instead of flashing a spinner between two skeletons
- Why we changed it
- Loading was drawn in three stages, so the screen flickered on every open.
- How it helps
- The open looks settled and is easier on the eyes for people who create orders all day.
- How to use it
- Nothing to switch on.
The delete option only appears on stops that can actually be deleted
- Why we changed it
- A stop could be offered for deletion even when the backend would refuse it, so the action failed with an error.
- How it helps
- Dispatchers see what they can really do on a stop instead of hitting a refusal.
- How to use it
- Open a load's stops; the delete action is hidden where it is not allowed.
The order side panel now loads the analytics matching the view you opened and shows a placeholder while it loads
- Why we changed it
- The side panel could show analytics belonging to a different view, and rendered nothing while data was on its way.
- How it helps
- The numbers in the panel match the order list you are looking at, and a skeleton makes it clear the panel is still loading instead of looking empty.
- How to use it
- Open an order view and look at the panel on the right.
The Orders table scrollbar appears as soon as the table loads
- Why we changed it
- A recent change delayed the scrollbar setup, so the Orders table could open without a usable scrollbar until something else forced it to appear.
- How it helps
- Dispatchers can scroll long order lists straight away instead of clicking around to wake the table up.
- How to use it
- Nothing to switch on. Open the Orders list.
Adding a truck warns about a duplicate VIN before you submit the form
- Why we changed it
- A VIN already on another truck was only refused when the create was submitted, so the form came back with an error after the work was done.
- How it helps
- The duplicate is flagged while you are still filling the form, so you can correct it without losing the entry.
- How to use it
- Add a truck and type a VIN that already exists; the warning appears in the form.
Deleting a carrier closes its dialog instead of leaving an empty form on screen
- Why we changed it
- After a delete the dialog stayed open on a record that no longer existed and blocked further edits.
- How it helps
- The delete finishes cleanly and you return to the list.
- How to use it
- Nothing to switch on.
Filter counts hold still while a large fleet list loads instead of jumping as results stream in
- Why we changed it
- Facet counts next to each filter recalculated on every batch of streamed data, so the numbers flickered and shifted under the cursor.
- How it helps
- You can read and click a filter while the list is still loading without the count changing out from under you.
- How to use it
- Nothing to switch on; open any filtered fleet list.
Pay percent groups can be set up and saved without the setup step dropping values
- Why we changed it
- The pay percent group setup flow mishandled part of its configuration, so groups could be created in a state that did not match what was entered.
- How it helps
- Driver pay percentage groups behave as configured, so settlements built on them start from the right numbers.
- How to use it
- Create or edit a pay percent group in the driver pay settings.
Saving a trailer with a VIN that already exists is caught right away with a clear message
- Why we changed it
- A duplicate VIN was only rejected late, and the duplicate-name error came back as untranslated technical text.
- How it helps
- You find out which field is the problem before losing the form, instead of reading a raw error.
- How to use it
- Add or edit a trailer and enter a VIN already on file.
The suppression badge on a profile appears only when settlement mail is actually blocked
- Why we changed it
- The badge showed for addresses that could still receive settlement mail, which sent staff chasing a problem that was not there.
- How it helps
- A badge on a profile now means mail is genuinely blocked and worth acting on.
- How to use it
- Nothing to switch on; visible on driver and carrier profiles.
The live location stream reconnects on its own and events are no longer delivered twice
- Why we changed it
- When the location stream dropped it stayed down until a page reload, and events were re-broadcast, so positions could appear duplicated or stale.
- How it helps
- Vehicle positions keep updating after a network hiccup and each update is processed once.
- How to use it
- Nothing to switch on.
The map page no longer crashes while the map style is loading
- Why we changed it
- A self-diffing style load could throw and take the whole map page down, leaving dispatchers with a blank screen.
- How it helps
- The map opens and stays up, so vehicle positions can be watched without reloading the page.
- How to use it
- Open the map as usual. Nothing to switch on.
Money code exports now cover the date range you picked
- Why we changed it
- The export sent dates in a format the server read differently, so the exported file could cover the wrong period.
- How it helps
- Exported money code data matches the range selected on screen, so reconciliation numbers line up.
- How to use it
- Pick a date range on the money codes screen and export as usual.
The Issued To filter on money codes now looks and behaves like the other filters
- Why we changed it
- The Issued To filter was built differently from the rest, so it looked out of place and behaved inconsistently.
- How it helps
- Filtering money codes works the same way across every column.
- How to use it
- Open money codes and use the Issued To filter.
Clicking a second day on a fixed appointment turns it into a date range
- Why we changed it
- Changing a fixed appointment into a window meant clearing it and starting over, because a second day click did not extend it.
- How it helps
- Appointment windows can be set with two clicks while planning a stop.
- How to use it
- In the stop composer, click one day for a fixed appointment, then a second day to make it a range.
A factoring connection that rejects your credentials now tells you how to recover it
- Why we changed it
- A refused connection failed silently, with nothing on screen about reconnecting or which credentials were at fault.
- How it helps
- Whoever manages the integration can fix the connection without opening a support case.
- How to use it
- Open the factoring integration in Settings when it reports a problem.
A failed request that nothing handles now tells you it failed instead of doing nothing
- Why we changed it
- Some backend failures were rejected without being caught, leaving the screen silent after an action.
- How it helps
- You find out an action did not go through rather than assuming it did.
- How to use it
- Nothing to switch on.
A tab that joins a live stream already in progress now receives the current data instead of waiting
- Why we changed it
- When a new tab attached to a stream that was already running, it missed the initial snapshot and sat empty until the next update.
- How it helps
- Newly opened tabs show current information right away.
- How to use it
- Nothing to switch on; open a second tab and the data is there.
Avatars drawn as plain images keep their space reserved, so pages stop jumping as they load
- Why we changed it
- Some avatars were rendered as plain images without set dimensions, causing layout shifts while they downloaded.
- How it helps
- Screens that show these avatars stay stable while loading, so nothing moves as you click.
- How to use it
- Nothing to switch on.
Clearing an optional selection in a form now saves as empty instead of keeping the old value
- Why we changed it
- On forms with optional pickers such as vendor or transaction category, emptying the field did not clear the stored value, so the previous selection came back after saving.
- How it helps
- A field you deliberately empty stays empty, so records do not carry a vendor or category you already removed.
- How to use it
- Nothing to switch on. Clear the picker and save as usual.
Dropdown fields no longer show placeholder text behind an already selected item
- Why we changed it
- When a selection was displayed as a card, the placeholder stayed visible underneath it.
- How it helps
- Selection fields read clearly, with no leftover text under the chosen value.
- How to use it
- Nothing to switch on.
Error messages show the actual reason a request failed instead of a generic message
- Why we changed it
- The reason was read from the wrong layer of the error, so the specific cause was lost.
- How it helps
- When something fails you see what went wrong and can act on it or report it accurately.
- How to use it
- Nothing to switch on.
Images across the dashboard reserve their space, so pages no longer shift while they load
- Why we changed it
- Images shipped without set dimensions, so content jumped as each one finished downloading.
- How it helps
- Screens stay stable while loading and clicks land where you aimed them.
- How to use it
- Nothing to switch on.
Lists refresh after an edit instead of showing stale rows
- Why we changed it
- Some cache invalidations pointed at tags no query actually supplied, so screens kept showing data from before the change.
- How it helps
- Edits and new records appear where you expect without a manual reload.
- How to use it
- Nothing to switch on.
Lists stop flickering and resetting when a background refresh returns the same data
- Why we changed it
- A refetch replaced stored data even when nothing had changed, causing rows to redraw and scroll position or selection to be disturbed.
- How it helps
- Tables stay put while data refreshes in the background.
- How to use it
- Nothing to switch on.
Live data survives a page reload and every snapshot is replayed to the tabs that need it
- Why we changed it
- Reloading a page tore down the shared stream, so tabs had to rebuild their state and could miss updates.
- How it helps
- A reload no longer costs you live updates in the other tabs you have open.
- How to use it
- Nothing to switch on.
Live updates start as soon as you are signed in to a company instead of after a delay
- Why we changed it
- The event stream waited longer than it needed to, so screens opened right after sign-in could sit without live data.
- How it helps
- Dispatch and fleet screens are current from the moment you land on them.
- How to use it
- Nothing to switch on; sign in and open a screen.
Member photos load into a reserved space instead of flashing at full size first
- Why we changed it
- Avatar images had no reserved box, so each photo appeared briefly at its original size and pushed the page around while loading.
- How it helps
- Member lists and profiles settle immediately, with no flash of oversized photos or shifting rows.
- How to use it
- Nothing to switch on; open the members list.
Member rows no longer jump while the list loads, and the flag setting is now a proper checkbox
- Why we changed it
- Rows in the members list shifted position as the page settled, and a true/false setting was shown in a way that was hard to read or toggle.
- How it helps
- Clicking a member hits the row you aimed at, and the setting can be turned on or off directly.
- How to use it
- Open the members list in settings.
Pages load the current version of the dashboard after a release instead of a stale cached one
- Why we changed it
- The index the app used to preload screens was not tied to a specific build, so browsers could keep serving files from an earlier release and pages would fail to open.
- How it helps
- After we ship an update, screens open normally without needing a hard refresh or a cache clear.
- How to use it
- Nothing to do; reload the dashboard as usual.
Pages render with the correct styles on first load instead of flashing unstyled content
- Why we changed it
- Style layer order was not declared in the initial CSS, so early paints could apply rules in the wrong order.
- How it helps
- The first screen after sign-in looks right immediately, with no visual jump.
- How to use it
- Nothing to switch on.
Pressing Enter in a search field selects the first matching option
- Why we changed it
- After typing to filter a dropdown, Enter did nothing until you picked an option with the mouse or arrow keys.
- How it helps
- You can type and confirm without leaving the keyboard, which speeds up repetitive data entry.
- How to use it
- Type in any searchable dropdown and press Enter.
Previewing documents no longer builds up memory across previews
- Why we changed it
- Each PDF preview kept its resources and prefetched pages after it closed, so opening many documents slowed the tab down.
- How it helps
- You can review document after document without the interface degrading.
- How to use it
- Nothing to switch on.
Retrying a failed one-click sign-in link now retries the request that actually failed
- Why we changed it
- When a link landing page hit an error, the retry sent a different request than the one that failed, so the page stayed stuck.
- How it helps
- Retrying from the landing page now gets the user signed in instead of repeating the error.
- How to use it
- Open a one-click link; if it errors, use the retry on the page.
Scheduling, tables, temperature entry and the orders map no longer crash the page
- Why we changed it
- Four crashes in production could blank the screen while working in scheduling, in tables, when entering temperature, or on the orders map.
- How it helps
- Those screens stay up, so work in progress is not lost to a reload.
- How to use it
- Nothing to switch on.
Settings dialogs confirm what happened and report errors instead of failing silently
- Why we changed it
- Some settings dialogs saved or failed with no feedback, and their titles were not readable by screen readers.
- How it helps
- You know whether a settings change went through, and see the reason when it did not.
- How to use it
- Nothing to switch on; open any settings dialog and save.
Sign-in code entry stops accepting guesses once the allowed attempts are used up
- Why we changed it
- The sign-in code field kept taking submissions after the attempt limit was reached, so users kept trying a code that could no longer succeed.
- How it helps
- Users are told to request a new code instead of repeating attempts that will never work, and the limit now actually holds.
- How to use it
- Nothing to switch on; request a fresh code if the attempts run out.
Switching companies reports a clear error instead of failing silently
- Why we changed it
- Two rejection cases from the company switch were not handled, so the switch could stall with no message.
- How it helps
- Users working across several companies see what went wrong and can retry.
- How to use it
- Use the company switcher; no setup needed.
Table header filters stop redrawing and losing their state while you use them
- Why we changed it
- A missing comparison on the filter items made the header rerender more than needed, which showed up as flicker and sluggish filtering.
- How it helps
- Filtering a large table feels steady and quick.
- How to use it
- Nothing to switch on; open a table's column filters.
Tables no longer steal or lose focus when they load
- Why we changed it
- A focus behaviour in tables never actually moved focus anywhere and could interfere with typing.
- How it helps
- Keyboard focus stays where you put it while working in a table.
- How to use it
- Nothing to switch on.
Tables open reliably when a saved view has no columns stored
- Why we changed it
- An incomplete check on saved view data could break the table when column settings were missing.
- How it helps
- Saved views load instead of showing an error screen.
- How to use it
- Nothing to switch on.
Tables show alternating row colours again in both light and dark themes
- Why we changed it
- A theming change removed the striped rows, making long lists harder to scan.
- How it helps
- Rows are easier to follow across wide tables, and the colours stay correct when you switch themes.
- How to use it
- Open any list or table; nothing to switch on.
The dashboard keeps its caches on start-up and checks its files before loading
- Why we changed it
- Start-up could throw away caches that were still good and load with mismatched files, leaving a blank or broken page until a hard refresh.
- How it helps
- Opening the dashboard is faster and more reliable, with fewer forced refreshes after a release.
- How to use it
- Nothing to switch on.
The first page you land on loads its data right away after a session is restored
- Why we changed it
- When a signed-in session was restored, the landing page could come up without requesting its data, leaving it empty until a manual refresh.
- How it helps
- Returning to the dashboard shows real content immediately instead of a blank screen.
- How to use it
- Nothing to switch on.
The loading screen now stays up until the page behind it is actually drawn and settled
- Why we changed it
- The initial snapshot was dropped too early, so you could see a half-built or flickering page while it finished loading.
- How it helps
- Opening the dashboard shows a stable screen instead of a flash of empty or shifting content.
- How to use it
- Nothing to switch on; visible on the next sign-in or page reload.
The registration progress rail fits inside the form column
- Why we changed it
- The step indicator overflowed the form column and pushed the registration layout out of shape.
- How it helps
- Registration reads cleanly at the widths people actually sign up on.
- How to use it
- Nothing to switch on.
The sign-in page no longer jumps while the changelog image loads
- Why we changed it
- The image box had no reserved space, so the sign-in form moved as the picture arrived.
- How it helps
- You can type your credentials immediately without the fields shifting.
- How to use it
- Nothing to switch on; visible on the sign-in screen.
Truncated text shows its full value on hover reliably, including after a panel resizes
- Why we changed it
- Overflow was measured once during layout, so text that became clipped later kept no tooltip and long values were unreadable.
- How it helps
- Long names, addresses and references stay readable wherever a column or panel is narrow.
- How to use it
- Hover a shortened value in any table or panel.
Uploaded images with special characters in their filenames no longer open as a blank page
- Why we changed it
- Filenames containing URL characters broke the link to the stored file, so the page showed nothing.
- How it helps
- Photos and scanned documents open no matter how the file was named on the phone or scanner.
- How to use it
- Open any uploaded image as usual.
Uploading a document no longer overwrites a file a colleague attached at the same time
- Why we changed it
- Attachments were saved unconditionally, so two people working on the same record could overwrite each other's file.
- How it helps
- Every uploaded document is kept, even when several people work on a record together.
- How to use it
- Nothing to switch on; attach documents as usual.
The rate matrix always opens in the current interface
- Why we changed it
- It was still possible for a built app to be pinned to the retired rate matrix screen.
- How it helps
- Everyone works in the same, supported rate matrix instead of an old version with known gaps.
- How to use it
- Open rate management; the current screen loads.



