Changelog
What’s new
Every release we have shipped, newest first. Features, improvements and the fixes we would rather you saw here than found for yourself.
Everything below is Operations. Crew joins the list when it leaves build.
32 releases. The newest 3 are open.
2026
A Calmer Workspace, Stronger Safety Controls & Document Reviews
A calmer operational workspace
The application has been refreshed with the cockpit design system across the core operations experience. Projects, jobs, scheduling, equipment and organisation areas now share a clearer hierarchy, more consistent controls and layouts that hold together on smaller screens.
Safety as an active control centre
The safety workspace now brings compliance controls and their audit events into one place. Teams can use the release controls and review state to keep safety work visible and traceable while a job moves from planning through delivery.
Review documents in context
Document review is now part of the operational flow rather than a detached filing step. Files and their review context are available from the workspace where the work is planned, helping teams keep the current evidence alongside the job it supports.
DJI Flight Logs, an Audit Trail & a Richer Flight Log Viewer
You can now pull flight logs straight from DJI, every important action is recorded in a new audit trail, and opening a flight log shows far more of what actually happened in the air.
Import flight logs from DJI
Connect your team’s DJI accounts and bring flights into echoMike without exporting files by hand.
- Connect your accounts under Organization → Integrations, in the new DJI Logs integration.
- Import from DJI straight from the flight list — pick which connected account to pull from when more than one is linked.
- Each imported flight arrives with its aircraft, date and time, total distance, duration and maximum altitude, then parses automatically and appears in your flight list.
A full audit trail
A new Audits page gives you a clear record of who did what, and when.
- Browse organisation activity in one searchable table, with a relative timestamp, the action, who performed it and the item it relates to.
- Filter by action — account connected, account needs attention, account removed, flight list refreshed, flight data retrieved, flight log imported and more.
- Filter by severity — info, warning, error and critical, shown as colour-coded badges — so you can jump straight to anything that needs attention.
A richer flight log viewer
Opening a flight log now shows the full picture of the flight, not just the headline numbers.
- Interactive map tracing the drone’s actual flight path, with the home point marked.
- Telemetry charts covering altitude and distance, horizontal and vertical speed, GPS satellites and signal strength, battery voltage, current and temperature, flight-control attitude and gimbal, and remote-control stick inputs.
- Summary stats at a glance — duration, total distance, maximum altitude and speed, photo and video counts, and the number of aircraft and batteries involved.
- Battery details read from the log, including serial number, cycle count, capacity and health, which you can link to your equipment records to track usage over time.
- Link the flight to a drone in your fleet, and re-parse a log at any time if you need to refresh its data.
Post-Flight Forms & CAA Audit Pack
Two more PDRA01 forms have landed in the Forms tab to close out the post-flight record, and a new CAA Audit Pack pulls your compliance documents together in one step.
Post-flight forms
The Forms tab now covers the full PDRA01 document set:
- Debrief form (Appendix D) — record what happened during the flight: deviations, observations and lessons learned. Your crew, aircraft and job details are already filled in.
- Occurrence / Airprox report (Appendix E) — structured reporting for any incident or near-miss. echoMike pulls in what it already knows about the site, crew and equipment so you’re not starting from a blank page.
Both forms sit alongside the Pre-Flight Survey in the same tab, keeping the full flight record in one place.
CAA Audit Pack
A new Audit Pack in the Reports section generates a ready-to-send compliance pack as a set of PDFs — operations manual, declarations and supporting documents — in one step. Useful for CAA oversight requests, operator audits, or keeping a dated compliance snapshot on file.
A Drone Catalogue, Fuller Equipment Records & a Brighter Calendar
Adding drones to your fleet just got a lot faster, your equipment records now hold far more detail, and the calendar has had a clarity pass.
Add a drone from the catalogue
When you add a drone, you can now pick it from a built-in catalogue of real models instead of typing every spec by hand.
- Search the list, choose your model, and its specifications fill in for you — weight and class, wind resistance, IP rating, flight time and more
- Everything stays fully editable, so you can tweak any value or still add a model that isn’t listed yet
- Where a model’s maker doesn’t publish a flyaway distance, echoMike estimates it from the drone’s speed and flight time, and you can always set your own
A full spec sheet on every drone
Each drone’s detail page now shows a complete Catalogue specifications panel drawn from the model you picked — take-off mass and class, wind resistance, IP rating, flight time and distance, top speed, service ceiling, operating temperature range, dimensions, battery details and more, with a link to the source.
Batteries added for you
When the drone you’re adding has a known battery, echoMike can create that battery as its own equipment record and link it to the drone automatically — a simple tick-box you can leave on or turn off. One less thing to enter by hand.
A brighter, clearer calendar
- The calendar now sits on a clean white surface so it stands out from the page like your other cards, while weekends stay gently shaded so they’re still easy to pick out
- The job-status dots on calendar events are brighter and easier to tell apart — New, In progress, On hold, Completed and Cancelled now read clearly at a glance, whatever colour the event is
Map Layers, Certificates on Your Calendar & More
A round of upgrades across the map, the calendar and certificates. Your map can now show the infrastructure and protected ground around your sites, your certificates appear right on the calendar, and events can repeat. There are also flight areas that stay clear on any base map and a way to cleanly end a certificate you no longer need.
New map layers
Your map can now show far more of the world around your sites. Turn any of these on or off from the map’s layer controls, and click a feature to see its details.
- Infrastructure: railway lines and their safety buffers, overhead power lines, pylons and towers, substations and power sites, and public footpaths and rights of way
- Environmental designations: Special Areas of Conservation, Ramsar wetlands, National Nature Reserves, SSSIs and conservation areas, so sensitive ground is visible before you plan a flight
- Points of interest: schools and other education sites, hospitals and healthcare, and emergency services
Each layer is its own toggle, grouped into tidy sections, so you can build exactly the picture you need. Larger sites such as substations, hospitals and schools now show their true footprint on the map rather than a single dot.
Flight areas that stand out on any map
Flight area outlines now stay clearly visible whatever base map you’re using.
- On satellite imagery and the darker map styles, flight areas get a bright outline; on the lighter styles, a darker one, so they never get lost against the background
- The right contrast is chosen automatically as you switch between map styles
Certificates on your calendar
Your certificates now appear on the main calendar, coloured by status, so upcoming expiries are impossible to miss.
- Turn the new Certificates calendar on from the calendar’s side panel, alongside your jobs, maintenance and leave
- Each certificate shows on its expiry date, coloured by whether it’s active, expiring soon, expired or cancelled. Hover for the details, or click to open the certificate
- You see your own certificates by default. Admins see them all, and there’s a new permission to let specific team members see everyone’s certificates too, so the right people get the full picture
End or cancel a certificate
Sometimes a certificate is no longer needed, like a contract you’ve decided not to continue. You can now cancel a certificate instead of deleting it.
- Cancelling keeps the record but stops its renewal reminders and takes it out of your “expiring soon” counts
- It’s clearly marked Cancelled, and you can filter your certificates to find cancelled ones
- Changed your mind? Reactivate it in one click and it carries on where it left off
Recurring calendar events
Events you add to your own calendars can now repeat.
- When creating an event, choose Daily, Weekly or Monthly and how many times it should repeat. The whole series is created for you in one go
- Need to clear a repeating event? Remove a single occurrence, or the entire series at once
Fixes & polish
- Editing a client reference on the client and project pages is now smooth. Typing stays put instead of dropping characters
A Fresh Look, Templates & a New Calendar
Our biggest release yet. echoMike has been rebuilt from the ground up around a warm, earthy new look — with full dark mode, a brand-new reusable Templates system, and a completely overhauled calendar that brings all your scheduling, sharing and subscriptions together in one place. Everything you already use is here, just calmer, faster and easier on the eyes.
A whole new look
The entire app has been redesigned with a softer, more natural palette — sage greens, warm cream and earthy accents — and a calmer, more consistent layout across every page.
- A refreshed home dashboard, projects, jobs, spatial panels, the survey wizard and organisation settings have all been rebuilt to share the same clean visual language
- Cleaner pages with less visual clutter — fewer hard borders, calmer rows, and consistent headers throughout
- Tabs, badges, status dots and accents now share one coherent colour system, so the same thing always looks the same wherever you are in the app
Dark mode
echoMike now has a proper, polished dark mode.
- Switch between light and dark from the menu in the sidebar — your choice is remembered
- The whole app, including the calendar, has been tuned for dark mode so everything stays readable and comfortable at night
- Status colours, badges and the calendar’s event pills all adapt automatically so text stays legible against any background
Templates
A new Templates area under your Organisation settings lets you set things up once and reuse them everywhere, so you’re not rebuilding the same configuration by hand each time.
- Job templates — define reusable job setups so new jobs start from a sensible, consistent baseline
- Certificate templates — set up the certificate types your team tracks once, ready to apply wherever certificates are recorded
- Maintenance templates — reusable maintenance types with their own checklists, ready to schedule against any equipment
- Permission roles — bundle a set of permissions into a named role and apply it to team members in one step, instead of ticking boxes one at a time
Everything lives on a single Templates page with a simple side menu to move between each area, and each is shown only to team members with permission to manage it.
A new calendar
The calendar has been rebuilt from the ground up — faster, clearer, and far more flexible.
- Overlay multiple calendars at once — see jobs, maintenance and more together in one view, each in its own lane, and toggle what’s shown with a filter
- Share calendars — share a calendar with the people who need it, so everyone’s looking at the same schedule
- Subscribe from anywhere — generate a subscription link to follow your echoMike calendar in Google Calendar, Apple Calendar, Outlook and other apps, kept up to date automatically
- Drag to reschedule events, and double-click any event — scheduled or unscheduled — to jump straight to its job or item
- A redesigned, restyled calendar surface that matches the rest of the app and works in both light and dark mode
Teams
You can now create teams manually from your organisation settings — group the right people together for scheduling and sharing, without waiting for them to be set up elsewhere.
Notes — replies & mentions
Notes on projects and jobs are now a proper conversation.
- Reply to a note to keep related discussion threaded together
- Mention a teammate in a note to loop them in directly
Faster, searchable lists
The lists you use most now handle large amounts of data gracefully.
- Project lists (and other large lists) search across everything and page through results rather than loading everything at once — so they stay quick even as your data grows
- The “send to jobs” picker is now searchable and pages through your jobs, making it easy to find the right one in a long list
- Recent jobs now appear in the sidebar — with the job’s date alongside its name — so the work you were just in is always a click away
Equipment Management
A brand-new way to track the gear your team flies with. The new Equipment area gives your organisation a single home for every drone, airframe, camera, battery, GPS receiver, base station and any other kit you own — with kits, per-item history, scheduled maintenance, certificates, and the ability to record exactly what equipment was used on each project and job.
Equipment
A new Equipment page under your Organisation settings lists everything your team owns.
- Add any kind of gear — drones, cameras, batteries, GPS receivers, data loggers, GCP base stations, and a general “other” category for anything that doesn’t fit a box
- Each item carries the details that matter for that type — serial number, firmware and software versions, supplier, purchase date and price, warranty, and a status (active, in maintenance, retired, and so on)
- Drones are treated as assemblies — a drone can link to the specific camera and batteries it’s built with, so you always know which components are in the air together
- Tags — define your own list of equipment tags in settings and apply them to any item for quick grouping and filtering
- Assign gear to a person — mark who an item belongs to so it’s clear who’s responsible for it
Viewing and browsing equipment is open to everyone in your organisation. Adding, editing and deleting is reserved for team members with the new equipment management permission.
Per-item detail page
Click any item to open its own page, which brings everything about that piece of kit together in one place:
- Full details and type-specific information
- For drones, links straight through to the camera and batteries it’s assembled with
- Who it’s assigned to
- The current and active jobs it’s being used on
- A photo gallery — upload images of the item, click any thumbnail to view it full-size with previous/next navigation
- Its maintenance history and upcoming maintenance
- Any certificates attached to the item
Kits
Group equipment into reusable Kits so you don’t have to assemble the same set of gear by hand every time.
- Build a kit from any combination of items, organised by type
- Each kit shows a readiness badge at a glance — whether every item in it is active and good to go, how many are ready, or whether it’s empty
- Assign a kit to a person, the same way you can with individual items
- Deleting a kit leaves the underlying equipment untouched
Equipment on projects and jobs
You can now record exactly what gear is associated with your work — and it carries through automatically.
- Set a default kit on a project during project creation, or from a new Equipment tab on the project page
- New jobs pre-fill their equipment from their project’s default kit, so the right gear is attached from the start — adjustable per job
- Add or remove equipment on a job at any time, in any job state, so you can record what was actually used even after the fact
- Per-member quick-add on a job — one click adds all the gear (and kits) assigned to a given team member to that job
- A gentle warning flags when an item used on a job is assigned to someone who isn’t on that job — nothing is blocked, it’s just there to catch mistakes
- The project Equipment tab also shows a usage rollup — which equipment has been used across all the project’s jobs, and how often
Maintenance
A full maintenance system keeps your fleet airworthy and your records straight.
- Maintenance templates — define reusable maintenance types (with their own checklists) on your organisation’s Templates page
- Schedule maintenance on any item as a one-off or on a recurring schedule
- Checklists with assignees, notes and photos — break a maintenance down into tasks, assign each to a team member, add notes, and attach photos as proof of work
- Maintenance on the calendar — scheduled maintenance appears in its own lane on the calendar, toggleable with a filter; drag to reschedule, or double-click to jump to the item
- Maintenance on your task list — maintenance tasks assigned to you show up on your personal My Tasks page, with a link straight to the relevant item
- Reminders — the team gets notified about upcoming maintenance before it’s due, so nothing slips through
- Filter the maintenance lists by time range to focus on what’s coming up or review past work
Certificates on equipment
Certificates can now be attached directly to a piece of equipment.
- Add a certificate from an item’s detail page, where it lives alongside everything else about that item
- Equipment certificates also appear on your organisation’s Certificates page, so they’re renewed and tracked right alongside your other certificates
Settings and access
- A new equipment management permission controls who can add, edit and remove gear, kits and maintenance — everyone else can still browse and view
- Equipment tags are managed from the Company tab of your organisation settings
- The organisation settings pages (Company, Templates, Employees, Integrations) have been tidied into tabs on a single General page, so settings are easier to move between
Survey Import Wizard
A full rebuild of how survey data lands on a job. The separate “Replace JXL” and “Pull from Trimble” buttons are gone — every import now flows through one Survey Import Wizard that handles JXL, CSV and TXT files (mixed in the same import), confirms each file’s coordinate system, lets you align against historical surveys at the same location, edit individual points, and finalise the survey statistics in a single guided flow. Plus a richer survey-tab map that highlights points with photos and opens them in place.
Survey Import Wizard
One flow for every source
The wizard opens from the survey tab’s “Import survey” button. It accepts:
- JXL files — drag-drop or file picker
- CSV / TXT files — same drop zone; column mapping is picked automatically and adjustable
- Trimble Connect — pull a JXL straight from a linked Trimble project via the integration card at the top of the upload screen
You can stage multiple files of mixed types in the same import — they merge into one survey on the job. Each point keeps a reference to the file it came from so the survey tab can still attribute a mixed batch.
Units detected from the JXL
If the source JXL declares its units (metres or feet), the wizard locks the unit picker on the upload screen to whatever the file says — no chance of accidentally re-interpreting a feet-based survey as metres. CSV / TXT imports have no embedded units so the picker stays interactive for those.
Coordinate system confirmation
A dedicated step asks you to confirm the coordinate system every file was recorded in. The picker offers the project’s own CRS as the top option whenever one is set — one click and you’ve locked the file to your project’s reference system. A side-by-side comparison card shows the project CRS against the file’s CRS, with the projection, datum and any horizontal / vertical adjustments laid out so a mismatch is obvious before you commit.
Mixed-CRS imports are supported — a button on the preview page reprojects every staged file to the project CRS in one go.
Edit screen
A redesigned edit table sits before the alignment step. It gives you in-place editing of every point with sensible safety rails:
Advanced toggle
Name, classification and code are editable by default — the kind of edits you make all the time. Easting, northing, elevation, the exclude toggle, and the delete button stay hidden behind an “Advanced” switch at the top of the table. Flipping it on tints the toggle so you can see at a glance that critical edits are unlocked. This stops a quick reclassification pass from accidentally rewriting survey coordinates.
Two-click delete
When Advanced mode is on, deleting a point now takes two clicks — the first turns the X red and arms it, the second deletes. Hover off the button and it disarms. No more accidental row drops from a stray mouse click.
Bulk operations
Select any number of rows, then:
- Reclassify them all to one class with a dropdown
- Toggle exclude-from-export on the whole selection
- Delete the selection (still gated by Advanced mode)
- “Remove all base points” — one click clears every point that was an RTK base for another point in the same survey
A class-summary chip strip at the bottom of the table filters the visible rows to one classification at a time and shows live per-class counts.
Vertical alignment
The wizard’s alignment surface (Page 9) is where you compare your fresh points against history and finalise your survey numbers.
Layout
A wide map at the top, your full points list below, and a right-rail detail panel that lights up the moment you click a row. The map carries the same category legend / filter you’d find on the survey tab.
Historical reference picker
Clicking a row in the table loads any survey points your team has previously recorded at the same location — both from sibling surveys on this job and from project-level historical uploads. Tick the ones you want as reference and the wizard:
- Shows an elevation history chart across all the historical readings, with a green reference line for the average of your selected references
- Computes the proposed delta for your current point
- Surfaces a green / yellow / amber CRS-match checkmark next to each historical reference so you can see at a glance whether its coordinate system is compatible with the one you’re aligning against — no more silently averaging across mismatched systems
Per-point manual override
Below the computed delta there’s a Manual override field where you can type a delta in millimetres for that specific point and apply it directly. The points table marks any row with a user-entered delta with a small M badge so the rest of the team can tell at a glance which deltas were tweaked versus computed.
Apply button state
The Apply button now visibly reflects whether your current selection has unsaved changes — amber ring + “Apply” when there’s something to commit, dimmed “Applied” when the computed value already matches what’s saved on the point. No more guessing whether your click did anything.
Delta colours
Δ values across the alignment table are colour-coded by tolerance — green ≤ 10 mm, yellow ≤ 25 mm, red beyond that — so outliers jump out without reading every number.
Statistics
The stats card on the alignment page now lets you edit the mean directly. Type a custom value, save it, and the rest of the dispersion stats (std dev, RMS, 2-sigma) still compute from the actual deltas — only the mean is overridden. A revert button puts you back to the auto-calculated value at any time.
When a manual mean is saved with the survey, the finalised stats on the survey tab show a small amber Manual badge next to the mean so reviewers can tell the value was hand-entered rather than averaged from the points.
Survey-tab map — Photos
Survey points that carry attached photos now show a green ring around them on the survey-tab map. Clicking any photo-bearing point opens a popup with a small ”📷 View N photos” button — one click and the photo viewer opens with the latest versions of the images fetched fresh on demand. No more digging through tables to find which point has photos.
Backwards-compatible
Existing surveys on your jobs continue to render exactly as before. Opening an old survey via the pencil icon hydrates it straight into the wizard’s alignment page so you can re-align, tweak deltas, or finalise stats with all the new tooling — without losing any of the data your team already captured.
Quotes, Multi-Client Contacts & Sweep-Up Polish
A wide sweep-up release: a new Quotes section on the Finance tab, contacts that can belong to multiple clients, primary contacts on each client, employee-left status, a tile view for projects, plus a long list of polish fixes across calendar, notifications, notes, CRS and the documents table.
Finance — Quotes & Invoices
The project Finance tab now has two new sections sitting either side of Purchase Orders.
Quotes (above POs)
- Upload one or many PDF quotes at once via drag-drop or file picker
- Each quote captures:
- Reference — defaults to the filename (extension stripped) so you can skip retyping
- Date of creation — defaults to today
- Value — explicitly labelled ex-VAT
- Status — Draft / Sent / Accepted / Declined / Invoiced (defaults to Draft)
- Optional note
- Each quote on the project page shows the reference, date, ex-VAT value, a colour-coded status chip you can change inline, the attached PDF (with download), and any note
- Workflow: Quote (can be rejected) → PO → Invoice
Invoices (below POs)
- Drag-drop PDF invoices straight onto the project — no metadata required for now, just the files
Documents table
Quote and Invoice PDFs uploaded from the Finance tab now show up automatically in the Documents table for the project, with their own colour-coded type chips.
Contacts — Multi-client + Primary
A contact can belong to multiple clients
If Company A and Company B share a contact, you no longer have to duplicate them. Each contact has a primary client and an “Also part of” picker for any additional clients. The contact then appears wherever you list contacts for any of those clients.
- Create Contact dialog: an “Also part of” multi-select with chips for the extra clients
- Edit Contact dialog: same picker, prefilled with the contact’s current set
- Removing a contact properly cleans up all its client links
Primary contacts on a client
Each client now has one or more primary contacts — these will be the defaults for receiving job/project updates when notifications are rolled out further.
- A new star column on a client’s contacts table — click to mark/unmark a contact as primary for that client
- The client header gains a small
N primarybadge once at least one primary is set - When a contact is deleted they’re automatically removed from any client’s primary list
Calendar
- Reset filters button in the filter panel header — one click to restore the out-of-the-box filter state
- Finance Icons toggle in the filter panel (off by default) — when on, jobs with at least one PO allocation show a £ icon next to their job icon on the calendar
- Per-section tab titles — the browser tab now reads “echoMike – Calendar” / “echoMike – Map” / “echoMike – Dashboard” etc., so it’s clear which section is in which tab
Project tile view
The Projects list now has a list / tile toggle at the top of the table.
- Tile view shows each project as a card with a Mapbox-rendered map thumbnail centred on the project, overlaying the primary flight-area boundary when one exists
- Status and restricted-airspace flags surface as chips on each tile
- Choice persists in the URL so you can share a tile-view link
Notifications
- Mark a notification as unread — hover any notification in the bell dropdown and use the toggle to flip read/unread, in case of a mistaken click. The icon shows the current state (closed envelope for unread, open envelope for read)
- echoMike favicon — the browser tab icon is now the echoMike logo
Employee status (admin only)
On Organization → Employees, each row now has a status toggle:
- Mark as left with a confirmation step (records the leaving date)
- Reactivate to bring someone back
- Inactive rows are hidden by default — flip Show inactive to see them
- Left employees are filtered out of: job assignment pickers (existing assignments stay visible for history with a “(left)” tag), and any notification recipient lists
- Existing assignments are preserved so historic jobs still show who was on them
Project page — Jobs Overview & Notes
Jobs overview (project page)
The Jobs Overview list on a client’s projects already showed allocated PO amounts where present. The Allocated column is now also visible on the client page projects list, sitting between PO Total and Remaining.
Notes (project & job)
The notes section has been tightened up across both project and job notes:
- Priority is now a dropdown on the same line as the note text — priority on the left, note text on the right (previously a chip row above the textarea)
- Default priority is now Medium
- “Med” priority label renamed to Medium
- Notes now sort High → Medium → Low, with newest-first inside each priority
Job tasks
- Completed tasks keep the green tick but no longer get a strikethrough — the text simply greys out, much easier to read
- When a job is cancelled, any assigned tasks stop appearing on the assignee’s My Tasks page (they remain attached to the job so uncancelling fully restores them)
Spatial / CRS
- The CRS card on the Spatial tab now always shows a Save and Cancel button at the bottom of the edit form (disabled until the form is valid) — previously the Save button only appeared after picking a code, which made it look like changes weren’t going to commit
Flight Area wizard — Simplify boundaries
A new Simplify boundaries tool joins TOAL zones and Area splitting on page 2 of the wizard. Useful after a dense KML import where the polygon has far more points than the analysis needs.
- A tolerance slider in metres (0.5 m to 50 m, default 2 m) controls how aggressive the simplification is
- Live preview shows the vertex count before and after for every boundary in the area, plus a total — so you can see the impact at the chosen tolerance before committing
- Apply only writes the boundaries that actually change, and a single click handles every boundary in the area at once
- KML-sourced boundaries keep their original snapshot, so a re-import from the file picker can restore the unsimplified version if you go too far
Bug fixes
- Clicking Create Client from inside the Create Project dialog no longer accidentally submits the half-filled project form
- Documents table picks up the new Quote/Invoice files automatically — they no longer get dropped from the list
Annotations, Mileage & Org Tools
A wide-ranging release: nine new annotation types, a redesigned mileage system with manual entries, vehicle archiving, a much tighter organisation settings page, and a stack of polish fixes — including a notifications bug that’s been hiding real notifications behind a non-zero bell count.
New Annotations
Placemarkers
- Explosive Material — bomb icon, safety-locked colour
- Plant / Machinery — tractor icon
- Aeropoint — yellow-bordered checkerboard, matches the survey-tab aeropoint marker
Areas
- Emergency landing area — orange polygon with a helipad “H” centred inside
- Livestock area — green polygon with a cow icon centred inside
Linear features
- Railway — black track-style line with perpendicular tie marks along it
- Plant / machinery route — orange line with tractor icons spaced along it
Annotation tweaks
- Observer location icon swapped to a lightning bolt (zap)
- Overhead cables icon swapped to binoculars in the toolbar; the line itself now renders lightning marks along it so “electric” reads at a glance
- Access route icon swapped to footprints; arrows now follow the line direction across every segment, with a guaranteed larger arrow at the final point you dropped — no more missing or wrong-way arrows on short or angled routes
- Overhead cables: height above ground is now optional. Leave it blank if you don’t know it and the cable still saves
- The polygon icon in Areas and Measure → Area is now a pentagon, visually distinct from the circle / radius option next to it
- Annotation menu items are now sorted alphabetically within each category
- The standalone eye / eyeoff toggle for project annotations on the job spatial page has been removed — the same toggle now lives inside the map filter button
Manual mileage on jobs
How mileage gets tracked against a job has been rebuilt:
- Manual mileage is now a running list of entries instead of a single override value — add one now, another later, delete any individually
- Each entry can carry an optional label (e.g. “Site visit”, “Backtrack”)
- The Trips Log “Assigned to Job” column always renders, even when ABAX is offline, disconnected or token-expired — so you can keep logging mileage regardless of integration state
- Manual entries live under a “Manual entries” dropdown at the top of the Assigned column, matching the per-vehicle dropdowns below
- Manual mileage is added to the ABAX-tracked total everywhere job mileage shows: calendar tooltip, Trips Log total, and the new job-header badge
The job header banner now shows a small “X.X mi” badge with the combined total (ABAX trips + manual entries) so you can see job mileage at a glance without digging into the Trips tab.
ABAX / live vehicles
- When the ABAX session expires you’ll now see a clear in-app toast instead of live vehicles silently rendering nothing — the message asks you to contact your site administrator to reconnect ABAX
- The Trips Log tab now shows a friendly Reconnect ABAX prompt with a button into the integrations page when the session has expired, in place of the previous red error icon
Vehicles page (Organization → Vehicles)
The vehicles page has been rebuilt to scale with large fleets:
- List view — each vehicle is one dense row instead of a card in a 3-column grid
- Click any row to expand it and reveal the assigned users, certificates and add-user controls — same functionality as before, just tucked away until needed
- The collapsed row shows the vehicle name, registration, assigned-user count and certificate count at a glance
You can also now archive vehicles:
- An archive button on every row marks a vehicle as no longer in use — useful for vehicles that have been retired but still show up via the ABAX API
- A Show archived toggle at the top of the page reveals archived vehicles (hidden by default) with a count next to the label
- Archived rows get muted styling and an “Archived” badge when shown; the same button restores them
Notifications
A bug where the bell icon showed a notification count but the dropdown panel was empty has been fixed. Every unread notification the bell counts is now guaranteed to appear in the panel, plus a short history of recently-read notifications underneath for context.
Client page — projects list
The “Projects & References” table on a client’s detail page has been rebuilt:
- New columns: Jobs (count of non-deleted jobs in each project), Created date, Last edited date
- Every column is sortable — click the header to toggle ascending / descending
- Default sort is alphabetical by project name
- A search bar at the top filters across all columns at once
- The status badge is now editable directly from the list — click it on any row to change between Active / Completed / Archived without entering the project
Job schedule — month navigation
The month picker on the client-page Job Schedule now has previous / next chevron buttons flanking the dropdown so single-month jumps don’t need to open the menu.
Calendar — open unscheduled jobs
Double-click an unscheduled job in the calendar’s left-hand panel to open that job’s detail page — matching how double-clicking a scheduled event has always worked.
Organisation Settings — condensed redesign
The general organisation settings page has been tightened:
- All four sections (HQ Location, Coordinate Reference Systems, Cancellation Reasons, Maximum VLOS distance) sit in a tighter grid — three small sections side-by-side on wide screens, with HQ Location across the top
- HQ Location: address chip and Clear / Save controls now live in the card header so the map and search take the body height; the map is slimmer
- Coordinate Reference Systems: redesigned to match the Cancellation Reasons pattern — currently-selected systems show as chips, and a single “Add or remove…” button opens a popover with the full master list. No more wall of checkboxes
- Maximum VLOS distance: the number input and Save button now sit on a single row
Flight Areas
A new Flight Areas system that gives every project a structured way to manage its operational boundaries — KMLs, hand-drawn polygons, TOAL coverage zones, and area splits all live inside named flight areas that you can assign to one or more jobs. Plus new annotation types, master-map integration, and a handful of polish fixes.
Flight Areas
The “KMLs” section on the project and job spatial tabs is now Flight Areas. Each flight area groups together one or more boundaries (uploaded KMLs and / or polygons you draw in the app) and carries computed metadata about the operation it represents.
Creating one
A new two-page wizard walks you through setting up a flight area:
- Page 1 — Boundaries: name the area, then build it up from any mix of:
- Uploaded KML files (drag-and-drop, multi-file)
- Polygons drawn in the app on the embedded map
- Existing project KMLs picked from a dropdown — handy when the KML is already in your project’s documents
- Page 2 — Risk & assignment: launch the TOAL or Splitting sub-tools (see below) and tick which jobs in the project should receive this area
- A red pin marks the project’s HQ on the wizard map so you have an anchor before any boundaries exist
- Boundaries you upload, draw, edit, or split are all visible side-by-side — uploading a KML doesn’t lock you into “KML-only” and drawing doesn’t lock you out of uploads
- Node editing: toggle “edit nodes” on any boundary to drag vertices or add midpoints directly on the map
Computed metadata
Every flight area automatically shows:
- Total area in m² / ha / km²
- Maximum distance between any two boundary nodes — drawn on the map as a dashed line spanning the area’s two farthest vertices, with the distance labelled at the midpoint
- Both update automatically a few seconds after you add, edit, or remove a boundary
TOAL zones
A dedicated TOAL zones sub-tool computes where a take-off / landing position can sit while keeping every boundary node within visual line of sight.
- Uses your organisation’s Maximum VLOS distance setting (set in Organization → Settings) with an optional per-area override
- For each piece in the flight area, draws a VLOS-radius circle at every vertex and intersects them — the green overlap polygon is where a TOAL can live
- Single piece, single TOAL fits → green banner + overlay
- Multiple pieces, every piece solvable → one green zone per piece, distinct colours, “All N pieces solvable, N TOAL positions needed”
- Multi-TOAL needed → amber banner pointing you at Area Splitting, with the exact count of unsolvable pieces
- Per-piece zones render on the main project and job maps too, not just inside the wizard
Area Splitting
When the TOAL tool reports multi-TOAL needed, the Area splitting sub-tool lets you cut the area into pieces that each fit a single TOAL.
- Manual mode: click points on the map to draw a cut line — the cut line and the resulting pieces preview live as you move the mouse, with each piece’s area and percentage shown in a list so you can balance the split before committing
- Auto 50/50: bisects perpendicular to the area’s longest axis through the centroid in one click
- Each piece previews in a distinct colour
- Applying the split replaces the area’s boundaries in place with the new pieces — the same flight area now contains
Part 1,Part 2, … and the TOAL tool re-runs per piece
Master map integration
You can also turn a polygon drawn on the master map straight into a flight area:
- Finish drawing a measure-polygon as usual → a “Make flight area” button appears on the toast
- Click it → small dialog to pick the destination project, name the area, and optionally tick which jobs to assign to
- Continue to editor → the full Flight Area wizard opens on the new draft so you can keep going with TOAL, splits, additional boundaries, etc.
- The polygon disappears from the master map (it’s a real flight area now) and shows up on the chosen project’s spatial tab once you finish the wizard
The flight area list
The list of flight areas on the project and job spatial tabs has been rebuilt to match the Control Points list density, with full visibility controls:
- Locator icon on every card flies the project / job map to that area
- Send-to-job icon opens a focused dialog for assigning the area to any of the project’s jobs without entering the full wizard
- Expanded view shows every boundary in the area (KML or DRAWN) with its name and a download icon, plus a separate TOAL Zones section listing every computed zone
- Eye / EyeOff toggle on every boundary AND every TOAL zone for fine-grained map visibility
- On the job spatial tab, the area’s overall Eye / EyeOff controls whether it appears on the job map
- Each boundary and each TOAL zone can be downloaded as a KML with a single click
- Jobs are sorted by date in the assignment list, with date + status pills next to each name
Drafts and finishing
Opening the wizard doesn’t pollute the project list — areas only appear after you press Finish. If you close the wizard mid-build, the work stays as an invisible draft and the list stays clean.
New Annotations — Datum, Parking, Photo Location
Three new placemarker tools are now available on the annotation toolbar on every project and job spatial tab:
- Datum location — green filled triangle, visually matching the survey control-point marker so a surveyor recognises the shape across the survey tab and any spatial map
- Parking location — slate-grey parking icon
- Photo location — pink camera icon
Access Route
A new Access route linear annotation joins the existing Overhead Cables tool — sky-blue line with a directional arrow at the destination end. Draw a route, click to add waypoints, double-click to finish — the arrow indicates direction of travel.
Settings — Maximum VLOS Distance
A new field on the organisation settings page sets the org-wide default radius used by the TOAL zone tool when drawing VLOS circles around each boundary vertex. Per-area overrides are possible inside the TOAL sub-tool.
Polish & Bug Fixes
- Distance labels on measure lines now sit at the actual midpoint of the line, not on the end vertex
- Tool priority — when a placemarker tool is active, clicking a previously-drawn radius circle places a new marker rather than opening the circle’s edit dialog
- Trimble photo failures no longer spam toasts and error monitoring — a single inline “Failed to load image” appears once and stays put instead of flooding the screen with retry attempts
- Spatial maps no longer render orphan KMLs — KMLs that aren’t attached to a flight area don’t appear on the project or job maps. Use the wizard’s “Pick existing project KML” option to attach them
- Max-distance line accuracy — KMLs with cutout holes no longer get a max-distance line jumping between an outer vertex and a hole vertex; only outer-ring vertices count
- Page 1 — Boundaries: name the area, then build it up from any mix of:
JXL Photos from Trimble
Photos taken in the field by Trimble Access now follow the JXL all the way through to the app. Every survey point or elevated control point that has photos shows a camera icon — click to see exactly what the surveyor saw on site.
Photos Linked to Each Survey Point
When you import a JXL from a linked Trimble project, every survey point that had photos attached to it in Trimble Access now carries those photos through to echoMike.
- A small camera icon appears in the survey points table for any point that has photos.
- Clicking the icon opens a lightbox that fetches the photo from Trimble on demand. Multiple photos per point are supported — use the left / right arrows to step through.
- A photo count badge shows when a point has more than one photo.
- No photo data is stored on our end — only the filenames are kept. Photos stay on Trimble Connect and are fetched fresh each time you open the lightbox.
Photos on Elevated Control Points
Control points elevated from a Trimble-sourced survey point carry their photos through too.
- Hover an elevated control point on any spatial map — the popup now shows a small note when photos are available with the count.
- Click the point to open the same lightbox used by the survey-data table.
- Works on both the project spatial tab and the job spatial tab — anywhere control points are shown.
- Control points that came from CSV uploads or manual entry don’t have photos and continue to behave as before — no extra clutter for non-photo points.
Limitations
- Photos are only available for JXLs imported via the Trimble dropdown. Directly-uploaded JXLs and historical CSV control points won’t have working photo buttons.
- Photo URLs expire after a few hours — that’s why we fetch them on every open instead of caching, and it means a lightbox that’s been open all afternoon may need to be reopened to keep working.
Bug Fix — Survey Map Stretching
The survey-data tab’s map no longer stretches awkwardly when you drag the left or right sidebar — it now resizes properly with the surrounding layout, including the initial render when the tab first opens.
Map & Annotation Polish
Quality-of-life pass across the spatial tools — live measurements while you draw, persistent map filters, a default annotation group so you can start drawing instantly, and a faster way to move work between groups.
Live Measurement Readouts
Every measurement and area tool now displays its value at the cursor as you draw, so you can size shapes precisely without committing first.
- Distance lines show running length (m / km) at the cursor on every mouse move
- Polygon areas show running area (m² / ha / km²) — works for measure polygons and every area tool (flight volume, no-fly, low/high hazard)
- Circle tools (measure circle, hazard points, every circle-shaped area type) show live radius with the same readout
- Readout vanishes the instant you finalise, cancel, or escape
Persistent Airspace Filters
Airspace and NOTAM filters now follow you around the app — set them once and they apply on every map.
- NOTAM category toggles, airspace altitude, NOTAM max radius, and NOTAM max height now persist across the master map, project spatial tab, and job spatial tab
- Settings survive page refresh and switching between maps
- One filter state for the whole app — no more re-configuring on every screen
Default Annotation Group
Selecting an annotation tool no longer interrupts you with a “create a group first” dialog.
- The first time you reach for a tool on a job or project, a “Default” group is created automatically and set as active
- Existing groups still work the same — auto-select picks the first one if any exist
- The ”+ New group” button in the panel is still there when you want to organise into named groups
Move-to-Group Dropdown
Reorganising annotations no longer means deleting and redrawing.
- A new folder dropdown sits next to the delete button on every annotation row
- Lists every other group in the same scope — pick one to move the annotation across
- Stays scope-safe: job annotations can only move between job groups, project annotations between project groups
Annotations Grouped by Tool Type
Expanding a group now sorts its annotations into sub-sections by tool type, so similar items are visually clustered.
- Small uppercase headers per type (“Measure distance”, “Take-off / landing”, “Flight volume area”, etc.)
- Order matches the toolbar: Measure → Placemarkers → Areas → Linear
- Makes long groups much easier to scan
Annotation Toolbar Polish
Small UX cleanups on the floating tools button.
- “Select / pan” removed from the dropdown — instead, a small X icon appears below the toolbar trigger whenever a tool is active, giving you a one-click way out of drawing mode
- The persistent “active tool” tooltip chip is gone — the trigger icon already changes to show the active tool
- Annotation list eye toggle moved to the left of each row and restyled to match the KML and Control Points lists — fades to 30% when hidden, returns to primary when visible
Wind Speed on Master-Map Popups
Hovering a project pin on the master map now shows wind context alongside the temperature.
- Wind (average) and Gust values shown in mph
- Reuses the same lazy weather fetch — no extra cost or queries
Restricted Airspace Moved to Project Level
The “Restricted Airspace” flag is now set on the project, not per-job — which matches how the data was already stored.
- Toggle is now on the project header — click the Restricted Airspace badge to flip it on or off at any time
- The toggle is removed from the job header to avoid two places editing the same value
- A job’s header still shows a small read-only Restricted Airspace badge when the parent project is flagged, so the warning is still visible at a glance
- Calendar icons automatically reflect the project-level setting — every job in a restricted project now shows the icon consistently, and flipping the flag updates them all at once
Bug Fixes
- Deleting a job no longer throws an error in the spatial tab — the job-scope annotation queries now degrade gracefully when the parent job has been removed, instead of crashing the surrounding view
- Same gentle handling applied to project-scope annotation queries
Other
- Placeholder text in form inputs is now noticeably dimmer so example values (“John Doe…”) read as hints rather than content
- Static stats cards removed from the home page — they weren’t wired to live data
Map Annotations
A new on-map annotation system spanning the master map, project spatial tab, and job spatial tab. Draw measurements, drop placemarkers, mark flight volumes and hazards, trace overhead cables, and export everything to KML/KMZ.
Annotation Toolbox
A pen-tool button on every spatial map opens a categorised dropdown organising tools into four groups:
- Measure — distance (multi-point), polygon area, circle radius
- Placemarkers — TOAL, emergency landing, access/egress, site compound, pilot location, observer location, GCP, base station, low/high hazard points, notes
- Areas — flight volume, no-fly zone, low/high hazard areas (each with polygon or circle variants picked inline on the same row)
- Linear — overhead cables with required height-above-ground
The trigger button’s icon changes to reflect the currently-selected tool so you can see at a glance which drawing mode you’re in.
Drawing Workflow
Single-click point placement
- Placemarkers drop with one click — no save dialog interrupts the flow. The tool stays active so you can rapidly drop a row of TOALs, GCPs, hazards, or any other point marker
- Notes auto-open the edit dialog the moment you drop them, so you can type the note text immediately without a second click
- Click an existing marker to open the edit popup — change name, notes, colour, or delete
Measurements & areas
- Measure tools and area tools open a save dialog after drawing, letting you name the annotation, add notes, and confirm the computed value
- Circle tools prompt for a radius, defaulting to the drag-radius so you can adjust precisely
- Cables require a height in metres above ground — the value renders on the map and exports correctly to KML
Annotation Groups
All annotations live inside named groups (sets) so you can organise work logically.
- Create a group with a name and optional description before drawing
- Master Map groups are private by default with a one-click toggle to share with everyone in your organisation
- Project and Job groups are visible to anyone with project access — no per-group sharing needed
- Search filters groups by name, description, or creator
- Created by + date shown on every group so you can tell at a glance who set up what
- Delete a group removes the group and every annotation inside it — a confirmation dialog prevents accidents
Visibility Controls
Fine-grained control over what’s shown on the map without losing your work.
- Eye icon on every group toggles its annotations off the map (row dims in the panel)
- Eye icon on every individual annotation for spot-hiding without affecting the rest of the group
- Hidden state is session-only — refreshing brings everything back
Job Map Inheritance
When you open a job’s spatial tab, its parent project’s annotations appear at low opacity so you can see the broader context without confusion.
- Star badge on every project annotation set marks it as inherited from the parent project
- Eye button above the toolbar hides all project annotations in one click
- Per-set and per-annotation toggles also work on project sets for finer control
- Click an inherited annotation to jump straight to the project’s spatial tab where it can be edited
- Job-scope annotations stay strictly separated — they don’t appear on the project map or on other jobs in the same project
Safety-First Colours
Critical features have locked colours so they’re always recognisable.
- No-fly zones, hazard areas (low/high), hazard points (low/high), and overhead cables use fixed colours — the colour picker is hidden on these types with a “safety-critical colour is locked” note
- All other types (TOAL, GCP, flight volume, notes, etc.) support per-annotation colour overrides via a colour picker in the edit dialog
- Hazard areas use a dashed border so they’re recognisable even when the fill blends with the basemap
- No-fly zones render above flight volumes on the map automatically, so a flight-volume polygon can’t accidentally hide a no-fly zone beneath it
KML / KMZ Export
- Per-annotation checkboxes in the panel let you build a selection across groups
- Export selected in the panel header downloads only the checked items
- Export group in each group’s row downloads everything in that group
- Both KML (plain XML) and KMZ (zipped) formats supported
- Per-type styling preserved in the export — colours, fills, and line widths match what you see on the map
- Overhead cables export with altitude — when opened in Google Earth they float at their stored height above ground
Master Map
The master map (
/map) gets a lightweight measure-only mode for quick scratch work.- All three measure tools (distance, polygon area, circle radius) work the same as on project pages
- Measurements show as toasts AND render with their value labelled on the map
- No save dialog, no Convex persistence — drawings stay until you refresh the page
- Click a measurement to clear it individually
- Useful for quick area or distance checks without cluttering project annotation lists
Other Improvements
- Annotation panel matches sidebar card styling alongside CRS, KML, and Control Points cards on project and job pages
- Fullscreen support — the toolbar, dialogs, and panels all work correctly when the map is expanded to full-screen
- GCP markers use a checkerboard glyph that mirrors the survey-tab aeropoint style for instant recognition (with a different border so the two can’t be confused on a shared map)
- Click-guard — clicking an existing annotation while a placemarker tool is active opens its edit dialog instead of placing a duplicate marker
Control Points
A new control point management system integrated across projects and jobs, with CSV import, map visualisation, and per-set visibility controls.
Control Points
CSV Import
- Upload CSV or TXT files with automatic column detection and presets for PENZC, PNEZC, PENZ, and PENZCD formats
- Flexible column mapping to Name, Easting, Northing, Elevation, Code, and Description
- Skip first row checkbox for manual header override
- Coordinate system selection — Project CRS, OSGB36 / British National Grid, or WGS 84
- Set metadata — record provider, date received, and description per upload
- Only Name, Easting, and Northing are required — elevation and other fields are optional
- Original CSV file is stored for later download
Manual Entry & JXL Elevation
- Add individual points manually with name, coordinates, elevation, and type
- Elevate survey points from JXL data to project-level control points using up/down arrow icons in the survey data tab
Map Display
- Green triangle markers with point name labels
- Hover popups showing set name, elevation, CRS, and a warning if the CRS doesn’t match the project
Set Management
- Per-set visibility toggles on the map using eye icons, matching KML layer behaviour
- Star important sets and filter to starred only
- Do Not Use flag marks sets as inactive with a visual strikethrough without deleting
- Set info panel with metadata, point count, source type, and download link
- Delete sets with all associated points
Other Improvements
- Scrollable sidebar on project and job spatial tabs — expanding cards no longer pushes the map off screen
- Condensed CRS card with name, code, and effective date shown inline
- Notifications now sorted most recent first
In-App Notification System
A new notification system with a bell icon in the header, real-time alerts for certificate expiry and task assignments, and the foundation for admin-created custom notifications.
New Features
Notification Bell
- Bell icon in the header with a real-time unread count badge
- Click to open a dropdown panel showing recent notifications
- Each notification shows a severity dot (red/amber/blue), title, message, and time ago
- Click a notification to navigate directly to the relevant page
- Dismiss individual notifications on hover, or mark all as read in one click
- Unread notifications are visually highlighted in the dropdown
Certificate Expiry Notifications
- Daily automated check scans all certificates across the organisation
- Certificates expiring within 30 days generate a warning notification
- Expired certificates generate a critical notification
- User-scoped certificates notify both the assigned employee and all admins
- Organisation-scoped certificates notify admins only
- Notifications are deduplicated — the same certificate won’t generate repeat alerts unless the status changes (e.g. from expiring to expired)
Task Assignment Notifications
- When a user is assigned a task on a job, they receive an instant notification with the task name and a link to the job
- When a user completes a task, all admins are notified with who completed it and which task
- Self-assignments don’t trigger a notification (you already know)
- Notifications link directly to the relevant job page
Notification Infrastructure
- Notification rules table supports system triggers, scheduled sends, and manual sends — ready for admin-created custom notifications in a future update
- Auto-cleanup runs weekly: dismissed notifications older than 30 days and read notifications older than 90 days are automatically removed
- Built on Convex real-time subscriptions — notifications appear instantly without page refresh
Certificate Bulk Download & NOTAM Colour Standards
Bulk download certificates as a structured zip file, and NOTAM map colours now follow industry-standard conventions.
New Features
Certificate Bulk Download
- Select multiple certificates using checkboxes in both list and card views
- Group-level select all checkbox on each template group header for quick selection
- Selection toolbar shows count with Download and Clear buttons
- Download dialog lets you pick exactly which attached files to include per certificate before downloading
- Files organised into a structured zip archive:
{Template Name}/{Certificate Name}/{original filename} - Certificate names in the zip match the display name shown in the UI (primary name field, template name fallback)
- Progress indicator during download with file count
Combined Airspace Controls
- Airspace is now a single parent toggle that controls both UK Airspace Restrictions and UK NOTAMs
- Sub-toggles underneath let you enable/disable each layer independently
- Shared height filter applies to both airspace restrictions and NOTAMs — one dropdown instead of two
- Filter preferences (height, radius, NOTAM categories) are now cached in localStorage so they persist across sessions
Improvements
Standard NOTAM Map Colours
- NOTAM circles now follow the industry-standard colour convention:
- Red — Restrictions (danger areas, prohibited/restricted airspace)
- Yellow — Not yet active (validity start date is in the future)
- Blue — Currently active
- Detail panel badge and dot colours match the map circle colours
- Status row added to the detail panel showing “Restriction”, “Not Yet Active”, or “Active”
NOTAM Category Toggle Fix
- Toggling a category now correctly deselects just that one instead of the previous confusing behaviour where clicking one would hide all others
- Show All button re-enables all categories
- Categories start with all selected by default
NOTAM Visibility
- NOTAM circle fill opacity increased for better visibility on the map
- Fixed an issue where NOTAM circle borders would disappear when toggling categories
CRS File Type Fix
- Fixed a crash on the files table when a project contains CRS (Coordinate Reference System) files
- CRS files now display with a cyan badge and can be changed via the type dropdown
UK NOTAMs on Map & Date Picker Improvements
Live UK NOTAM data now available as a toggleable map layer with color-coded severity, filtering, and a detail panel. Plus a consistent date picker across the app and certificate expiry badge improvements.
New Features
UK NOTAMs on Map
- Live NOTAM data fetched hourly from the NATS PIB XML feed and displayed as a toggleable layer on all maps (master map, project, and job pages)
- NOTAMs rendered as geographic circles using their actual radius, powered by Turf.js
- Color-coded by severity — red for restrictions (danger areas, prohibited/restricted airspace), amber for warnings (obstacles, parachute jumping, UAS activity, military exercises), blue for caution (aerodrome info, comms, procedures)
- Q-code classification based on the official NATS NOTAM Selection Criteria document, with human-readable group headers (Restrictions, Warnings, Facilities, Services, etc.) and specific category labels
- Condition codes decoded to plain English (e.g. “Activated”, “Will Take Place”, “Closed”)
NOTAM Detail Panel
- Clicking a NOTAM opens a fixed detail panel on the left side of the map, matching the existing project list panel design
- Shows severity badge, group header, category, NOTAM ID, location, FIR, condition, full description, validity dates, schedule, altitude (as flight levels), and radius
- Pagination when multiple NOTAMs overlap at the click point — navigate with arrow buttons, sorted by smallest radius first
- Map highlight — the currently viewed NOTAM is highlighted with stronger fill and outline on the map, updating as you navigate
NOTAM Filters
- Radius filter — show NOTAMs up to 5, 10, 25, 50, 100, 250, or 500 NM (defaults to 50 NM, hides FIR-wide 999 NM NOTAMs)
- Height filter — show NOTAMs at or below 500ft, 1,000ft, 5,000ft, or 50,000ft (defaults to 5,000ft)
- Category filter — multi-select checkboxes for each NOTAM group (Restrictions, Warnings, Facilities, Services, etc.) with a “Show All” button
- Filters appear below the NOTAM toggle in the map controls popover
NOTAM Update Countdown
- When NOTAMs are active, a live countdown timer appears in the map stats bar showing when the next hourly data refresh will occur
Accuracy Warning
- An amber warning banner appears on the map when NOTAMs are enabled: “NOTAM positions are approximate. Always verify exact locations before flight.”
Improvements
Consistent Date Picker
- All date input fields across the app now use a calendar popover instead of the browser’s native date picker
- Calendar supports dropdown month/year navigation for quick access to any date
- Dates displayed in a consistent “27 Apr 2026” format
- Applied to: CRS effective date, purchase order dates, job PO allocation dates, file permission dates, document dates, and all certificate date fields
Certificate Expiry Badges
- The combined “expiring/expired” badge on certificate groups has been split into two separate badges
- Amber badge shows certificates expiring within 30 days
- Red badge shows certificates already past their expiry date
- Each badge only appears when the respective count is greater than zero
Certificate Management Overhaul & Trimble Enhancements
Major certificate management improvements including tags, filters, grid/list views, renewal tracking, vehicle linking, and a revamped Trimble JXL file picker.
New Features
Certificate Tags
- Admins can define a shared list of tags on the Templates page for categorising certificates
- Tags can be applied to any certificate during creation or editing
- Tags appear as badges on certificate cards and list rows
- Filter certificates by tag across both the admin and personal certificates pages
Certificate Filters & Search
- Full search bar across all certificate text fields, employee names, and template data
- Status toggles — filter by Active, Expiring Soon, Expired, or Revoked (always visible, multi-select)
- Filter popover with Certificate Type, Tags, Issuing Body, Expiry period presets, and Employee filters
- Scope toggle on the admin page — switch between All, Organisation, and Employee certificates in one view
- Active filter badges with one-click removal and a Reset button
- Employee filter uses a searchable multi-select dropdown
Grid & List View Toggle
- Switch between card grid and grouped list views on both the admin and personal certificates pages
- List view defaults on both pages for faster scanning
- List view groups certificates by template type with collapsible sections
- Each group shows a count badge and expiring/expired warning indicator
Certificate List Detail View
- Click any certificate row to expand and see full details inline
- Two-column layout: field data on the left, document previews on the right
- Document previews load lazily — images show as thumbnails, PDFs render the first page
- Column headers for Issuing Body, Expiry, Tags, Employee, and Status
Certificate Renewal System
- Renew button on each certificate with a confirmation dialog
- Renewing archives the current certificate and creates a new version with the same details pre-filled
- The edit dialog opens automatically after renewal so you can update dates, documents, and other fields
- Renewal history dropdown (lazy-loaded) shows all previous versions with dates and status
- Renewed certificates are automatically hidden from main lists — only the current version shows
Primary Name Field
- Any text, number, dropdown, vehicle, employee, issuer, or dedicated Name field can be set as the primary display name in the template builder (star toggle)
- The primary field’s value is used as the certificate’s title in list view, card view, and calendar
- Only one field per template can be primary — setting one clears the others
- Falls back to the template name if no primary field is set
New Template Field Types
- Name field type — dedicated certificate name field, acts as default primary name
- Multi-Select field type — dropdown allowing multiple selections, displayed as badges
- Vehicle field type — links certificates to ABAX vehicles, stores name and registration number for display without needing to fetch from ABAX
- Issuer field type — pulls from the org-wide issuing bodies list for consistent naming
Hidden Certificates
- Admins can mark certificates as hidden from employee when creating or editing
- Hidden certificates don’t appear on the employee’s My Certificates page
- “Hidden” badge shown next to the status on the admin page for visibility
Certificate Expiry Calendar
- Bryntum Calendar below the certificate list showing all expiry dates as events
- Events colour-coded by status: green (active), amber (expiring), red (expired)
- Hover tooltip shows primary name, status badge, currency amount, issuer, employee, and tags
- Calendar respects all active filters
- Month view on desktop, agenda view on mobile
Improvements
Admin Certificates Page Restructure
- Organisation and employee certificates merged into a single filtered view
- Scope toggle replaces the two separate sections
- Add button is now a dropdown: “Organisation Certificate” or “Employee Certificate”
- Employee column visible in both grid and list views
Template Builder Improvements
- Debounced saves — text edits in the template builder no longer lag or drop characters when typing fast
- Drag-and-drop field reordering now fully functional with @dnd-kit
- Number field supports three formats: Decimal, Whole Number, and Currency (£)
- Dropdown fields can be set as primary name
Trimble JXL File Picker
- Files now show created/modified date and author name from Trimble
- Job status displayed as a badge (Active, Closed, Field Work Complete)
- List sorted newest first by modified date
- Cleaner layout: author and date shown bold at the top, job name below
Survey & Map Fixes
- CRS mismatch detection improved with fuzzy matching — OSTN15 now correctly matches “OS National Grid (OSTN15)” instead of false positives
- Mapbox map rendering fixed — maps no longer appear squashed when first loading on a tab; ResizeObserver keeps dimensions in sync
- Historical survey points query paginated to avoid 16MB byte limit on large projects
- Trips log crash fixed — vehicle lookup no longer crashes when a vehicle ID isn’t in the map
Other Improvements
- Purchase order file uploads now accept
.eml(Outlook email) files - IndexedDB version fix for airspace cache — resolves “version less than existing” errors
- Certificate number field in templates preserves decimals correctly (e.g. 74.01 no longer truncated)
- Employee field validation fixed — required employee fields no longer block submission on My Certificates page
- Template icons render correctly in filter dropdowns and certificate type selector
Certificate Templates & Smart Form Builder
Certificate creation is now template-driven. Admins define certificate types with configurable fields, and users fill in only what’s relevant. Plus multi-file uploads, drag-and-drop, document thumbnails, and more.
New Features
Certificate Templates
- New Certificate Templates section on the Templates page (alongside Job Templates)
- Admins create templates that define which fields appear when adding a certificate
- Each template has a name, icon, description, and scope (Organisation, User, or Both)
- 9 smart field types available: Text, Long Text, Date, Date Range, Dropdown, Employee, Number, Issuing Body, and Files
- Fields can be marked as required and configured with placeholders, dropdown options, date range labels, and number suffixes
- Drag-and-drop reordering of fields within a template
- Templates collapse by default for a cleaner overview — click to expand and edit
Issuing Bodies Management
- Admins define a shared list of issuing bodies at the top of the Certificate Templates section
- The Issuer field type in templates pulls from this org-wide list, ensuring consistent naming across all certificates
- Compact inline UI with pill chips for existing issuers and a quick-add input
General Certificate Template
- A built-in General Certificate template is always available for all users, even if no admin templates have been created
- Includes standard fields: Certificate Name, Certificate Number, Issuing Body, Validity Period (issue and expiry dates), Notes, and Documents
- Ensures employees can always add their own certificates without waiting for admin setup
Dynamic Certificate Form
- Certificate creation now starts by selecting a certificate type (template)
- Form fields render dynamically based on the chosen template
- Date Range fields automatically extract the expiry date for status tracking (Active / Expiring Soon / Expired)
- Employee field renders a dropdown of organisation members — only shown when an admin is adding a certificate for another employee
- Dropdown fields show template-defined options as a select menu
- Issuing Body field shows the org-wide issuers list as a dropdown
Multi-File Uploads with Drag-and-Drop
- Certificates now support multiple file attachments (previously limited to one)
- Drag-and-drop files directly onto the upload zone, or click to browse
- Document thumbnails shown during upload: images display as actual previews, PDFs render a first-page thumbnail via PDF.js
- Existing files shown when editing, with the ability to remove individual files
Improvements
Template Page Organisation
- Both Job Templates and Certificate Templates now live on the same Templates page
- All template cards are collapsed by default, showing a summary line (name, type badge, field/role/stage counts)
- Click the chevron to expand and edit — keeps the page manageable as templates grow
Certificate Card Display
- Cards now render dynamic fields from template data, with proper formatting for each field type
- Date ranges show formatted start–end dates, employee fields resolve to names, number fields show suffixes
- Image file thumbnails shown inline on the card for quick visual reference
- Legacy certificates (created before templates) continue to display correctly
Job Overview PO Amounts
- The jobs overview list on a project now shows allocated PO amounts next to each job
- Displayed as a pound amount with tooltip, only shown when a job has PO allocations
Purchase Order File Uploads
- Added .eml (Outlook email) as an accepted file type for PO attachments alongside .pdf and .msg
Survey CRS Mismatch Warning
- When importing a JXL file via Trimble Connect or direct upload, the system now checks if the file’s coordinate reference system matches the project CRS
- If they differ, a warning dialog shows both CRS details and lets the user choose to proceed or cancel
- No warning shown if the project has no CRS set or if they match
Certificate Management & Org Settings Expansion
Certificate tracking for the business and individual employees, custom category management, and new admin settings pages.
New Features
Organisation Certificate Management
- New Certificates page under Organisation Settings for admins
- Upload and track business-level certificates: insurance (PL/EL/PI), Health & Safety, drone certifications, vehicle insurance, and more
- Each certificate stores name, certificate/policy number, issuing body, issue date, expiry date, attached document, and notes
- Automatic expiry status tracking — certificates are flagged as Active, Expiring Soon (within 30 days), or Expired based on their expiry date
- Admins can manually mark certificates as Revoked
- File upload support for attaching scanned certificate documents (PDF, images, Word docs)
Employee Certificates (My Certificates)
- New My Certificates page in the sidebar, accessible to all users
- Employees can self-manage their own qualifications: CSCS cards, GVC, drone licences, and other personal certifications
- Admins can view and manage all employee certificates from the Organisation Certificates page
- Same expiry tracking and file upload capabilities as organisation certificates
Custom Certificate Categories
- Admins can define custom certificate categories from the Organisation Certificates page
- Each category has a scope setting: Organisation only, User only, or Both
- Scope controls which categories appear when adding organisation vs personal certificates
- Categories shown as pills with one-click removal, matching the existing cancellation reasons UI pattern
Improvements
Organisation Settings Navigation
- Added Certificates sub-page under Organisation settings in the sidebar
- Added My Certificates as a top-level sidebar item visible to all users
Vehicle Utilisation Overhaul & Trimble Deep Links
Reworked vehicle utilisation reports, configurable HQ and employee home locations, Trimble project deep links, calendar subscribe buttons, and dashboard task filters.
New Features
Configurable HQ Location
- Organisation HQ location is now a setting rather than hardcoded
- Set via an interactive Mapbox map with address search on the Organisation Settings page
- Used by the vehicle utilisation report to identify commute trips
Employee Home Locations
- Admins can set a home location for each employee from the Employees page
- Interactive Mapbox map with address geocoding, matching the project location picker
- When set, the vehicle utilisation report uses home coordinates to more accurately identify commute trips
Calendar Subscribe Links
- Each calendar feed now shows one-click copy buttons for Outlook, Google Calendar, and Apple Calendar deep links
- Copy the link and send it directly to your client so they can subscribe in one click
Trimble Project Links
- Project and job headers now show a direct link to the linked Trimble Connect project
- Opens the project in Trimble Connect web at
web.connect.trimble.com - Removed the manual Propeller and Trimble URL fields from the job header
Dashboard Task Filters
- Quick-action date filter buttons on the My Tasks card: All, Upcoming, This Week, Next Week, Last Week
- Filters both your task list and job assignments by date
- Status counts update to reflect the selected date range
Improvements
Vehicle Utilisation Report
- Working hours formula changed from “first HQ arrival to last HQ departure” to total day span minus commute time
- New formula: (first trip start to last trip finish) minus (home-to-HQ trip duration + HQ-to-home trip duration)
- If no commute trips are detected (e.g. multi-day jobs away from HQ), no time is subtracted
- Falls back to first/last HQ trip durations when no employee home location is set
Bug Fixes
Survey Map Vectors
- Fixed RTK vector lines not appearing when JXL files were imported via the Trimble integration instead of manual upload
- The
rtkBaseNamefield was missing from the Trimble import path
Saved Calendar Views & RTK Vectors
Saved calendar filter views, RTK vector visualisation, sortable tables, and client PO summaries.
New Features
Saved Calendar Views
- Save current calendar filter combinations as named views for quick access
- Built-in “My Schedule” view available for all users
- Set any view as the default to auto-load when you open the calendar
- Update, rename, or delete saved views from the bookmark dropdown
RTK Vector Lines
- New “Vectors” toggle on the survey map showing dashed lines from each rover point to its RTK base station
- Helps visualise baseline distances across the site
Client PO Summary
- Projects table on the client detail page now shows PO Total and Remaining columns
- Remaining amount shown in green when positive, red when over-allocated
Improvements
Sortable Tables
- Projects table columns (Project, Status, Airspace) are now sortable
- Clients table columns (Client, Status, Created) are now sortable
Survey Map
- Map legend icons now match the actual map symbols
- Map centres on the job location rather than fitting to all points
Survey Map Accuracy & Inline Editing
Survey point map coordinates now resolve correctly for localised JXL files, and point types are editable directly in the table.
Bug Fixes
Survey Points Map
- Fixed survey points displaying hundreds of metres from their true position when using a Trimble localisation
- Horizontal adjustment translation is now correctly reversed to produce accurate WGS84 coordinates for the map
- Rotation and scale parameters are correctly handled as metadata absorbed by the custom projection — only the translation offset is reversed
New Features
GCP Point Type
- Added GCP as a new point classification, alongside Normal, Control, Stakeout, and Aero
- Points with a code of “GCP” are automatically classified on upload
- GCP points appear on the map with a dedicated crosshair icon in purple
Inline Classification Editing
- Point type can now be changed directly in the survey table by clicking the badge — no need to open the sidebar
- Inline select dropdown with save/cancel controls, matching the documents table pattern
- Classification changes are disabled when statistics are locked
Improvements
Survey Report Card
- Map legend and category filter controls moved into the report card alongside point count badges
- Aero checkerboard map icon updated to black and white for better contrast
- Buttons (Historical, Replace, Delete) now wrap on smaller screens instead of overflowing
- Comparison sidebar stacks below the main content on smaller screens instead of overlapping
Spatial Tab Polish & Survey Layout
UI improvements to the Spatial tabs and survey data layout.
Improvements
Spatial — CRS Panel
- CRS change form now hidden behind a compact edit button next to the active CRS badge
- Added cancel button and drag-and-drop support for JXL file uploads
- CRS history toggle pinned to the bottom of the card so it is always visible
- CRS file download now preserves and displays the original file name
Spatial — Map Controls
- Map filter controls (airspace, vehicles) moved inside the map overlay, matching the master map layout
- Standardised filter control placement across project, job, and master map views
Jobs — Survey Tab
- Survey map and report card now display side by side on larger screens
UI
- Updated badge colours from black to a muted blue-gray for a softer, more professional look
Coordinate Systems & Survey Map
Coordinate system management in Spatial tabs and WGS84 survey point mapping in Jobs.
New Features
Spatial — Coordinate Systems
- Added coordinate system panel to Spatial tabs — admin-editable, viewable by all users
- Change the active coordinate system for a project with a timeline view of past coordinate systems
Jobs — Survey Map
- Survey points from JXL files now display on a Mapbox map in the Jobs survey tab
- Coordinate systems are translated from localisation to WGS84 for accurate map placement
PO Client Assignment, UI Tweaks
Client assignment on purchase orders, plus small UI refinements to the master map.
Improvements
Purchase Orders
- Added client assignment to purchase orders — select a client from the project’s linked clients when creating or editing a PO
- Client name now displays as a badge on the PO card
Master Map
- Project list now defaults to minimised view
- Van icons reduced by 10% for a cleaner map layout
Master Map Refresh, Vehicle Tracking Icons & Assigned Vehicles
A refreshed master map layout with smarter vehicle tracking — distinct icons for moving and stationary vehicles, and filtered views showing only assigned vehicles.
Improvements
Master Map
- More compact project list layout
- New dropdown for map controls
Vehicle Tracking
- Car icons now visually distinguish between moving and stationary vehicles
- Vehicle list now only displays vehicles assigned in organisation settings, hiding unused vehicles
Purchase Orders, Job Allocation & Tab Persistence
A new purchase order system for managing project finances, plus quality-of-life improvements to page navigation.
New Features
Purchase Order System
- Create and manage purchase orders at the project level
- Attach files to individual purchase orders for documentation and record-keeping
- Allocate purchase orders to jobs with custom amounts
- Timeline view showing all allocated purchase orders, their assigned jobs, and amounts
Improvements
Tab Persistence
- Project and job page tabs now remember your last active tab when navigating away and returning
Address Search, Localisation Display, KML Inheritance & Trip Reports
New search capabilities on the master map, smarter localisation display, automatic KML inheritance, and improved trip reporting.
New Features
Master Map Address Search
- Search for addresses directly on the master map to quickly navigate to any location
KML File Inheritance
- New jobs now automatically inherit KML files from their parent project
Improvements
Localisation Display
- Localisation is now presented in two parts — horizontal adjustment and vertical adjustment
- Horizontal adjustment displays the scale factor value
- Vertical adjustment shows as “Vertical Shift” when slope north and slope east values are both zero, or “Inclined Plane” when either has a non-zero value
Trip Reports
- Trip reports now use project name instead of job name
- Cancelled jobs are separated from the main job list and shown under a dedicated “Cancelled Jobs” section
- Total mileage is now displayed below each section
Map Styles, Airspace Filtering & Vehicle Icons
A set of fixes and improvements to the map experience, airspace visibility, and vehicle tracking.
Improvements
Map Styles
- Added map style icons for monochrome, streets view, and additional base map options
Airspace Altitude Filtering
- Restricted airspace zones now filter by altitude, defaulting to 500ft
Vehicle Icons
- Vehicle icons updated with directional heading indicators
- Color-coded vehicle icons for easier identification
Task Management
- Tasks can now be cancelled, allowing users to mark a job as complete without finishing every task
Master Map, Client Enhancements & Calendar Improvements
Our first update brings a new master map view, a richer client experience, and a range of quality-of-life improvements across the calendar and job management.
New Features
Master Map Page
- New map view showing all projects and jobs across the platform
- Filter by project or client to focus on what matters
- Quick access to job details directly from map markers
Client Page Enhancements
- View a map of all jobs associated with a client
- See a schedule of upcoming and past jobs for each client
- Create ICS calendar links from a client page for easy external calendar sync
Improvements
Job & Project Management
- Job and project notes are now editable inline
- Job and project priority can be updated directly
Calendar
- Projects in the new job dialog are now sorted alphabetically
- Filter icons in the calendar for faster navigation
- Event popup now shows the percentage of tasks completed