4071 Updates
226 Days of History
7 Products
1292 New Features
All Products AIOne Mobile AssetSmart FlowSmart InvoiceSmart MapSmart Platform SolveSmart
Wednesday, 17 June 2026 2026-06-17 Fix invalidate schedule/route cache after offline workflow resync (55d4868a) 2068802 Fix hold the lock overlay through a TERMINATION too (abc3ce50) (#142) 047fb4f Fix hold a "submitting" overlay after a gated SOD until the lock lands (abc3ce50) (#141) d64bbf3 Fix terminated SOD → red banner + Redo button after dispatcher clears it (abc3ce50) (#140) 7088890 Fix terminate-reopen SOD gating + brand theming on SOD/workflow (abc3ce50) (#139) b57beb3 Fix vertically centre stop-detail action button labels (abc3ce50) (#138) 48d7fd5 Fix fast-poll for ANY server-cleared route lock, not just SOD approval (abc3ce50) (#137) de05971 Fix SOD per-day gating + faster approval poll + resume on last page (abc3ce50) (#136) c8faa60 Fix pre-fill the redo SOD form from the rejected submission (abc3ce50) (#135) 6147fd2 Fix give the driver a Redo button when Start of Day is rejected (abc3ce50) (#134) 55e5ffc Fix lock the whole Route screen when route is locked (abc3ce50) (#133) c280b21 Fix per-segment workflow — single header, full height, return to Route (#132) 17d9acb Fix show SOD on the Schedule tab for no-pickup routes (ticket abc3ce50) (#131) 4040e71 Fix gate route until SOD is APPROVED, not just submitted (ticket abc3ce50) (#130) 77f9fee Fix enforce mandatory SOD lock on Route tab + stop details (ticket abc3ce50) (#129) 1c1b3ed Fix code-login form full height (ticket 73a6a304) (#128) dcfd658 Fix landscape consistency pass (workflow / exception / calendar / stop buttons) (#127) 9811163 Fix stop number excludes pickups in workflow modal (c53d22cc) (#126) 6203cd0 Fix date-picker highlights any browsed month + month header wrap (#125) 8616ddc Feature schedule date-picker day-highlights + month status breakdown (#124) b9808cc Fix landscape parity — modal orientation + notch insets + group action bar (#123) b472c31 Fix keep date navigation on the no-route screen (landscape) (#122) 1bf876e Fix scope GET /for-entity by productCode (abc3ce50) f44217d Fix Control Room must show the LATEST SOD/EOD submission, not the earliest (abc3ce50) 2d8251a Fix expose 'terminated' as a SOD redo state (abc3ce50) (#422) 2bd8027 Fix terminated SOD must re-require after dispatcher clears the lock (abc3ce50) (#421) 0ccee57 UI shrink SOD/EOD awaiting-approval "!" badge (c53d22cc follow-up) (#420) ec4c8ca Feature show driver's fail/skip reason in the route-lock banner (c53d22cc follow-up) (#419) d6bf257 Improvement slim route-lock notice into one thin banner (c53d22cc follow-up) (#418) 054b421 Feature approve SOD/EOD submissions in-place + "!" awaiting-approval chip (c53d22cc follow-up) (#417) 484f3b6 Fix surface rejected-SOD answers for redo pre-fill + drop SOD-DIAG log (abc3ce50) (#416) a3041bc Fix actually resolve @aione/workflow-components to 1.22.0 (c53d22cc) (#415) 56659f8 Feature /tickets command — list a user's open tickets (#414) 0e9d4cb Update bump @aione/workflow-components to ^1.22.0 (c53d22cc) (#413) 3305900 Fix /ticket wizard + suite-wide binding for FixSmart ticketing (#411) 893dfb9 Update temp [SOD-DIAG] log to pinpoint approval-gate failure on YPO (abc3ce50) (#412) 03b3e4e Fix failed/skip lock + EOD-skipped messages use drop-off number (c53d22cc) (#410) d134118 Fix enforce SOD approval lock after loading moves route to in_progress (abc3ce50) (#409) 8c52a46 Fix make failed/skipped ack banner truly global (c53d22cc) (#408) e1142a0 Fix position transit-rule breaks (lunch) by time, not the solver's fromStopId (#407) 68b8a2d Fix suppress SOD loading-leg ops "stop completed" emails (2a341974) (#406) a5a6f8f
Tuesday, 16 June 2026 2026-06-16 Fix landscape modal notch insets, compact floating workflow footer, scroll-to-error (#121) 24d71da Fix stay on Stop Details through status flow + landscape reason/picker modals (#120) 0b2e871 Fix compact landscape action bar + keep workflow in landscape (#119) b1d96da Fix apply left/right safe-area insets to all screens for landscape (#118) 81f2a96 Fix landscape layout + Route-tab back behaviour for stop details & workflows (#117) 2fe80a8 Feature dismissible EOD modal (ae47b877 ask 2) (#116) 7cb4369 Fix per-trip delivery unlock for multi-trip routes (multi-trip load-gate) (#115) 00cc02d Fix seed vehicle specs on dispatch load, not just the route map (51d60338) (#114) 2fcd130 Fix seed vehicle specs in Settings, not only the route screen (51d60338) c5781e4 Feature let drivers dismiss the Start-of-Day modal to browse first (a4b17c2e) (#112) 962483f Fix suppress customer emails for SOD pickup-loading completions (2a341974) 46343d7 Feature driver "Update delivery location" on the stop screen (548c42f8) 1eeb998 Feature global failed/skipped lock visibility + pickup-excluded stop number (c53d22cc) (#405) 0365906 Feature per-rule "Rules Applied" breakdown for Job Rule Templates (#404) aec7ce0 Fix apply distance-band Job Rules to nearest plan depot (#402) 7bb49b0 Feature relocate Hard Arrival into timing fields, remove Night Shift & Tip On Site toggles (ticket 74bb15d2) (#403) a783817 Feature multi-select depots on Capacity View (#401) 2f61589 Feature Job Rule Templates — rules-only templates for captured jobs (#400) 35b6fed Feature add default job shape to job type (ticket f6593a85) (#399) 7aa7505 Fix Capacity depot dropdown sizes to content + hover titles (9b42893a) (#398) bf0ce69 Fix remember newly-typed job addresses as CustomerSites (dd75151e) (#396) 82ed44f Feature System Jobs table fills available height in step 2 (#397) d439c18 Feature surface EOD early-end reason in the route debrief (ae47b877 ask 3a) (#395) b8f1715 Fix lift auto-unlink notification above fullscreen overlay (#394) 97b645c Fix expose blockEodWhileSkipped in dispatch workflowConfig (ae47b877 ask 1) (#392) 66e03ac Feature Capacity View - loaded-window toggle + default to All depots (#393) 13fa472 Fix route debrief actual times in UK local not UTC (BST -1h, follow-up 6eede9b2) (#391) 759aa2a Fix move "jobs auto-unlinked" toast out of Route Analysis header (#390) 64a41e7 Fix guard Truck Dimensions inputs against mm-entered-as-cm (51d60338) (#388) a76d190 UI widen route-stats vehicle pill for "reg · driver" (83acc541) 05d63f4 Fix require-loaded gate must be per-trip, not whole-route (multi-trip) (#387) 10ccf4e Fix delivery window read in local time, not UTC (BST -1h bug, 6eede9b2) (#386) 029dcaf Fix SOD start-gate must not fire on pickup/loading completion (c2c40c32) (#385) 75ea123 Fix fail over to RouteOne when Icepack solve hits an infra error (502/timeout) (#373) f996a7f Feature one-click Remove driver button on the driver card (#383) 6a39389 Feature show linked driver name in Route Analysis map + stats views (83acc541) c5c45af Fix restore multi-trip route lines + add-drop connectors without phantom diagonals (156f4ba0 / b0f0b6d7) (#368) 2db52fe Fix interStop time = pure drive, not depart->arrive gap (964cab17) (#381) 0e6ffd2 Fix Hard Arrival pins job via x5 drop penalty to RouteOne (78376b92) (#382) 29a0983 Fix mandatory-SOD lock must not deadlock the dispatch display (c2c40c32) (#380) 64d8494 Fix actually remove driver when Change Driver selection is cleared (#379) b4f02bb Feature server-enforce mandatory SOD before route start (a4b17c2e follow-up) (#378) ae1f36f Fix SOD loading must not email customers per pickup leg (2a341974) 32a8227 Fix SOD/route lock must gate ALL stop actions, not just arrive/start (a4b17c2e) (#376) 2c9b28f Fix gate Scenario Settings to admin/manager + fix domain-wipe (27553f02) (#374) 2fcde20 Fix job status no longer stuck "Scheduled" when visits were rescheduled (ticket d2c6bcb3) ad70957 Improvement baseline body-FK audit for location-update controller + test 7f4db9c Feature customer delivery-location update + approval workflow (548c42f8) d169577 Fix match linked driver by vehicle id, not just registration (#371) 1a94e6f Feature block impossible delivery windows before solve (#370) a439694
Monday, 15 June 2026 2026-06-15 Feature SA vehicle licence-disc scanner field (vehicle_disc) [0f935110] (#109) 8e77362 Feature surface EOD-while-skipped / route-lock 409 messages in app (#108) 0a1ed0b Feature driver "Request reschedule" affordance [f1e453d0] (#107) 1c09b79 Feature apply axle load to HERE truck profile (native) — 51d60338 part 3 (#106) 32109da Fix seed HERE truck profile from dispatch vehicle specs (51d60338) (#105) 74f22ec Feature collect-only zones — enter to collect, avoid for transit (#369) 1d6e857 Fix Revert "fix(ss): correct route lines + breaks on multi-trip / edited routes (#358)" (#367) 4031907 Feature show linked driver name next to vehicle on Route Analysis (83acc541) (#366) 40d71e9 Feature add "All time" range option to exceptions filter (46dfcd2b) (#365) 378cf49 Feature failed/skipped-stop ack lock + EOD-while-skipped gate (ac38755f, 7fdad76a) — backend+settings (#364) 673874b Feature driver route date-change requests — backend + Control Room (org-gated) [f1e453d0] (#363) 8490eba Fix include vehicle specs in dispatch payload for app HERE profile (#362) 771b2a5 Fix add Clear Local Cache link to resolve cached-session login failures (#361) 0a13830 Fix correct route lines + breaks on multi-trip / edited routes (#358) 9968421 Fix wrap Jobs-tab status icons in Tooltip+Button (copy the ⓘ construct) (#359) 2bc0463 Fix enforce SOD approval lock on route start, not just display (a4b17c2e) (#360) 7c3246b Fix use native title for Jobs-tab status-icon hover hints (#357) a4de7c1 Fix role-aware landing + MS route guard (68d16ffd) (#355) 6281c7f Fix render Jobs-tab icon tooltips in document.body so they aren't clipped (#356) 9889f51 Feature show full address on job card + explain Jobs-tab icons (#354) e756449
Saturday, 13 June 2026 2026-06-13 Fix move worker-result callback off /api/scenarios (blanket JWT gate) (#353) 5be1b22 Fix socket_timeout > BLPOP timeout (redis-py 8.x spurious TimeoutError) (#352) f49484f Fix product-aware AIOne sender + remove deprecated M365 fallbacks (#351) 6577b28 Feature Redis queue + worker pool for horizontal solve scale (7c6e41b8) [v1, flag-gated] (#350) 82656c2 Feature dismissible viewport advisory for cramped dense views (4bd699b5) (#349) 86372dc
Friday, 12 June 2026 2026-06-12 Fix stop double-counting storage total (e4bd7559) (#104) 6d7ea87 Fix distinguish HERE component packs + honest storage total (e4bd7559) (#103) 09b6427 Fix show region names + total storage in the installed list (e4bd7559) (#102) 438a7a7 Fix show installed regions + treat alreadyInstalled as success (e4bd7559) (#101) 0a50da8 Fix create the event emitter lazily so pre-init listeners survive (e4bd7559) (#100) 65447ab Fix live-fill calc operands resolve filled values (c6f2e4e6) (#99) 4112b48 Fix initialise HERE SDK on the Map Management screen (e4bd7559) (#98) 3c48f13 Fix lift Skip/Report/Start-Work sheets above the keyboard (c996142e) (#97) 8a5cbd2 Fix bind iOS event emitter to HereEventEmitter so download/navigation events deliver (e4bd7559) (#95) 95f5c27 Fix rebuild MapDownloader before download + on-screen diagnostics (e4bd7559) (#96) a6245ef Update bump version to 1.7.16 (#94) 6be63bc Fix pad OptionPickerSheet by the real safe-area inset (a734913c) (#92) a707464 Fix modular headers for AppCheckCore's Google pods (unblock build) (#91) 1783637 Feature hyperlink field — display-only tappable link (250d15dd) (#90) 0e22b6c Fix retain HERE download listener so progress fires (+ valid region) (#89) 3aaaadd Feature dropdown + searchable sheet for select/multiselect fields (a734913c) (#88) bec41b7 Feature system-data in rules/calcs, lookup rule action, step visibility (abde063d, f30fe3ee, 318b91d9) (#87) 6e298ab Fix initialise HERE SDK before downloading from Settings (#86) 6cc4e7d Fix register download-all before the :attachmentId routes (tickets e7652c5c, 27625cd0) (#69) 9c42125 Feature MOT History API as vehicle-lookup vendor fallback (0f935110) (#68) e0a3176 Feature hyperlink field — non-input validation skip + PDF link line (250d15dd) (#67) 0c9be15 Feature complete-terminated endpoint, lookup rule stamping, system-data calc operands, step visibility (#65) aaa4038 Fix reject separator chars in completion-copy-email recipient (#64) 1303b73 Feature custom workflow statuses — settings CRUD + Workflows tab (ticket ee3f4771) (#348) de5c29c Feature org-level default for same-location service time adjustment (27553f02) (#347) 93a05c9 Fix per-trip reverse + trip swap on multi-trip routes (FixSmart 5945d469) (#346) 1216a92 Fix order unpacked bundle members by their own time windows (ticket c3b772a5) (#345) 85c4648 Fix rescue unplanned jobs on idle vehicles after district merge (a9f3826f) (#344) 2b55bed Feature wire ModelSmart visit lifecycle into WhatsApp customer notifications (157ab101) (#343) 8a95b7c Feature telematics device layer + speeding/geofence alerts on Fleet tab (b65031b6) (#342) 3fe7fc2 Fix codify VITE_ORI_API_URL in prod compose (drift fix) (#341) 4b45308 Update drop vestigial prod-aione route-one service from compose (22ce13b6) (#235) 86eede7 Feature legacy SW cleanup at boot + 'new version' reload prompt on /worker (9053e9cf) (#338) a02f46f Fix Edit User modal name changes were silently ignored for existing users (1c454e8d follow-up) (#340) a348bc3 Update bump @aione/workflow-components to 1.20.0 — hyperlink field (250d15dd) (#339) ccddefc Feature 'Last stop completed' driver event alert (8f9b7ba0) (#337) 6d7b61d Feature SOD approval gates route unlock; terminated-SOD complete override (a4b17c2e) (#336) 99d673d Fix forward ?token= auth on download-all so photo ZIP works (e7652c5c) (#332) 4ae414e Update bump @aione/workflow-components to 1.18.7 — Submitted date filter (162cf156) (#335) 8819e90 Fix lasso-select yellow ring lost CSS specificity war on DOM markers (ticket e514fbe2) (#334) a157381 Feature per-depot handling time, replacing hidden hardcoded 10-min seed (3a16a62a) (#333) d7d1b1e Fix show yellow selection ring on lasso-select when clustering is on (#331) 6f28902
Wednesday, 10 June 2026 2026-06-10 Fix keep StopReasonModal usable when the keyboard is up (c996142e) (#85) 5e59daf Feature render question reference images in the mobile form (#84) f651837 Feature lock the day read-only after End-of-Day is submitted (#83) e338088 Fix preserve answers when reopening a rejected workflow (#82) 7d239e5 Fix StopActionSheet caps + scrolls — bottom actions reachable (f856c1c9) (#81) 70ee83e Feature surface reference image attachments on /preview (#63) 7f2fdb8 Update bump @aione/workflow-components 1.18.5 -> 1.18.6 (frontend) (#330) 27adf16 Fix render imported pre-planned loads on the solve map (91c0ca89) (#329) cedfb50 Feature show question reference images in web workflow execution (#328) c8880cc Feature import resources on the Resources tab (594f75f6) (#327) 9245aa4 Fix close the deferred IDOR follow-ups (staged uploads, MS eval cache, MS workflow proxy) (#326) c657ce2 Fix transition route to completed on EOD so Clear Dispatch works (#325) 1d7d4e2 Docs record the 2026-06-10 multi-tenant IDOR sweep (PR #323) + deferred items (#324) e8164f7 Fix close cross-tenant IDOR / body-FK gaps in SS controllers (#323) 629deb9 Fix honour requiredSkillsAny vehicle-skill gate (07726b7d) (#322) 8628209 Fix route depot line, yellow multi-select highlight, confirm-on-close for AddJobModal (#320) 2a64b51 Feature add voice transcription fallback to SS/MS Ori client (#319) 7f522bd Feature add "Ask Ori" re-summon item to SS/MS user menu (#318) d6c3242 Update bump aione-ai-persona 0.1.13 -> 0.1.17 (#317) cefa1ad
Tuesday, 9 June 2026 2026-06-09 Removed remove dead per-product message APIs (b17fd3bd decommission) (#80) 8511623 Feature MapSmart + ModelSmart driver messaging in the field app (b17fd3bd) (#77) e23ba60 Fix stop action sheet — bottom options clear the home indicator (f856c1c9) (#79) 9bf7d36 Fix hint when a calculated field is awaiting inputs (c6f2e4e6) (#78) 089f5e8 Fix keep session on transient refresh failures (stop auth-restart logouts) (#76) f340004 Update bump version to 1.7.14 f13f117 Feature add tsc --noEmit gate + clear accumulated type debt (a0434cb5) (#75) 01f1e59 Fix widen route details panel to 28%/560px (#316) 0694ddb Fix dark text for Customer ID tag (teal-on-teal was low contrast) (#315) b09669b Feature roster-sync participants on Control Room load (SS + MS) (#314) b1a2524 Fix tighten job-card columns + drop "ID:" label (#313) 9909145 Fix table-like fixed columns on the job cards + smaller ID text (#312) 75c1d3b Fix charge depot loading time per trip, not at customers (88812969) (#311) 68d4614 Update drop driver_messages table — history migrated to aione-messaging (#310) 06535d4 Fix details panel fills its container (drop the 400px cap) (#309) f48d05d Fix let job-card customer names use the widened panel width (#308) b5d9304 Fix widen route-analysis details panel + reclaim card right margin (#306) b8baae5 Update decommission dormant SS driver-message backend (b17fd3bd) (#307) e80545f Fix drive the ModelSmart Messages list from the resource roster (b17fd3bd) (#305) 9910ebe Feature office↔field-worker messaging — backend (b17fd3bd, phase 1) (#301) 6ab28c8 Fix customer id from model, search→dropoff, arrival in popup (c7231e8f, 018f313c) (#304) b096a61 Feature import individual setup tabs (594f75f6) (#303) 24c2c0e Feature also persist unplanned clustering + proximity toggles (dae7c1e8) (#302) df236d9 Fix clear a wrongly-dispatched day with typed confirmation (25dbd522) (#300) 2cc90c3 Feature remember the 'show unplanned markers' toggle (dae7c1e8) (#299) 9ea2c7d Fix default absent vehicleRelations type to INCLUSIVE (07726b7d) (#297) dff6d70 Feature show Customer ID on the route map popup + details panel (c7231e8f) (#296) f56b95a Feature selecting a searched job also shows its route on the map (018f313c) (#295) 7679ca9 UI rebrand: user-visible "AI" → "Ori" in SolveSmart/ModelSmart UI (#294) af9267e Feature quantity per rate component on job creation (97d710f8) (#293) 053fe80 Fix bump @aione/workflow-components 1.18.2 -> 1.18.5 (b9cafbdd builder fix) (#292) fdcac79 Fix pass issuing admin's email so "Issued by" is correct (#291) 9df4363 Feature self-heal un-placed stops on imported plans (e896aa38) (#290) 95aefe8 Feature weekday scheduling for road restrictions (9267b59d) (#289) 0a11a87 Fix render imported pre-planned loads on the map (91c0ca89) (#287) 9cdc381 Feature job/visit search in the ModelSmart map search boxes (018f313c) (#288) 7d1aca0 Feature search jobs/customers in the route map search box (018f313c) (#286) be4a7a9 Fix per-trip capacity uses the trip's own load, not absolute onboard (07a72e45) (#285) 047fc23 Fix code-login fallback token carries products.solvesmart.resourceId (3ed436d7) (#284) b4022c1 Fix assigning a workflow to a job type no longer unlinks it from others (a6507ab2) (#283) 23efcaa
Monday, 8 June 2026 2026-06-08 Feature choose which rate components apply to a job (6a49e302) (#282) be7127e Fix conditional OVERRIDE rule with multiple skill actions keeps all, not just the last (a97bd3e8) (#281) 49fb45e
Friday, 5 June 2026 2026-06-05 Feature show distinct schedules on the driver schedule screen (f8bae508) (#74) 157f2d5 Fix code-login fetches SS/MS profile, not just MapSmart (no-account bug) (#73) 6e8b0e2 Fix MapSmart notification settings are local-only (no 404 save) (#72) f0a12eb Fix About screen shows the real binary build number, not stale app.json (#71) 4bf3d1f Fix coerce base lat/lng to numbers — Base Location screen crash (9baf2f9b) (#70) 632bd17 Fix support exporting a selected set of submissions (80e4f4d4) (#62) fd19fa3 Fix update-quantities blank cell leaves dimension unchanged (77192749) (#280) b15a64d Fix render break deterministically from recorded placement (#279) feeec51 Fix default AIONE_AUTH_URL to prod auth host when unset (#278) 987ae68 Fix visit-only timeline + window wait + lunch break (Issues 1-3) (#276) 32bbf5e Fix stop on-route jobs showing as Pre-route (Assign 409) (#275) 30d9f07 Feature unplanned panel search, click-coords-to-zoom, quick-allocate (#274) 44f200e Feature Driver Code login for SolveSmart resources (WIP — backend done, UI next) (#269) 5d1e6b2 Fix stop phantom "Replenish" trips on Icepack service jobs (#272) a51c13b Fix pre-route cards show dimensions + solver coordinates (#273) 5449072 Fix enrich pre-route unplanned cards with address/customer from JSON model (#271) fba2ab8 Feature unplanned panel scrolls + richer job cards (8f57b525) (#270) 04fe390 Feature emit vehicle regs + org name for distinct-vehicle cost billing (#268) d56a120 Feature report per-solve cost/usage to the RouteOne dashboard (#264) e594a69 Feature deep-link auto-selects the driver in the Control Room (#267) 7c1d8ec Feature add job details + driver comment to SS event notifications (#266) 865c0c4 Fix in-app driver-event notifications never reached cross-org recipients (#265) 0e396dd
Thursday, 4 June 2026 2026-06-04 Fix login wordmark via separate asset; restore app icon/splash f211913 Update login wordmark logo + clearer forgot-password button 56641e8 Update canonical copyright line (match landing) f2dbfae Fix use server answers (not stale local draft) when reopening a rejected workflow (ac5cf312) (#66) b88f628 Fix track keyboard height directly for message compose bar (cec9ccd1 v2) (#65) 00ca654 Fix use Location.time (not .timestamp) for GPS fix stamping (#64) 0023ad8 Update bump version 1.7.12 -> 1.7.13 (#63) eb025b7 Fix stamp GPS fixes so nav progress + reroute work (ticket e0166374) (#62) 8d8fafd Update bump version 1.7.11 -> 1.7.12 (#61) a618b12 Fix lift message reply box above keyboard on Android (ticket cec9ccd1) (#60) 33d08eb Update bump version 1.7.10 -> 1.7.11 (#59) a6f4811 Fix segment-start arrival on any point, mute sweep leg, hardier reroute (#58) c0b57ab Fix allow resubmitting a rejected workflow (cutover regression, ac5cf312) (#61) eb4b113 Fix currency fields honour the workflow-level defaultCurrency (ticket a51c119c) (#60) 3759b83 Fix render vehicle_lookup field as its registration, not [object Object] (3eb8116e) (#59) aa73843 Feature render standalone currency fields with their currency symbol (a51c119c) (#58) 06f23d6 Fix resolve worker_name from the submitter for context-less submits (fb909952) (#57) bb74120 Fix don't let a retried create-and-submit clobber stamped answers (521a7b6f) (#56) ad0a488 Update use sharp (native) instead of jimp for submission-photo downscaling (#55) 562f44e Fix resolve SolveSmart access codes in organisation-skills endpoint c7d9058 Fix use product-aware label in shared import template wizard (#262) 6acebca Feature expose NDD frequency/period/gap fields in job import templates (#261) 53e8d90 Fix presign photos in the rejected-workflow resubmit draft (ac5cf312) (#260) 59e3e8f Fix hide map 'Peak 0%' for zero-load routes [242ef4d3] (#259) 277b7c5 Update canonical copyright line "AI ONE POWERED BY OMNIA SMART TECHNOLOGIES" (match landing) 98655ac Fix hide quantity/dimension inputs for Service jobs [242ef4d3] (#257) a041473 Fix disable HTTP caching on field-app endpoints (stale 304 → "No Account Found") (#256) 947fe17 Fix service jobs render as single 'Service' visit + zero load [242ef4d3] (#255) d2abd46 Fix hide pickup fields for Service/Collection job shapes [242ef4d3] (#254) 722251c Feature jobShape — service-only (no-pickup) jobs [242ef4d3] (#249) 11da948 Feature unread badge on the Exceptions menu item (83df0397) (#253) 375c744 Fix allocate unplanned jobs within their own dispatch (aa452346) (#252) c766492 Fix default the project Workflows tab to most-recent submission first (ticket eb0588dc) (#251) 77f365b Feature emit real-solver contract packet + geocoding for pre-planned load imports 1dc0d32 Feature add Rules step to the solve-template wizard (b57e8a72) (#246) 6bae808 Fix presign photos in rejected-workflow revision answers (ac5cf312) (#248) e226f8c Fix resolve customer via snapshot customerId, not jobRef=stopId (5e34fa0c) (#247) 9548665 Feature add "Stop — Customer" mapping field (372d8e7b) (#245) df6545f Fix vertically center secondary stat card values (#244) 652999a Fix gate solely on the platform 'standpipes' Feature (fa58ad59) (#243) a7fc1b6 Update bump @aione/workflow-components 1.18.1 -> 1.18.2 (eb0588dc) (#242) 7b6377f Fix populate Job column for stop-level submissions (d1d36c3c) (#241) 62dd823 Fix RouteOne progress shows elapsed, not a stale 600s OR-Tools budget (#240) 79374a8 Feature PyVRP constraint parity with OR-Tools/Icepack (22ce13b6) (#239) 80ff8cf Feature enforce vehicle-class/relation compatibility in PyVRP (22ce13b6) (#238) 6b81771
Wednesday, 3 June 2026 2026-06-03 Update bump version to 1.7.10 (#57) 9e735e8 Feature drivers can start a conversation + red unread badge (a6761ad7) (#56) 9a348c9 Feature show Water company (standpipe) on the SolveSmart stop detail (fa58ad59) (#55) 7ed7e13 UI align 1.7.9 version across lockfile + build.gradle (#54) 121fb24 Update bump version 1.7.8 -> 1.7.9 (package.json — the source app.config.js reads) (#53) 4ab5d07 Feature message unread badge + new-message notification (5c6724b5) + 1.7.9 release prep (#52) 20dad42 Feature voicenote recorder field (expo-av) — d0a90193 (#51) c2927bc Fix save/show base location for MapSmart sweepers (ticket 7c9b270c) (#50) c036670 Fix fire segment/group completion workflows on the Route screen (#49) f622439 Update stored inlineMediaCount so lean reads never detoast answers (93b6190d) (#54) 163b619 Feature backend support for 'voicenote' field — transcription + render (d0a90193) (#53) c073649 Fix include jobTypeLinks in template list/get so default workflow shows (4da61109) (#52) f72ea9b Feature use Google reverse-geocode with in-process cache (ticket 303a7775) (#51) c3f500d Fix resolve vehicle_registration from context (#49) a6888fd Feature render multi-trip routes (reload stops) + only count feasible routes (22ce13b6) (#237) 186cf24 Fix keep route-analysis axis on real activity, not midnight (4e3f618e) (#236) 22bd301 Fix multi-trip (reload-at-depot) so capacity-bound fleets fit — the real Gregory's fix (22ce13b6) (#233) b1cd6f4 Fix show unplanned jobs across all the date's dispatches (db9d489c) (#234) 19a7e3e Feature unread driver-message badge on the Control Room menu item (a57a326a) (#232) 8304ac5 Fix sync job status on mobile + public workflow completion (a5e8a3ac follow-up to #212) (#226) b9e31ea Fix cap per-district PyVRP runtime so solves don't grind the whole-problem budget (22ce13b6) (#231) 427e18b Feature per-file pickup depot in jobs import (242ef4d3) (#230) a29b88f Feature PyVRP honours the AURA/SPARTA/TERRA/OPTIMA/POLIS profiles + becomes the default engine (22ce13b6) (#229) c6926c6 Update ss-mobile: drivers can start conversations + unread-count endpoint (a6761ad7) (#228) 57e0f53 Feature opt-in PyVRP/HGS decomposition engine (beats Icepack on coverage) (22ce13b6) (#227) ea1b45c Fix show standpipe field whenever the Admin toggle is on (fa58ad59) (#225) dba2ba6 Fix populate Job code + location in workflow submissions list (d1d36c3c) (#224) bee1888 Feature bump @aione/workflow-components -> 1.18.1 (Voice Note in add-field palette, d0a90193) (#223) eec99d6 Update parallelise OSRM chunked matrix fetch (bc28d031) (#222) c320cdd Update bump @aione/workflow-components 1.17.0 -> 1.18.0 (3a92228d) (#221) dc86f8f Feature "All depots" capacity view across the whole fleet (94fc1430) (#220) b1e6ccc Update bump @aione/workflow-components 1.16.1 -> 1.17.0 (voicenote field, d0a90193) (#219) 78ebad4 Feature inline depot / class / cost-class dropdowns on the vehicles table (d72df896) (#218) 935a440 Fix fire job_scheduled customer notification on dispatch (wrong stopType filter) (5e34fa0c) (#217) adfe714 Fix allow customers to subscribe to the workflow_completed notification event (1a48c463) (#216) b507630 Fix job edits to rate components (and other state fields) silently dropped on save (617e96a3) (#215) 185d1be Fix node-based HEALTHCHECK for backend image (not wget) (#214) 9266525 Fix make job duration editable without collapsing the time window (be5480eb) (#213) 8ef0a24 Feature add in-app/control-room channel for driver events (#208) a988b09 Fix auto-complete job when its completion workflow is approved (a5e8a3ac) (#212) 04a6fad Fix bump workflow-components to 1.16.1 (Vehicle group renders) 710192b Fix Linux-correct lockfile for workflow-components 1.16.0 bee025d Fix build frontend image with no-cache (ticket 303a7775) (#211) b4b3e91 Feature supply vehicle_registration to system-data context e998cd9 Fix cache-bust frontend Vite build per commit (ticket 303a7775) (#210) 5a4ac9c Feature point frontend address lookups at canonical AddressesApi (ticket 303a7775) (#209) a7e8f97 Fix fleet marker click opens popup only, not the drawer too 3c29a0f
Tuesday, 2 June 2026 2026-06-02 Update bump version 1.7.7 -> 1.7.8 (#47) 6d224c1 Fix map build/update profiles to EAS environments so HERE creds inject (#46) 5121698 Fix profile Active status, per-entity exception gate, HERE-creds build guard (#45) 8b21636 Update 1.7.7 (#44) f2ce8d1 Feature sign-in with a resource login code (#33) 33a8b87 Feature lean mode on /for-entities to skip answers JSON (93b6190d) (#48) 794aea0 Fix clamp fleet driver speed to 0 (no negative mph) 5aaa6e3 Feature fleet tab zoom-on-select + plot breadcrumbs from popup efa6cd2 Fix fleet tab renders without a driver selection 82bf3fa Feature gate fleet tab by Control Room; flag "no signal" drivers 3c23e65 Feature gate "Where's my fleet" tab behind controlRoomFleet feature 199ae1b Feature "Where's my fleet" last-known driver location tab dc182e9 Update lean + parallel workflow fetches on project open & Workflows tab (93b6190d) (#207) 05aadd6 Fix heal-on-archive leaves completed jobs on the old template 9520084 Feature expose Pickup Duration as an import target field a05ca1c Fix vehicle swap treats requiredSkillsAny as OR, not AND e3d98eb Feature heal-on-archive — usage/reassign endpoints + adapter + components 1.15.0 (#206) 18bded0 Feature per-job rate prepopulation from job type + customer (09b66994) (#204) 2387463 Fix suffix or skip bulk-imported jobs that collide with completed jobs (#205) d5ee486 Fix resolve visit resource by numeric id when assignedResourceId holds it (#203) 86d4d16 Fix seed a depot location per selected vehicle depot (multi-depot planning) (#202) e7a670d Fix revive soft-deleted user when re-adding to an org (ticket 68117332) (#201) 88fee69 Fix widen merged bundle window to fit summed service time (ticket 14c8b0cc) (#200) a11feef
Monday, 1 June 2026 2026-06-01 Fix auto-refetch Group Details on app resume (ticket 722affc8) (#43) 173bf3f UI guard production builds against shipping a stale version (b48649b1 follow-up) (#42) 4c2d6e5 Update bump version 1.7.5 -> 1.7.6 (#41) d301dd8 Feature per-product Fastest/Shortest route optimisation setting (ticket b48649b1) (#40) cd4766f Fix pin Submit to a safe-area footer so it can't render off-screen (ticket 89fe54b2) (#39) 46941d9 Fix stamp the resource's own entity on reports (tickets ebe111ef, f3f333b6) (#38) a20d57c Fix atomic upsert on localId to stop duplicate rows (#47) 0e6dfcf Fix icon-only bulk toolbar buttons to stop overflow (#24) a48828e Feature add Compare to the SubmissionsDrawer bulk toolbar (#23) d827f92 Feature allow comparing submissions across different templates (#22) c2c6135 Feature add WorkflowSubmissionCompareModal for side-by-side submission diffs (#21) 3b46a44 Fix reorder hint uses per-trip label for current position (#199) 1c5331a Update bump @aione/workflow-components to 1.14.3 (#198) 57e1087 Update bump @aione/workflow-components to 1.14.2 (#197) fdf1216 Feature allow cross-template submission compare + bump workflow-components to 1.14.1 (#196) 8973c5c Fix zoom-aware co-location spread + teal current chip in reorder (#195) b32f27f Feature add submission Compare to workflows tab + bump workflow-components to 1.14.0 (#193) c519689 Fix readable co-location spread + correct trip grouping in reorder chips (#194) f00f6ec Fix add Move-to-Unplanned icon to reassign popup header (#192) 7aae835 Fix offset depot/home marker from co-located breaks + scale spread with crowd (#191) 7f9d60e Fix default trip sequence + pinned reassign header + trip-aware reorder (#190) d6d3503 Fix trip-2 marker colour, reassign-popup scroll, search-box gap (#189) 6c3214f Fix trip-sequence map markers, second-trip line colour, reassign chips (#188) d342048 Fix resolve workflow template names to ids on import (#186) a731a69 Fix show unpacked job count/capacity for grouped solves (ticket 14c8b0cc) (#187) 7328935 Fix resolve workflow template names to ids on import (#185) 268582e Fix dedupe submit path via deterministic localId (Fix-2) (#184) b979eee Fix deterministic draft localId so autosaves dedupe (#183) c73dd97 Feature same-location job grouping for solves (ticket 14c8b0cc) (#181) 18df7ef Fix Fix Photos column always '-' on MS Project Workflows tab (#182) b755230 Fix honour requiredSkillsAny in scenario solve builder (ticket 37cf708f) (#180) 401d8ce
Friday, 29 May 2026 2026-05-29 Fix backstop so unresolved workflow ids can't white-screen (#37) ac1f1d3
Thursday, 28 May 2026 2026-05-28 Fix rejected workflow → "In Progress" on both job cards (285a3482 round 2) (#36) cce5a54 Fix normalize legacy single-object photo answers (fa1a87ff round 2) (#35) 9182c99 Feature admin-curated failed-reason picker + photo + GPS (cf12ab00) (#34) c14131d Fix main job-card banner shows "Awaiting approval" too (285a3482) (#32) c1f68ab Fix main job-card banner shows "Awaiting approval" too (285a3482) (#31) ae57ae6 Fix defensive photo init + global async error capture (fa1a87ff) (#30) 6d7ff52 Fix proactive token refresh + fresh-GPS on navigateToSegment (7be3248f) (#29) 7bd6346 Fix trust authStore for productMode after email login (85250d04) cc70d74 Fix segment-close workflow + sweeper timing (68880b76) (#27) 608519c Feature ErrorBoundary persists + POSTs crashes to backend (fa1a87ff) 0e3a144 Feature tap submitted workflow row to view read-only (aa4162d4) db18ff9 Fix bump version to 1.7.5 at the real sources + restore remote version 195955f Fix appVersionSource local + explicit build numbers (fix 1.7.4 override) f61b4b9 Update align master with prod's GHCR-pull shape (post-incident, INC-2026-05-28-01) (#46) 2bd203b Fix render schema.summaryStepConfig.fields in submission PDF (b95a25c0) (#45) 7d151cf Feature per-template downloadFilenamePattern (b4b0ce4d) 3af45b7 Fix exception photo + lat/lng + structured labels in workflow PDF (#42) 61160c6 Fix render summary fields + final workflow signature (b95a25c0) 54cbe24 Fix embed signatures directly, skip JPEG re-encode (52d32aee) (#41) 3dabea2 Fix photo grid + step divider + Q-A spacing + system_data italic (fab1f83d) (#40) 41a8ebf Fix render schema.summaryStepConfig.fields in submission view (b95a25c0) (#20) 2796e2b Fix token-button save uses explicit value, not stale closure (b4b0ce4d) (#19) f2014af Feature per-template downloadFilenamePattern setting + token picker (b4b0ce4d) 0ad5ecc Feature exception attachments + lat/lng + structured layout in submission modal (#17) 5576ae3 Fix product-aware system_data source dropdown (3ee9d538) f97b0f4 Fix replace chunky default scrollbar on side menu with MapSmart-style thin grey rail (#179) 5985d7b Fix scenarios import-modal copy + Rules > Solve Templates tooltips (#178) c59b8a5 Fix chat-isolation in SS/MS — entity+user scope + logout scrub (#177) 8c02593 Fix import creates a NEW scenario, not attaches to an existing one (PR #169 correction) (#176) 5df982e Update bump @aione/workflow-components ^1.13.1 → ^1.13.3 (b4b0ce4d + b95a25c0) (#174) eff21ca Feature wire Solve Templates tab into the Templates page (PR #169 follow-up) (#173) 3ac33a9 Feature SolveTemplate epic — import pre-planned routes as completed SolveRuns (JP's Pre-Planned Loads) (#169) 569377a Fix relay Content-Disposition + Length so PDF filename pattern actually reaches browser (b4b0ce4d) (#172) 3e8aa8a Update bump @aione/workflow-components ^1.12.6 → ^1.13.1 (b4b0ce4d) 7286d32 Feature View workflow report link on per-stop job card (bc4c7cae) (#168) ac5ecaa Fix forward attachments + lat/lng on submission exception fetch (#167) b92eb34 Update bump @aione/workflow-components ^1.12.5 → ^1.12.6 (3ee9d538) 8bb836e Fix build context from route snapshot, not just Job (3ee9d538) 6ebbd68 Fix de-duplicate distance-band entry in "Rules Applied" panel (cfed7ffc follow-up) (#164) 1d0561c Feature POST /api/mobile/client-error sink for app ErrorBoundary (fa1a87ff) 604a2c8 Fix return workflow answers for all submitted statuses (aa4162d4) 9de9720 Fix surface custom-field columns from MS Import Templates (38993fce) 64c060e Fix distance-band rule no longer silently overrides later-priority rules (cfed7ffc) (#161) 7cf612e Fix strict-product resourceId + org-scoped resource lookup (85250d04 P0) db49832 Fix show solve name in Recent Solves table on the dashboard (56c9bdca) (#158) 1d7303e
Wednesday, 27 May 2026 2026-05-27 Update bump version 1.7.4 -> 1.7.5 9e8f111 Feature soft "Update available" nudge for store/native releases 66d15f4 Fix checkout with lfs:true so the Android HERE SDK (.aar) is real, not a pointer 3c201ff Fix live auto-calc in rejected workflow + awaiting-approval job status 9721bf0 Feature build in CI + appVersionSource remote (reproducible builds, gold standard) 9c3b38b Update normalize line endings so the fingerprint is OS-independent e0f590a Fix set EXPO_TOKEN at job level so the fingerprint guard can auth b0ff9a6 Fix make CI OTAs match the build fingerprint (S3 SDK fetch + fail-loud guard) 2dd0353 Fix reset password against both stores so Sweeper users can reset (632e4090) (#14) b37bf3e Feature minimum-supported-version gate (fa1a87ff / c130d56c) df38b63 Fix restore image compression + bold-label layout (fab1f83d, 68426d36) (#39) 97a7aba Fix newest-first default + flatten workflowName (d1c404f9, ac988372) (#38) fe1da66 Fix branch-aware required-field validation (TxP Post Office P0) (#37) 745c2ed Fix accept pre-resolved exceptions on submission PDF (8c42b9e8) (#36) 20e7b7b Fix close reopen modal on success when there's no revision link (3b1b0b3e) (#12) 82ef4a8 Fix remove duplicate approval-notification email (d6efdd4f) (#157) cde1e38 Fix access-code self-registration never created aione-auth account (85250d04) (#156) d8258d0 Fix Scheduled Visits map legend + descriptive job-ID error (e90f7f9b, a2bd84a1) (#155) 7ee25ca Update bump @aione/workflow-components ^1.12.4 -> ^1.12.5 (3b1b0b3e) (#154) 885e425 Update restore strict npm ci now that the lockfile is consistent (#153) 2badb48 Fix fix driver-event email link + add context (78a130c0) (#150) 3ae44f6 Fix land on Approvals tab from approval-email deep-link (1525dabf) (#149) 96f35bc Fix match day-exceptions on the date part (0e4c38ee) (#148) a03025d Fix clear route lock on SOD/EOD reopen (3b1b0b3e) (#147) 3f53393 Fix include job-card exceptions in SolveSmart PDF (8c42b9e8) (#152) 7d8ef32 Update regenerate lockfile with the aione-ai-persona subtree (#151) e92a013 Fix tether off-road job markers to the route line (#146) 2531cd1
Tuesday, 26 May 2026 2026-05-26 Feature report app version to aione-auth (c3738afd) 87a4ce6 Update 1.7.4 5f344cb Update set versionCode floor to 37 (last shipped) so autoIncrement mints 38 256f702 Fix make fingerprint runtime reproducible across environments (#6) 119a780 Fix route-lock grey-out + exception stop/route linkage (#5) 2c18641 Fix stop versionCode/buildNumber bumps changing the fingerprint runtime (#4) c601620 Improvement publish OTA updates from CI to stop fingerprint drift (#3) b56e156 Fix field-app workflow batch: crash fixes (c130d56c) + read-only view (aa4162d4) + rejected-stop resubmit (6f14acf1) (#2) 884034a Update bump versionCode 35 → 36 (35 already on Play Store) aa6ba5c Update 1.7.3 0afdb2b Fix show platform-correct build number + workflow safe-area provider a0e3b96 Fix restore "Exceptions reported" section in submission PDFs (8c42b9e8) (#35) 581dd63 Fix requireAdmin honours top-level role (MS/SS admin-edit 403) (#34) 315a682 Fix wire approvalLinkBase through submit routes (ticket 1525dabf) (#33) 4f5f6ba Fix ACTUAL fix for repeating-step required-field validator (#31) 16d8881 Fix Fix repeating-step required-field validation (TxP submit blocker) (#30) 54a8fec Fix MapSmart approval-email deep-link base (ticket 1525dabf) 50e3b81 Feature write oriApiUrl into config.json (VITE_ORI_API_URL) (#145) fd7300d Feature embed Ori orb in SolveSmart + ModelSmart (Omnia-gated) (#144) 100c1a5 Fix recover ModelSmart solves orphaned in 'solving' on restart (2a6fe58d) (#142) 9ccd0fa Fix rate-component import columns + fix(control-room): exception stop badging (#141) c6d25f3 Feature multi-depot planning — select multiple/all depots at step 1 (abbc5563) (#143) 83f5973 Feature surface latest stop workflow submission status to mobile (6f14acf1) (#140) bc79ae1 Fix show actual submitter (resource) name on submissions list (f6cb4a48) (#139) e148f33 Feature internal email alerts on driver events (78a130c0) (#138) 0f1ae49 Fix product-supplied approval deep-link bases (ticket 1525dabf) (#134) e2498f9 Fix org-scope visit-status sync in approval proxy (body-FK hardening) (#137) ebfca0c Fix resync package-lock.json (workflow-components 1.12.4 + uuid) (#136) 7a2d0e2 Fix scope Approvals tab by projectId (post-cutover regression) (#135) abaf3a6
Sunday, 24 May 2026 2026-05-24 Improvement Whitelist summary + auto-send fields in updateTemplate (#29) ede8367 Fix Fix PDF video/file link missing when worker uploads image (#28) cad257a Update Bump /api rate limit from 200/15m to 10k/15m (#27) de7229f Fix filter pending approvals by productCode b847abc Update 1.12.4 — render matrix as table, vehicle_lookup as registration string (#11) ea5ca75 Update 1.12.3 — render video/file attachments as download links in SubmissionsDrawer (#10) 9bf36e2 Update 1.12.2 — dedup attachments in SubmissionsDrawer too (#9) ff4cc99 Fix dedupe photo attachments by s3Key (1.12.1) 961b686 Fix fixup: tsc narrowing for archived workflow backfill (#133) 795f27f Fix show archived workflow name in Edit Job (#fda5e3f0) (#132) d64f16c Update Bump workflow-components → 1.12.4 (#131) 82c23bf Fix use real File ctor (not mutated Blob) (#130) d0a7fcc Fix wire reference-attachment upload in MS+SS builder pages (#129) 132f7fc Update Bump @aione/workflow-components 1.12.1 → 1.12.2 (#128) 438e9af Fix bump @aione/workflow-components 1.11.0 → 1.12.1 (attachment dedup) (#127) 55cb081 Fix logo upload filename field mismatch (#126) f72c5f9 Fix visit.status sync on approve/reject + diag for template-404 (#125) 81f8039 Fix embed workflow templates in MS visit-detail (whitescreen) (#124) 2554559 Fix translate jobId/visitId query param e2976c2 Fix un-stub six handlers stranded by cutover (ticket 437cf4f5) (#122) 9d8447f Fix un-stub six handlers stranded by cutover (ticket 437cf4f5) 1552bda Fix enrich Job Details with template names + submission status 72c8afe Fix wire workflows tab to fetch submissions from aione-workflows a91a855
Saturday, 23 May 2026 2026-05-23 Update 1.7.2 49e4f41 Fix live system_data values in mobile form-fill (ticket 4bf8ea4b) (#1) aeb65ec Fix drop stage-2 prisma generate, prisma client lives in dist/ (#25) 260cfb3 Fix copy generated prisma client from builder, restore PR-21-lineage lockfile (#24) 008b2ec UI migrate NPM_TOKEN to BuildKit secret (prevent layer leak) (#23) 2c1e927 Update re-export workflow shapes from @omniasmarttech/aione-workflow-types v2 fecb484 Feature JWT GET /api/templates/:id/field-index for ss-monorepo DataSmart 5f0e075 Fix requireAdmin null-guard on products map (live prod 500) (#20) 8530dfa Feature accept entityType + entityId + systemDataContext on submit (#19) 2185bcf Fix set NODE_AUTH_TOKEN on npm ci so transitive @omniasmarttech/* deps install (#7) 93896ba Update re-export canonical workflow types from @omniasmarttech/aione-workflow-types@^2.0.0 (1.12.0) (#6) f6f6d19 Fix matrix grid render + approvals photo presign (bundled with 1.11.0) 0a42788 Fix show in-flight loading toast on Download PDF c953e22 Feature promote workflow shape types — Schema/Step/Field/Settings/Triggers (v2.0.0) 8b1e12b Feature promote WorkflowManagementPage to shared package bf2284b Fix don't auto-apply template when multiple match equally (f28b8e3e) (#24) e35ebcb Fix service-level time-window imports overwrite, never inherit (ticket 764839c8) d707a5e Feature Ori assistant in the MapSmart Control Room (#114) 3d6c693 Update bump to ^1.11.0 + regen lockfile bed9d63 Fix centralize X-Sandbox-Id injection + cover direct-fetch sites aa67bbb Fix inject X-Sandbox-Id on streaming-response fetches too ae48a03 Fix handle RealDictCursor in apply_sandbox_schedule_replacement a33a892 Fix service_schedules.id is UUID, cast NULL::uuid in CTE override side 5dc9600 Update bump @aione/workflow-components 1.1.0 → 1.10.0 c7497b7 Fix default selection tool to freeform lasso across all maps 55f2583 Feature route all service_schedules reads through merged CTE 3344725 Feature route all service_schedules writes through sandbox helper db81996 Feature schedule-override foundation (no callsite changes) ddd3a64 Feature move toggle into actions strip, surface on Variable Services e0d86eb Feature save-as-new — fork sandbox state into brand-new service_types bf34154 Fix wire get_services_geojson(_streamed) through services_resolved CTE fb3ecf2 Fix import OVERRIDEABLE_COLUMN_NAMES in services_controller 1499225 Fix import sandbox helpers in services_controller 0cb0b73 Feature restore test-file typecheck — add @testing-library/dom + drop tsconfig exclude (#118) 68adfdc Feature exceptions on the map — standalone markers + sub-icon on linked stops (ticket 0e4c38ee) (#117) 78550b1 Feature per-driver telematics filter when N>3 drivers selected (ticket cd70d476) (#116) eb0c982 Fix align root vite to 8.0.13 + add override ca5611e Fix exclude *.test.tsx from app tsc (vitest gates them separately) 7879c46 Fix TableComponent cast + waitFor import 63a0937 Update tolerate lockfile drift with npm install (parity with Dockerfile) ff15ce3 Removed forward field-index to aione-workflows, delete local duplicate b60f811 Update re-export workflow shapes from @omniasmarttech/aione-workflow-types v2 906112c Feature mount shared WorkflowManagementPage 4cdffe8 Fix wire Approvals/Help tabs + clickable submissions drawer e7c653c Fix presign inline photo refs so 2nd+ photos render (#107) f770546 Fix presign inline photo refs so 2nd+ photos render in submission modal (ticket 437cf4f5) 5a2732c Update consolidate(ms/ss): MSWorkflows + SSWorkflows now use shared WorkflowsPage (ticket 437cf4f5 follow-up) (#106) 5e47d24 Update consolidate(ms/ss): MSWorkflows + SSWorkflows now use shared WorkflowsPage (ticket 437cf4f5 follow-up) f83eda7 Fix photo count shows 0 — count both attachment rows + inline answer-map refs (ticket 437cf4f5) (#105) 4374c70 Update ticket 437cf4f5: full SSOT cutover (workflows → aione-workflows) for Saturday 2026-05-23 (#90) 7ad6cbd Fix 2-col unplanned strip + shift PENDING pills down (#104) 44b861b Feature cluster + proximity toggles in unplanned strip (Planning parity) (#103) 9d2ab69 Fix unplanned strip below action-bar, EnvironmentOutlined icon (#102) 45f36f4 Fix preserve drive-time + cost stats after route edits e5ac4c7 Fix 2-col action-bar + Planning-identical unplanned toggle group (#101) ad84aed Fix replace proximity Segmented with red unplanned toggle on action-bar (#100) 5a381fc
Friday, 22 May 2026 2026-05-22 Fix explicit link annotation for video/file attachments (ticket 8480dc37) 985d00e Feature exceptions section in online detail modal (ticket 8c42b9e8) 15afc3b Fix widen QBO connect button so label clears the qb glyph dd0e1cb Fix chain X-Forwarded-Proto from upstream so SSO redirects work bf7f5ca Fix allow X-Sandbox-Id in CORS preflight 880fa5f Feature trail polyline connecting consecutive events per device (#99) d51d23d Fix show effective time windows in the table (ticket 5781f061) f4df972 Fix effective time windows in API + Fixed Services table + Variable Services template (ticket 5781f061) 9cf0779 Fix extend Time Window pair columns to Fixed + Variable Services (ticket 5781f061) 2c8b914 Fix root-level alias for /reset_password + /forgot_password (ticket c9e549f8) bf44d3b Fix fetchWithAuth returns parsed JSON, not a Response (#98) 5ba361d Feature SolveSmart-style map action bar — Stops / Tracking / Telematics toggles (#97) 1f6b916 Fix widen initial fetch window 1h→24h (#96) 587e932 Fix wire sandboxes_bp into app.py blueprint registration 214feca Feature same-origin proxy for live events so cookie-auth Control Room can see them (#95) 91fc283 Fix split Time Windows import/export into 5 Start/End column pairs (ticket 5781f061) cc1ff1c Fix per-user Fixed Services sandbox mode + RouteOne solver afe7886 Feature close the loop — RoadSegments + ServiceTags + ServiceHubs (#93) cf9f68f Fix add anthropic to requirements-docker.txt e33e8be Fix default resource_type to 'driver' on waste entities eeea4e2 Fix TileLayer URL — {z}/{x}/{y} not {z}/{y}/{x} f1128f4 Feature filter-collapse + 8-layer map dropdown on Active Sweeping Services (#92) f14e67f Fix debug(control-room): log marker positions on each map render 833c72f Feature filter-collapse + 8-layer map dropdown on Route Optimisation (#91) 6b11d4d Fix sync binding on every save, not only on serial change (#90) 2b4474b Fix single-select on row click + UK-bounds map guard cfec51a Feature multi-driver combined view across checked rounds 3375898 Fix filter-collapse + 8-layer map dropdown on Fixed Services + Reports/Review (#88) d998ffc Feature SS-parity rebuild — date-nav, view tabs, multi-select, search a0fd832 Feature vehicle assignment is human-driven, with capacity warning a76694e Feature VS single-column actions + 8-layer map dropdown across pages (#87) 58fff95 Feature SS-parity row layout + vehicle reg + AI debrief 5d23b8c Feature roll out filter-collapse + flex-grow actions across pages (#86) 7e7cf24 Feature preview unassigned rounds + assign-driver modal copy 62edcaf Fix move password-reset token to URL fragment (ticket d82e49ed) 0362df7 Fix kill horizontal scroll on actions button grid (#85) de9b85e Feature show unassigned rounds + assign-driver flow + history fields bc463ea Feature bulk-edit service-level time windows (#84) 46f14ca Feature full HH:MM in labels + pre-seed override from UPRN windows (#83) 5a83363 Fix embedded modal layout + wrap-around window flag (#82) 56bdac3 Feature telematics trail polyline + horizontal stop-status legend (#99) 5b0b003 Feature telematics events overlay + SolveSmart-style map action-bar (#98) fe5e13c Fix split Unplanned tab into bucket-panel + map (#97) 2428e3e Feature cutover to shared aione-telematics — proxy reads, drop local store (#96) 183f095 Fix surface solveName in comparison modal (ticket dacb3fb0 followup) 4f2717f Feature port Planning's job-context-menu — SSOT for reassign UX (#95) 571e798 Feature compare solves inline on Scenario page (ticket dacb3fb0) b32e2d9 Fix hotfix(ss): Compare button uses /dashboard not /optimiser-dashboard (ticket dacb3fb0) 5c5bc61 Feature compare solves within a scenario via dashboard deep-link (ticket dacb3fb0) f94ad2d Fix approval + termination email fields on workflow edit modal (ticket d43355bb) 88c3b7b Fix post-planning drop respects target trip (ticket 17265661) 69fc77c Fix markers default to ALL routes when no selection (ticket 0266b840) 7713d21 Fix bulk-toolbar count includes unplanned selection (#94) 36dd8ee Fix surface SS import-template custom fields in chooser (ticket 38993fce) 2c7da1d Fix MS visit-workflow submit now evaluates triggers (ticket 1b30d6fa) 9daae06 Fix totalDurationMin = drive time, not route-span (ticket 5bbc7b83) feebae5 Fix real getSubmissionExceptions impl on SSWorkflowService (ticket 8c42b9e8) 0536662 Feature lasso also selects unplanned markers + revert probe (#92) 9b0bd75 Feature wire online exceptions section to new shared package (ticket 8c42b9e8) 92f7a3e Feature GET /:id/exceptions endpoint for online submission view (ticket 8c42b9e8) b660572 Fix SS mobile create paths now evaluate triggers (ticket 3b1b0b3e) 61df174 Update probe(ss/control-room): instrument lasso-selection path for diagnosis (#89) 9a11e60 Fix restore selectionMode='freeform' default (#88) efb98b2 Fix right-click-only lasso, pan keeps working in selection mode (#87) 14f6339 Fix default selectionMode to 'none' so map pans on load (#86) 8990aef
Thursday, 21 May 2026 2026-05-21 UI regenerate dist for approvalNotifyEmail gate ca51f8e Feature gate approvalNotifyEmail behind requiresApproval (ticket 1b30d6fa) 4ec588d Fix relocate encryption backfill script into src/ for compile ccfcaae Fix regenerate package-lock.json with Linux-only optional deps 0a38294 Improvement update Omnia-block test to provider-neutral error code 57d07e4 Feature add QuickBooks Online integration alongside Xero 179dbac Update register dev-map.aione.uk as a platform host (ticket d82e49ed) 2342693 Fix opt password emails out of SES click-tracking + secret-key fix (ticket d82e49ed) 06abedd Fix button truncation + actions block flex-grow (#81) dd88582 Feature service-level time-window override (#80) 490a1e3 Feature collapsing filter pane + 8-layer map dropdown (#79) 2d3f39b Feature timeslot legend mode + Timeslot Distribution modal (#78) 4b8006d Feature pick one window per UPRN with neighbour-aware matching (#77) 3e7fb1f Fix re-solve via Icepack each morning, then project the fresh solve c053b83 Feature clone-schedule action for parallel field-app tests ed039f0 Feature per-round default driver on the Schedule modal e624b13 Feature cluster colocated UPRNs before sending to route-one (#76) c4ab56b Feature change driver on a whole round (day-of allocation) 33c7cb2 Fix expose Resources page under waste vertical + fix tipping-weights 404 3599143 Fix surface dispatch_target on Create/Edit Schedule modal 42f0e20 Update alphabetise sections; move Tipping Weights to Execution c6d9d7c UI pinned flex layout + status pill strip 4141ab6 Fix opt into DataTable customisation (resize / hide / export) 356e56b Fix honour wrap-around time windows instead of dropping (#85) c8816e6 Feature allocate unplanned job to driver via drag (ticket 34fbd56a) (#74) 263f559 Feature unplanned job markers on map + proximity filter (ticket 46b8a912) (#73) 16380f7 Improvement consolidate CR + Planning into shared component (ticket 605d017c) (#72) 370b2e2 Improvement extract four modals into own files (PR1 of CR cleanup) (#71) c0dbf97 Update grant pull-requests:write so the sticky comment can post (#84) 5825ed0 Fix unlockRoute affordance on assignment patch (ticket 3b1b0b3e) 53ffd16 Fix persist terminateWorkflow trigger + lock route + dispatch email (ticket 3b1b0b3e) 433f4e2 Fix lasso accepts left-click drag (ticket 635869f2) ecb93b7 Fix per-node time windows replace virtual window vehicles (#83) b76b9c8 Fix show Window + Duration in the unplanned-job popup f76e3fc Feature configurable timed-delivery threshold per organisation aff54e0 Fix switch strict-window detection to WIDTH-based (Frans + wife's idea) 338d2f7 Fix preserve window-vehicle absolute shifts in merge (#82) 14a8880 Fix strict-window indicator firing on EVERY unplanned + bulk-panel shift ba05360 Feature summed dimensional chips on the multi-select banner 737adef Fix teal clock badge on UNPLANNED map markers (ticket 47130ee5 final) 5941ac7 Fix green clock also on COMPACT cards (ticket 47130ee5 followup) 942e72c Fix don't reset cum_capacity on shift_end (UI phantom tips) (#81) fa912e8 Fix stop synthesising phantom tip reloads between window vehicles (#80) 87c967b Fix focus filter + pickup toggle on exception-chip flow 3ba4b39 Feature clarify solve-result-card metrics with tooltips (ticket 5bbc7b83) d162416 Feature green-clock badge for strict time windows (ticket 47130ee5) e41546e Fix apply distance-band penalty at IMPORT time, not solve time b2d5873 Fix distance-band preset multipliers were backwards 1a630ac Feature distance-band penalty as a template rule + presets 3984b9b Feature revert+diag: remove Solve Rules tab; add reload-stops diagnostic to engine 1b7f293 Update bump @aione/workflow-components 1.9.5 → 1.9.6 274dc1e Fix collapse unmapped-columns hint to chips + "+N more" hover 7d24124 Update diag(routeone): log mandatory_reloads + reload-node skip penalty actually applied fb46725 Fix stamp auto-numbers + system_data + calcs on mobile sync (ticket 9e710b5f re-open) 75a30ff Feature mandatory reloads R=1 for POLIS/SPARTA (multi-trip diagnostic) 534bc07 Feature distance-band penalty rule editor UI (ticket 3e69f906) c50a485
Wednesday, 20 May 2026 2026-05-20 Feature vehicle_lookup renderer + SS job-card + mid-flow fail dd14001 Update ticket 437cf4f5: ss-monorepo workflow migration prereqs (schema + endpoints + submitter-id) (#18) 1ec3bae Fix photo previewUrl + video/file/address renders da29b1b Fix explicit signpost from termination toggle to Settings drawer 735138b Fix keep optimised route stats in Schedule Viewer summary (ticket 7d466360) 94ea21d Fix use entity-wide active list instead of truncated bulk-lookup map 54cf706 Fix hotfix(437cf4f5): revert MS workflow cutover — prod rolled back, master image needs to match (#79) a26d425 Fix unwrap pending-approval + correct migration org-id semantic (ticket 437cf4f5) (#77) 3be32a7 Feature Revert "feat(routeone): vehicle cloning for multi-trip (replaces reload-disjunction)" a89ef88 Fix Revert "fix(routeone): skip break intervals when vehicle cloning is active" a980381 Fix skip break intervals when vehicle cloning is active 4c91359 Fix hotfix(437cf4f5): unwrap pending-approval + correct migration org-id semantic (#75) 5e24868 Update ticket 437cf4f5: MS workflow routes cutover (proxy to aione-workflows) (#70) 4e45be3 Fix ignore pending PlanningSessions in delete check + cascade-clear (ticket 99a6e59c) e7fe29c Feature vehicle cloning for multi-trip (replaces reload-disjunction) 72fd237 Feature enable Path-LNS operators for multi-trip reload insertion f76218c Fix Revert "fix(ss/routeone): drop PCI override, let LCCI default handle multi-trip" c68ac58 Fix hyperlink file + video attachments to 7-day presigned URLs (ticket 9624020f) db08eb8 Fix wire video case + drop unrenderable emoji prefix (ticket 9624020f) 77f25c6 Fix drop PCI override, let LCCI default handle multi-trip e41e278 Fix show 24:00 + treat as ontime when window end wraps 3d0ecc1 Improvement bump body-FK baseline 15→16 for soft-delete update 26a8607 Feature soft delete with audit retention (ticket 4100613f) 7b9f1a9 Fix bump POLIS reload_skip_penalty 50k → 300k (matching SPARTA fix) 0f956d2 Fix bump POLIS/SPARTA reload_skip_penalty 50k → 300k 0fb4cbd Fix wrap time-window end forward by 1440 in SS envelope + on decode 5011e24 Fix wrap dropoff_end forward by 24h when end < start 909192b Fix MS getUploadUrl forwards fileSize + bump shared 1.9.3 → 1.9.5 2c54f15 Feature multi-trip via paired reload-attractive + shift-underuse knobs f34ece3 Fix normalise column-mapped time windows to dropoff_start/end 3a1550c Feature Revert "feat(routeone): shift-underuse penalty as cost-based multi-trip incentive" eac2e8d Feature shift-underuse penalty as cost-based multi-trip incentive 1b0b376 Fix defaults gate misses timeWindowEnd/timeWindowStart, silently overwriting column-mapped windows 7cc912c Fix add workflow_completed to event picker rows d54a978 Update publish solver image to GHCR eea232a Fix switch to PARALLEL_CHEAPEST_INSERTION when reloads_per_vehicle>0 (ticket 259a8362 follow-up) f11acf3 Feature distance-from-depot penalty bands (ticket 3e69f906) 4393e10 Fix enable per-profile multi-trip reloads (ticket 259a8362) 3018f51 Feature approval notify email + unmapped-columns hint df1443a
Tuesday, 19 May 2026 2026-05-19 UI autoIncrement iOS buildNumber 18→19, Android versionCode 33→34 ec62a28 Update 1.7.1 c1253cd Feature Log Tip — tipping weight capture from the field cd06321 Feature Bin Monitor mandatory closure wizard 8017acd Fix support currency cell type with symbol-prefixed input (ticket 8df5e721) d6794af Feature extend in-workflow Failed button to MS+SS visits and MapSmart single segments (ticket 11479e18 follow-up) 0b01b37 Feature extend in-workflow Job Card FAB to MS+SS visits and MapSmart segments (ticket aacfe6e8 follow-up) 6e8ebc2 Feature wire onSaveDraft so mid-form back-out + autosave persist as in_progress (ticket def73725) 03d665a Fix accept 'currency' in matrix-column cell-type allow-list ffa370c Fix run field-trigger evaluator on every public submit path (ticket ab5b0f50) 7ce6223 Fix render PDF + Excel timestamps in Europe/London not UTC (ticket 3825ebe0) 8019db5 Fix close the outer borders + add header verticals (ticket f2904f1f) cc49b32 Feature hyperlink location + video cells in workflow Excel export (ticket 5d05a3de) 253157d Feature support currency matrix cells in PDF + Excel (ticket 8df5e721) 5fa2b4a Feature mirror matrix-aggregate evaluator from shared package (ticket f9ce7b93) 46f7d5a Fix render address-field answers properly in PDF + Excel exports (ticket 44a0b07b) c082c04 Test migrate contact-group-injection to assertBodyFkBlocked 12082b3 Fix discriminate location vs address by field.type c9e0d45 Feature auto-fill 'value' on dropdown options in matrix cells (ticket fb93d803) 9adae4a Fix full grid borders + outer frame on the read-only matrix table (ticket f2904f1f) 174eb7f Feature add currency cell type to matrix fields (ticket 8df5e721) 0db2350 Feature allow matrix fields as visibility condition sources (ticket f9ce7b93) 53bbb57 Fix align datetime answer formatting with PDF (ticket e2fc8cd2) 63fc68e Fix render address-field answers properly (ticket 44a0b07b) 58aaf2e Fix remove redundant Target field picker — rules live on the field they target (ticket f2320656) 2d99840 Feature add packages:read permission to npm-ci jobs cf4cafb UI GitHub Packages auth + BuildKit secrets + npm@11 + lockfile regen 8e28c9f Feature baseline migration + with-secrets wrapper 5055bb9 Fix surface specific 403 reason on SSO login e4e21f9 Fix SLA purge now scans the full eligibility window 7dc06d7 Fix extend canonical AppConfig instead of redeclaring Window globals dee548a Feature vehicle modal Telematics tab + Waste Control Room layer c665011 Feature bind service_fleet vehicles to aione-telematics 7279a53 Feature field capture + supervisor reporting + DataSmart feed 6804a49 Feature mobile sync + mandatory closure backend 7855b30 Feature live Operations Gantt for waste-round completion 85d7f6a Feature SLA auto-purge — Phase 1 manual trigger ec79e17 Feature per-column filters on Round Visibility table 21dc922 Fix surface entity-wide active-monitor count on Active Locations 78f8953 Fix allow new round name entry on fixed services edit (ticket d112c90a) 9a9feb3 Update regen package-lock.json on Linux 6487db9 Feature prefer DATABASE_URL with fallback to split vars (ticket a9065b15) 9efe1ae Fix regen root package-lock.json after workflow-components bump 890c551 Feature bump @aione/workflow-components 1.7.0 → 1.9.3 13571f5 Feature right-click reposition + ghost preview (ticket c00d6aef) bd28884 Feature rule-editor card + Jobs-tab chip for day-of-week exclusions (ticket a6cce379) 4466a07 Feature day-of-week exclusions rule (ticket a6cce379) c7da250 Fix surface refs breakdown in delete-error toast (ticket 99a6e59c) 4d9ac4d Fix render strict-window clock badge on route-clustered markers too (ticket 3bce5638) 5436544 Fix wrap route-preview times on 24h clock with day-offset suffix (ticket 434e3ae3) b589950 Fix presign helper falls back to IAM role when env creds absent (ticket 53c9c789) de6aef8
Monday, 18 May 2026 2026-05-18
Sunday, 17 May 2026 2026-05-17 Fix bump runtimeVersion to 1.6.0 + sync version (ticket 29dc8b6a) bec6977 Fix react-native-view-shot 5.1.0 (4.0.4 was a typo) 1f27b11 Feature PhotoAnnotator component for drawing on photos (ticket 3245fd7d) 4f397f7 Feature tap-to-resume + rejection reason banner (tickets e796c2a3, #5) fab626d Fix provide valid WorkflowSchema shape (version + steps[]) in create tests 701fee7 Test Tier 2 template CRUD + cross-tenant scope for aione-workflows (10 tests) 2e50061 Test Tier 1 auth tests for aione-workflows (8 tests) ebcec04 Feature DVLA vehicle lookup proxy (ticket ccbc760e) fad81b0 Feature auto-email completion + reverse-geocode proxy (tickets 6b461cf1, 57bad669) 515d789 Fix pdf visibility skip + approval-notif deep link (tickets 95d42f39, 61c17940) 6e2d19a Update release: 1.4.3 - vehicle_lookup field type (ticket ccbc760e) 6d784c8 Feature release: 1.4.2 - address field, undo, completion-email setting (tickets 6b461cf1, 57bad669, 30be5f39) 7eacb99 Feature release: 1.4.1 - palette adds currency + tick-box (tickets d437e9fa, 1744bbe1) 2f3a791 Fix route Xero-send through strict `authenticate` middleware 4a593a0 Fix skip Xero-send Omnia-block tests until the underlying bug is fixed 9eb53a8 Test Tier 2 — Xero-send always blocked for Omnia (2 more tests) 2f2af88 Feature Tier 2 Omnia support-access toggle for InvoiceSmart (6 tests) f63a2da Fix replace xero canaries with strict-authenticate routes 15d084f Test Tier 1 auth tests for InvoiceSmart (11 tests across 4 areas) a4b509f Test Tier 1 batch 5 — forgot-password flow + users-endpoint privilege gate 8f06cae Fix fix 4 skipping canary paths + add login happy-path test 71efbc6 Fix use long-enough password in email-form login test 1036d3b Test Tier 1 batch 4 — real login flow tests with minimal Postgres schema 7498b20 Test Tier 1 batch 3 — privilege gate (superadmin role enforcement) d6c1412 Test widen PROTECTED_PROBES from 5 to 10 blueprints 2b1214e Fix drop /refresh from PUBLIC_PROBES (it correctly requires a refresh token) 813d3d6 Test Tier 1 batch 2 — blueprint auth-gate consistency + public-endpoint protection 517944f Test Tier 1 JWT edge cases — cookie auth, wrong-secret, expiry, CORS preflight 74aec9e Feature enable pan/zoom on the exception location mini-map (ticket b610076f) 0dc3264 Fix consistent answer-row layout + roomier job-details cells (tickets 371d342b + 851233c4) f91f95d Fix stamp system_data values onto answers at submit (ticket 9e710b5f) a62efab
Saturday, 16 May 2026 2026-05-16 Fix file upload, in-workflow trigger fixes, scroll reset, photo-on-termination 73d5fcc Fix in-workflow exception/fail/job-card buttons + safe-area fix eb71b7b Feature drop matrix row-pager, render as single long scroll (ticket d013e9fc) 9a872a3 Feature currency, multi-operand calc chain, field rules engine (mobile mirror) c009427 Feature fetch skip/fail reasons from per-org catalogue (ticket 55ec18a7) 8c592f2 Fix hyperlink to approvals queue in email (ticket 1b30d6fa) a021bca Fix video / file fields render as clickable download hyperlinks (ticket 4a66b6b7) 2649aba UI bootstrap Tier 0 vitest suite (health + auth gate) with Postgres CI gate eeaf711 Fix yesno boolean answers + operator support (mirror) 099eb20 Fix forward NPM_TOKEN as build-arg for private @omniasmarttech/* deps 91f564c Update push to GHCR on master (ticket 2e17a298 P2) d8fa048 Improvement loader fetches /aione/<env>/shared/ 70372b1 Feature wire SSM Parameter Store loader 65d3059 Fix add approvalNotifyEmail to template request shapes (ticket 1b30d6fa) 5745cf8 Feature currency, multi-operand calc chain, field rules engine (backend mirror) 5685d96 Feature email recipients on submission-awaits-approval (ticket 1b30d6fa) b764e9e Fix import-type SystemDataSource within file + pin @types/express-serve-static-core to 5.1.0 (5cdb11b6 Phase 3 follow-up) 1941397 Feature consume @omniasmarttech/aione-workflow-types for SystemDataSource (5cdb11b6 Phase 3) 759367a Update scope template lookup by org to silence WARN log ddedecf Fix derive attachments from answers.s3Key (ticket 4a66b6b7) 16790b7 Update release: 1.4.0 — trigger operators + yesno boolean normalisation (tickets 3b1b0b3e + df5e8e19) 15c3a1e Feature operator support + yesno boolean normalisation 97c626b Feature approval notification email input (ticket 1b30d6fa) 5057cbe Feature currency field, multi-operand calc chain, rules engine 35cea45 Feature extract @omniasmarttech/aione-workflow-types (ticket 5cdb11b6) b2eec50 UI bootstrap Tier 0 vitest suite (health + /auth/me) with Postgres CI gate 658b546 Feature Omnia support picker UI (ticket a40da365) bf14e9e Update push aione-xero backend + frontend to GHCR (ticket 2e17a298 P2) 7195f6f Feature internal /omnia-orgs endpoints for aione-auth (ticket d90647bf) cc4d2e1 Fix exempt AIOne internal orgs from Omnia support-access gate (ticket 1d9143e7) c4e957c Feature Omnia support-access toggle (ticket 1d9143e7) 33d9545 Update regenerate package-lock.json on Linux (ticket 74eb3f94) 92f749f Update upgrade Vite 5 → 8 + @vitejs/plugin-react 4 → 6 (ticket 74eb3f94) 9d69d73 Improvement loader fetches /aione/<env>/shared/ 1d3e6ae Fix diagnose 'Unknown Xero error' fallthrough (ticket 87ad1ba0) 899e2b8 Feature wire SSM Parameter Store loader 12b1c6f Fix auto-vivify stubbed-package submodules via meta_path finder bfc43cc Fix MagicMock-based shim with module __getattr__ (PEP 562) 7e33df3 Fix expand heavy-deps strip + module shims for transitive imports 3a12b76 Fix also install requirements-docker.txt (celery + redis) 7c9c1f1 Fix upgrade protobuf to >=6 (icepack gencode version mismatch) 95ffa0d Fix shim pyrosm in conftest instead of building it from source 79b04a5 Fix pin setuptools<60 + --no-build-isolation for pyrobuf 51d622f Fix keep pyrosm in install — needed by osm_utils transitively 65228f2 Fix set BATCH_CHUNK_SIZE_MB (utils/GAR_updates.py float() crash on missing env) 60e09bd Fix also strip Windows-only deps from Tier 0 install 7fa2258 Fix strip heavy native-build deps from Tier 0 install 8d7235d UI bootstrap Tier 0 pytest suite (health + auth gate) with Postgres CI gate a53d871 UI ops(ghcr): swap prod compose build: → image: ghcr.io/... (ticket 2e17a298) bb3c167 Fix regen lockfile to match vite 8 + plugin-react 6 bump a596614 UI build + push backend + frontend to GHCR on main (ticket 2e17a298) 9a83f4c Improvement loader fetches /aione/<env>/shared/ 70973d5 Update bump vite 7 → 8 + @vitejs/plugin-react 4 → 6 (ticket 74eb3f94) 59d8d31 Feature Round Visibility tab + visibility endpoint (ticket 5e1eba54) 426ef53 Fix add is_deleted column + switch DELETE to soft-delete (ticket 17760526) 7c8ddb3 Fix drop dead is_deleted filter from get_available_sweepers aeda36b Feature active/inactive toggle with optional inactive-until (ticket 17760526) 9b76480 Fix lazy getters + CI grep gate (ticket 347c1b1d) f6b1c73 Improvement env-aware loader (load_aione_secrets) 4fb167d Feature wire SSM Parameter Store loader (Phase 1, additive) 8c8877f Update bump @aione/road-restrictions to ^1.3.0 (ticket e77779e9) 275287c Improvement migrate to @omniasmarttech/aione-exceptions-sdk@1.0.0 a7c2a65 Update refresh lockfile for workflow-components 1.4.0 7c80090 Update bump @aione/workflow-components to ^1.4.0 9cb77c4 Fix regen lockfile for vite 7→8 bump 9d07faf Feature rate-capture Phase 3 export columns (ticket e5c2c988, follows 36626921) a2dba9e Update push ss-monorepo backend + shared frontend to GHCR (ticket 2e17a298 P2) ef8a95c Update bump vite 7 → 8 + @vitejs/plugin-react 5 → 6 (ticket 74eb3f94) a8712fc Feature rate-capture Phase 2 backend (ticket dcc47682, follow-up to 36626921) b296c2b Improvement loader fetches /aione/<env>/shared/ 1615ef1 Feature rate components Phase 1 (ticket 36626921) 13be116 Feature wire MS workflow forms to the field-rules engine 509ec6f Feature wire SSM Parameter Store loader 9564444 Feature auto-email completed workflow PDF to customer contacts (ticket 131e87fe) 0a73423 Fix honour scenario distance_unit on Scenarios-page solve card 3b6ad56 Fix drop raw-field dimension fallbacks on infeasibleJobs 9812d80 Feature soft same-vehicle for location groups via aux group_vehicle IntVar ce71d34 Update revert(route-one): disable location-grouping same-vehicle constraint 1392a7c Feature same-vehicle constraint for location groups that fit a85543e Fix drop raw-job spread on infeasibleJobs — crashes panel on toFixed 477b742 Fix pass raw job fields through on infeasibleJobs entries 30aebf6 Update bump @aione/workflow-components to ^1.3.0 (ticket 1b30d6fa) f64e8bd Fix coerce penalty to number on infeasible-job entries + Quantity fallback f2ba3b9 Fix import SystemDataSource locally — re-export alone doesn't bring it into scope bee1b6e Fix backend Dockerfile needs NPM_TOKEN for @omniasmarttech/aione-workflow-types 52a86ee Feature pre-flight infeasibility — jobs inside org polygons → unplanned 36cd175 Improvement consume SystemDataSource from @omniasmarttech/aione-workflow-types (ticket 5cdb11b6) 71849b1 Fix canonicalise integer-vs-string time windows in strict-badge check a22960c Fix format missed popup window + clock-badge tooltip 06f8b68 Fix missed popup raw-int site + per-leg Valhalla polyline fallback 6187299 Update bump @aione/road-restrictions to ^1.3.0 (ticket e77779e9) 2852b4b Fix remove 'Icepack' from all user-facing strings 3794f10 Feature mint a UUID requestId for RouteOne solves 316cabc Fix mirror job-time override to display fields + format raw window in popup f20ef6f Feature category filter on Settings → Exception Types tab (ticket 55ec18a7) e4f9475 Improvement migrate to @omniasmarttech/aione-exceptions-sdk@1.0.0 776ef8f
Friday, 15 May 2026 2026-05-15 Fix resolve six new sources (ticket 9e710b5f) 8b72516 Feature add baseline CI workflow 7d009d0 Fix embed real images + filenames for photo/video/file/signature 86d64d9 Feature six new sources — route, notes, weight, units, site contacts (ticket 9e710b5f) f846a20 Feature add baseline CI workflow 768639f Feature runtime config for environment-agnostic builds c868e38 Feature horizontal calendar report layout 6cb4b91 Fix fetchWithAuth reads V2 base URL from runtime config, not build-time env 34e774d Feature add baseline CI workflow (Python backend + Vite frontend) f04ecad Feature runtime config loader for environment-agnostic builds 26ce18c Fix bound polygon enrichment to per-vehicle 300 km depot reach 9930905 Update refresh lockfile for @aione/workflow-components 1.2.0 (ticket 9e710b5f) 26f7a88 Feature six new system_data sources for workflow builder (ticket 9e710b5f) 3482828 Feature add POLIS solver profile — bounded territories, minimal crossover 5062212 Feature runtime config so UAT-built image runs unchanged on prod 24f7cbc Feature add baseline CI workflow for lint, build, and tests ae67401
Thursday, 14 May 2026 2026-05-14 Feature publish to GitHub Packages as @omniasmarttech/aione-workflow-components 00e10a4 Fix calendar report 500 for variable services (57f8c428) 266d2ba Fix chmod static files world-readable in nginx stage 6a60cd4 Fix correct ExceptionType field refs in NotificationRecipientsTab (ticket 977852b0) 4a0d471 Fix bump GAR_SERVICE_ID 50 → 166 for GAR2026 season (ticket edbed9c5) 9954f7e Fix match GAR2025+GAR2026 service_type rows (ticket edbed9c5) cb10c45 Feature add Region column to validated tab (ticket e1a825d4) 6758ab9 UI consume @aione/* shared packages from GitHub Packages 79553c2 Fix calendar report 500 for variable services (57f8c428) d693a87 Fix pin antd to 6.0.0 (was ^6.0.0) 7b83f60 Fix explicit sorter param types on all 5 remaining columns cc14fe7 Fix explicit types on sorter/onFilter/onChange callbacks ec857e5 Fix import ColumnsType from antd root, not antd/es/table 1ed1063 Fix explicit types on all column render/onFilter callbacks f284dd4 Fix explicit types on Switch onClick + Stop column renders 8596373 Fix import ColumnType from antd root, not antd/es/table bf140e9 Feature consume @aione/road-restrictions shared package b262116 Fix bucket Origin Rounds by (service, round_ref) (edbed9c5) e72dd6f Fix chmod static files world-readable in nginx stage 370236e Feature expose more vehicle fields via column selector (ticket 324228a5) 9c505c8 Fix render calculated field values in MS web view + PDF (ticket 6c149714) 27e9887 Fix export delivery date off-by-one during BST 75d5431 UI consume @aione/* shared packages from GitHub Packages dcdbb5d Fix revert nested-table internal scroll — the actual width-growth trigger c126830 Fix remove customizable from nested fleet table — the runaway width was the re-instantiation pattern after all 3a82815 Feature strict-window emphasis across all three surfaces 0072925 Feature cog on expanded vehicle table + internal scroll on long classes b685c1a Fix re-add fleet metadata columns on the proven slice-not-wrap pattern 1845d9f Fix kill nested-table growth, teal clock, strict-window emphasis eaa12d1 Fix clock indicator reads jobMetadata fallback for historic runs aece04f Fix kill ever-growing fleet table + move cog to expanded level 3ec865b Fix re-include aione-road-restrictions/dist in Docker build context e78f34b Fix teach frontend Dockerfile about @aione/road-restrictions 39f730a Feature Cullompton fullscreen-analysis & planning fleet tweaks 8b7ee1c Feature consume @aione/road-restrictions shared package 265fa37
Wednesday, 13 May 2026 2026-05-13 Feature add Time Windows column to UPRN + service tables edfeed0 Feature multi-select round filter on Variable Services 0b6733e Fix Load Distribution table accept multi-week collection_days ea2f34b Fix round filter must match exactly, not by substring (69493322) efc0f6b Fix resolve CSS vars before Canvas polyline stroke (3b8092ee) 3cad518 Feature AI-generated driver debrief v1 (ticket 6c44afb3) 12d9614 Fix break stuck 'Rescheduled' state when reschedule chain dies (ticket 678037f7) 89e1ca0 Fix gate route-summary button to SolveSmart platform only d2d17c7 Feature AI-generated per-route summary v1 (ticket 805212c8) 3c91bdf Fix restore workflowTemplateId on re-snapshotted routes (ticket 5b983efb) 2aed72a
Tuesday, 12 May 2026 2026-05-12 Fix periodic upload timer so stationary tracking flushes (ticket a8fe229f) 906b11b Feature driver messages tab + reply + push deep-link (ticket 6ecdc1af) 79e7017 Fix forward workerName as systemDataContext at submit da909e2 Feature auto-select mapsmart_waste productMode when entity.system_type='waste' 4ba5e7a Fix handle 404 on Loaded & Ready when control room moved a stop e2e0ae0 Feature calculated field renderer + mid-flow termination 91dd34f Fix add mapsmart_waste entries to every Record<ProductMode, …> 2bc15b3 Fix TS errors flagged by tsc 54f86e8 Feature wire submitWasteStopWorkflow into StopWorkflowModal 0d13a77 Feature trigger Phase 2 type extension — notify block (ticket 2629437f) fa8304e Fix reset x cursor after matrix field so subsequent sections align 12f01f4 Feature calculated field stamping + workflow termination handler 7deec9f Feature ratio aggregation on the aggregator d278e39 UI rebuild for trigger Phase 2 notify config UI (ticket 2629437f) 59fbebd Feature Phase 2 notify config UI for response triggers (ticket 2629437f) 8df6298 UI rebuild dist 2a9a084 Feature calculated field type + workflow termination 5be6d47 Fix render system_data fields with stamped value (not null) fb88a69 Feature tab the modal into Field / Logic / Media 1ca06c9 Update bump axios + path-to-regexp + follow-redirects (ticket 373b4bde) 57ff204 Fix Xero rate-limit handling + count/summary consistency (ticket c682e356) 5d9d7df Fix Add exception-specific email notification rules for driver-raised service exceptions 6807212 Fix Days select-all (3a6c217a) + recolour-by-legend (3b8092ee) fd4eb97 Feature make Load Distribution table view width-resizable 5b85260 Feature add Tile / Table view dropdown for Load Distribution 6901f55 Fix expose dispatch_target in admin UI d21faef Feature include entity.system_type on /mobile/my-profile response 87561a1 Fix TS build errors 3383fb3 Feature ratio aggregation support 80600ed Feature Compare filter pickers for services + optimisations 3a5f4bd Fix flip scheduled_services.dispatch_target default to aione_external e89a573 Feature attach truck dims + orgPolygons to RouteOne request eae468d Feature truck-dims tab on Service Fleet + Road Restrictions admin page 6fb4ee5 Feature per-stop workflow submit endpoint f412be5 Fix right-rail layout + In Progress tile colour (tickets a8fe229f, 6d2179d9) 9ac5e30 Fix lock page to viewport height so Next button stays in view 1af5281 Fix readable text in skipped/failed status tooltip (91121394) 5a639c0 Fix dynamic fleet table scroll height to keep CTA in view 6882a30 Fix route /api/solvesmart-workflows* to solvesmart product context 76f7b80 Feature assign-to-route button on unplanned job popup (ticket e32270b3) 0f3404b Fix trigger Phase 2 dispatch (email + WhatsApp) — ticket 2629437f 5623073 Feature badge rule-overridden time windows on stop cards (ticket 1f786380) 7f6125d Feature highlight time-window cells set by import rules (ticket 1f786380) fae0953 Feature add requiredSkillsAny for OR-of-skills semantics (ticket fb5f5029) 5c26f82 Feature driver-message drawer + unread badges (ticket 6ecdc1af) 927fc5c Feature DriverMessage backend — schema, endpoints, push (ticket 6ecdc1af) 719f915 Fix cap grouped fleet table height so Next button stays in view (f18afdd1) abea8d1 Feature SOD/EOD chips on driver cards (ticket e9094bf4) 5052537 Feature hover-reveal skip/fail reasons (ticket 91121394) ca70b67 Feature unplanned-jobs panel + Unassign action (ticket 635869f2) 8a717b1 Feature unallocate-stops + driver push on route updates (ticket 635869f2) 853c6f2 Feature unplanned-jobs endpoint + org gate (ticket 635869f2) 9600752 Feature sort the driver sidebar (ticket 1139e8ea) 095fd5b Fix stop labelling transitRuleIds as vehicle skills ef43e3c Feature pivot off Valhalla → OSM/Overpass-derived restriction polygons 98de01b Feature ratio aggregation across entity + workflow paths 6774549 Feature live status tiles + click-to-filter (ticket 6d2179d9) 4c5ea8e Feature split Setup vs Reporting (ticket 36276e31) 0a799fa Feature ISR loader honours per-vehicle truck dims + orgPolygons a1fb4a7
Monday, 11 May 2026 2026-05-11 Feature WasteScheduleScreen v1 — list-based, SOD/EOD gated 2e5751f Fix start GPS tracking from Schedule tab too, not only Route tab 2797b56 Fix forward photo attachments through to backend (and inject SS upload-url fn) b44a534 Fix defer EOD modal present until reason modal finishes dismissing d2aa7fd Fix unblock three nested-Modal flows broken by RN's iOS modal stack 47a7a22 Feature per-field response triggers — route to approvals on match 497fdf5 Feature Response Trigger config on select/radio/yesno fields (v1) 43144e6 Feature per-condition AND/OR logic operators (ticket 3d67eb9f) a976f79 Fix surface Xero validation errors as actionable, deduped messages 2d38a28 Fix make Active Locations import tolerant of midnight-crossing time windows b052276 Feature workflow-config endpoints + admin modal on scheduled-services 8001f1a Fix annotate emailSubmission recipients: string[] 8f5cfe8 Fix FCC waste rollout — Control Room + mobile blueprint + dispatch rewire c62e32c Feature schedule-template picker on Schedule Diagnostic 092529b Feature service-type + region pickers on MapSmart reports f76b324 Update SQL push-down for count+groupBy / count+filter 6d5cf34 Feature add Active Sweeping Services + Fleet Inventory reports 6c5d68e Update count-only fast path + 200k snapshot cap 9e0db84 Feature add Services / Locations / Risks entities (snapshot) 0863917 Feature Active / Inactive toggle (181c3651) cc92d00 Feature mapsmart-optimisations entity + list-recent + by-ids c71d64c Fix include USRN in Fixed Services (ServicesPageV2) table rows 2fac826 Fix resolve CSS vars before passing to canvas markers ad9f3cc Fix alias @dnd-kit/* to consumer node_modules d3591f7 Improvement drop in-tree fork, consume canonical via file: dep cd02501 Fix re-include aione-workflow-components/dist f485f75 Fix in_progress stops get a distinct colour + nicer legend 162af6f Feature full filter parity on all 7 ss-monorepo reports e17bf69 Fix exclude .add-job-modal from "active tab = theme orange" rule f771e7c Fix clean user-facing failure messages, no vendor names 233175f Fix active tab label STILL invisible — switch to token override fc691e1 Fix tombstone old orphans + hard fetch timeout d3d853d Fix drop readable-stream override (archiver pin is sufficient) 7608a63 Fix pin archiver to ^6.0.2 to avoid readable-stream@4 + process polyfill 6d7a384 Fix pin @types/express-serve-static-core 5.1.0 + @types/qs 6.14.0 e5da255 Feature per-field response triggers — route to approvals on match 2e1b0c5 Feature auto-recover orphaned solves on backend startup 9665582 Feature add per-stop customer messaging (ticket e2c0b51c) d120cbd Fix pin react + react-dom to 19.2.3 exact b039ed6 Fix nuke aione-workflow-components/node_modules to prevent React dup dfd707c Fix re-include aione-workflow-components/dist b82d5fa Fix re-apply file: dep rewrite after source COPY da92b9a Fix use absolute file: path for @aione/workflow-components 13b7138 Fix annotate map params in workflowRepeats to satisfy tsc -b 0399a4c Feature mirror UO.role writes to ProductAccess on every CRUD path 8711dae Feature add "3PL - Weight Aware" solve mode mirroring Normal - Weight Aware 7efa7df Fix restore honest role-based pageAccess after PA backfill e7d75d8 Improvement drop in-tree fork, consume canonical via file: dep c9e065b Improvement drop in-tree fork, consume canonical via file: dep 3d61a5c Fix Setup tabs read me.organisation.id, not me.organisationId c48eddc Feature SS/MS backend + submission UI support for matrix field type caa9ace Fix read organisationId from auth/me's nested organisation object b9059c0 Fix return allRoutes as pageAccess (restore pre-fix sidebar) 4ebc14c Fix bridge to aione-auth by email, not userId d27aa04 Feature expose "Normal - Weight Aware" in the Run Solve modal 3ba7868 Feature "Normal - Weight Aware" solve mode — Icepack with pre-enriched vehicleRelations from Valhalla weight tags f85c1cd Fix use ProductAccess.role + internal org-config (ticket 3b593410) 6953ae2
Sunday, 10 May 2026 2026-05-10 Fix default S3 bucket to S3_BUCKET env (solvesmart-documents on prod) d797daf Feature expose 3 standard MapSmart reports through datasmart adapter 26d134d Fix plug DB-session leak that blocked DDL on uprns a6d27f8 Fix import modal becomes pure kickoff form, banner owns progress 4671ff7 Feature consolidate create_auto_risks() trigger body into single source file c02fe37 Fix surface backend error message when saving workflow e29ad2a Feature expose ss-monorepo's own workflow templates (Round 2) 9d1c081 Feature per-project filter for MS dashboards 3640e0e Feature MS resource utilisation rollup endpoint 8659ffa Feature MS fan-out — Resources / Routes / Solves entities + 2 reports 65e8f66
Friday, 8 May 2026 2026-05-08 Fix mobile renderer + local resolver for system_data 03f5673 Feature mobile renderer for auto_unique_number field a5e240f Feature mobile renderer + types for matrix/grid field 4ad50a5 Feature submit-time stamping for system_data field type d0a8589 Feature matrix/grid field type — types, validator, PDF, Excel 6a17de9 Update rename: dashsmart → datasmart endpoints + env 8bc1afe Feature add matrix/grid field type 4117c4f UI Wire Sentry sourcemap upload on prod build (ticket e28b8e8b) ec6abd9 Fix default duplicates map to {} so a missing response field doesn't crash render b012204 Fix include USRN in table-data field destructure 6ec4740 Feature auto-classify roads >= 40 mph as 'collect single-sided' risk fa1caa5 Fix Sweeper Edit/Bulk Edit shows full frequency list 3363bbd UI Bump Node heap to 6GB for mapsmart-frontend build (e28b8e8b) ee69a6c UI Wire Sentry sourcemap upload on mapsmart-frontend prod build (e28b8e8b) 86c65af Fix pool-conn cleanup on shift_workflow_status; param-bind order in batch_proximity_match 589e667 Fix release pooled DB conn in finally + name missing fields in IcePack errors 4b73ae7 Fix import balanced_kmeans in variable_services_controller 50edaea Feature DataSmart adapter — list-entities / field-index / aggregate 89af5b3 Feature Add stop_grace_period: 5m to mapsmart-celery 0d88542 Fix scope Variable Services round-edit to chosen day/round ebab260 Feature list-recent + by-ids endpoints for the Compare flow 701aac8 Fix polygon-aware polylines so the map line matches the solver's actual avoidance, not OSRM's straight-through becbe77 Fix active tab text invisible against orange bar 089d72d Feature expose per-solve stats from responseJson._stats 2228cb8 Feature postcode/place search to fly the map 07cdd3c Fix register /road-restrictions in route-feature map e8e43ae Feature polygon editor for road-restriction overlays 6310547 Fix drop Icepack/Vehicle-ref fields from user-facing solves entity + report 060c149 Fix replace solvesmart-routes (Icepack-empty) with solvesmart-scenarios 958118a Fix compute trip number per stop instead of hardcoding 1 3019223 Fix SS Phase 1 — Jobs, Routes, Dispatches entities + 4 new reports 45324d0 Update infra(ss): point backend at dedicated solver EC2 (172.31.34.163) 8907138 Fix filter entities + reports by ss-monorepo's own product flags 4f2d16d Feature stamp system_data values into Excel exports c592fc1 Update parallel chunks + Valhalla 4-thread/4-core for cold-cache speed a8b3107 Fix zod record needs (keySchema, valueSchema) 8174a90 Feature reports adapter — list + run, xlsx via exceljs to S3 1e7ef9c Fix persist route distance in km, not solver-units / 1000 (6873d5be) a990af0 Fix set canonical matrix in Valhalla branch fe207d5 Fix chunk Valhalla matrix calls to bound memory eba5584 Fix summary cells stay aligned when columns are hidden/reordered (19ebd546) 7497cb0 Fix unmapped columns now persist as customFields, surface in exports (38993fce) 291ed22 Feature truck dims in bulk edit + own sub-tab on single edit 8dd7c35 Feature wire sourcemap upload on prod frontend build (e28b8e8b) 799e599 Feature truck-dim fields on vehicle modal 9e66488 Fix wire vehicle truck dims through CRUD + RouteOne dispatch 92cedf3 Feature add matrix/grid field type 97ac702 Feature vehicle truck dims + RoadRestrictionPolygon for Valhalla routing fb2e25d Fix rewrite map-panel conditional as IIFE so diagnostic fires (ad9948c2) 7f10e65 Fix dispatch truck-classed vehicles to Valhalla matrices eee2b6a Feature IVR7Adapter accepts per-vehicle matrices e43ffa8 Fix use OptionalBoolean.BOOL_TRUE for use_cp_sat bd6805c Feature truck dims on Vehicle + org polygons on SolveRequest ebb0495 Fix zero-route diagnostic now triggers; smaller class chip (ad9948c2) d6f09bd Fix zero-route diagnostic on Map panel + tag overflow on cycler (ad9948c2) 88410e9 Feature add SolveRun, PlanningSession, ModelSmartProject, ModelSmartJob, ModelSmartOptimisation entities d77c949 Feature per-row + bulk Download PDF action (dd0f16cf) 3dac30f Feature per-job embargo dates exclude shutdowns from solver (6447342b) 3692fda Fix per-DOW row wraps and Sunday eats the second line (6c3e6654) 5cc8607 Feature expose Team Name as exportable field (620fc13d) 8deff30 Fix consistent verifyDataSmartServiceToken capitalisation 86612a7 Update rename: dashsmart → datasmart endpoints + env 4aade3f
Thursday, 7 May 2026 2026-05-07 Fix lock visit detail screen on declined state 2774629 Fix unified Skip/Report-Issue picker, EOD lock, resume from skipped 11540a2 Fix list-templates takes (productCode, orgId) tuples 0cea645 Feature cross-template list-templates endpoint 2c0c247 Feature field-index + aggregate endpoints for DashSmart 2e1035f Feature backend generator + counter table for auto_unique_number ee3f3b8 Feature batch-share /f/:token returns image attachments efe0c7c Feature public route + PDF embed for per-field reference images 2256299 Fix flatten workerInfo onto each row so submittedBy column populates 8b01ebb Feature auto_unique_number — submit-stamped sequence value a1e43f7 Feature preview also fetches attachments fac7b17 Feature per-field reference images on builder + form renderer f7fe436 Feature drag-and-drop step reorder + drag handle 559501f Feature Open Share Link row action — opens public form in new tab 67139db Fix single-line "Submitted by" covers every name/email combo 30ff6e1 Feature fetch features+pageAccess from /profile, not JWT (ticket 2295927b) 38dd191 Fix refresh aione-auth token on 401 instead of bouncing to /login (f395e02a) a7c1ce5 Fix stack Duplicate tag under reference so it stops overlapping Amount (080af6f0) e6dc450 Feature defer DueDate to Xero contact PaymentTerms (e3100f9d) dad384a Fix UK date parse for invoice/due date imports (bee08d0c) 26f3932 Fix auto-paginate Xero contacts so customer match works past M (2739c6f5) 87afa6f Fix retry Xero 429s + truthful consolidation counts (d445370d) fbcc6cc Update drop trigram index from migration 076 c88444e Feature per-property notes for Assisted Collections add1d18 Feature reseller dashboard sandbox badge + filter + reset 783a798 Fix Variable Services Edit Round accepts arbitrary round names 5e3b44e Fix add USRN column to Variable + Fixed services export a0676cc Fix add USRN column to Fixed Services (ServicesPage) table 0160c22 Fix show USRN as a column in Variable + Fixed services tables c31d840 Fix include USRN in Waste/variable/fixed services search filter a66a45b Fix populate Variable Services Round filter + add Unassigned bucket d50c368 Fix seed UPRN coord jitter by UPRN id so matrix cache hits e50da07 Update gitignore docker-compose.override.yml + document prod overlay (ticket bf2ff24c) 6ba0efc Feature match entity-access modal to admin.aione style 5f393af Feature add Risk Type filter to Risks page 566c0c6 Feature introduce Valhalla matrix client for truck-aware routing a625b60 Fix use top-level crypto import instead of require() 343df20 Fix type-only imports for express types 470bbc5 Feature adapter endpoints for DashSmart over MS/SS entities 2c9eff3 Feature team_member_at_index transform for Installer2/3/N (620fc13d) 0462778 Fix show effective clock-time on stop popups for team-allocated jobs (ace09fe2) 1fd8c87 Fix build URL as <base>/api/products/... (ticket 2295927b) edc8c13 Fix relative Location header so /docs redirect stays on HTTPS 4cdf43c Feature host-friendly /docs and /openapi.json shortcuts eab9d80 Docs OpenAPI spec for Bundle B + C endpoints f970985 Feature SS+MS frontends fetch features+pageAccess from /profile (ticket 2295927b) 8c5f924 Feature Bundle B — POST /jobs inbound + template discovery (5f81878d) a00722e Fix Bundle C — read-back dispatches + planned route stops (cf0a15b9) 9d00c91 Fix expose maxJobsByDow + customMaxJobsByDow in project getter (ticket 6c3e6654) 1174179 Feature customRates via template (4dac5c59) beed31f Feature surface why a solve returned 0 routes (ticket ad9948c2) 56a7cbe Improvement re-export workflow types from @aione/workflow-components 1b383a0 Feature surface vehicle class on route picker + cycler (ticket d0141f8f) c9e60d6 Feature stamp auto_unique_number on mobile submit gates 331335a Fix summary cells now mirror conditional columns (ticket 19ebd546) 9e8ba4c Feature port auto_unique_number field type from FlowSmart 9e9e26e Feature operational/finance contacts JSON arrays (c4d2b86f) d7afabb Fix round 4 — mileage uses team's own routes, not member PKs (ticket 6873d5be) 9ff2b3e Update adaptive budget cap + looser early_stop coefficient ea1fa8d Feature auto-import templates in Planning room (30b3abd8) 9efc6e6 Fix round 3 of workflow acceptance UX (ticket 9b9352e1) cff73bd Feature submission management — view, approve, bulk export (mike.stewart dd0f16cf) 166c0bd Fix sort non-suffixed base routes by real first-stop time ff0e04e Fix orientation bug + CSV support (mike.stewart d7a5360a) d6eaf9f Fix apply night-shift +1440min overflow at vehicle import 87c0dc5 Fix overnight shift overrides — encode end+1440min for IVR7 2ae07e4 Fix bulk + single shift edit must produce complete shifts c52f215 Feature bulk edit shift times for selected vehicles 4a1181d Fix surface declined visits across admin views fd08742 Fix allow resume from skipped + lock SOD/EOD after submission 1659e7d Feature extend skill merge mode to conditional + default rules 5e49f16 Fix friendly cross-org error when vehicle reg already registered f593409
Wednesday, 6 May 2026 2026-05-06 Fix route failed/offline workflow submissions to MapSmart queue, not ModelSmart (0dc01b35) fb3964b Feature show reviewer feedback on rejected workflow (4aa6cffa) c332398 Fix gate visit-detail UI behind acceptance (9b9352e1) 6b82d19 Fix rework SOD/EOD/per-job workflow triggers (5c0eafa3) bacea02 Fix migrate to Next.js 15 / @sentry/nextjs v9 instrumentation files 70846ae Fix stop the footer pass creating phantom pages e5c4234 Fix filter by productCode through the template join edd25b8 Fix set productCode on public-form submissions a742dd9 Fix embed workflow logo in PDF header 1923e0e Fix reset cursor x after the metadata block so page 1 isn't right-aligned 8080288 Fix server-side required-field validation on final submit 773ced3 Fix logo URL on public form + PDF generation pages 2ae1e63 Feature admin force-delete for non-pending submissions c06ac41 Improvement reject invalid Likert state instead of merging silently 0ff4f73 Fix preserve field config arrays/strings on empty-overwrite save 842ba2c Fix default productCode to template's value on create 3a1e823 Feature clone-to-org support for reseller hierarchy 7bba1f2 Feature make status tag clickable to open detail modal b0ad5e1 Fix no behavior change — pin dist after pulling logo type 48d057e Fix lay out anchor labels left/centre/right via flex 6b92feb Fix load scale/likert/file config back into form on edit 9feb706 Feature onCloneToClient prop for reseller flow 92b72a0 Improvement serve req.user.role from JWT-derived localRole, not DB round-trip 6ff9314 Fix SOD/EOD/segment/group submit fails with 'No resource profile linked' when admin did not link user_id at create time 144ccd8 Fix make depot tab badges day-aware in Fleet Summary e41bc70 Fix register label-import endpoints for streaming flow + relocate Import Labels button ed27a46 Feature add Import Labels (append) to UPRN Manage Labels drawer 20b423e Fix scheduler should only bundle by work-type segment groups 82d9afa Fix make sweeper Fleet Summary unplanned counts day-level, not per-vehicle 6ba6455 Fix reconcile schedule with unassigned_segments after route_builder f59f4ed Fix expand repeated steps in approval submission view (ticket a069fc1d) 3e510d9 Fix expose maxJobsByDow + customMaxJobsByDow in resource read paths (ticket 6c3e6654) b5c97a5 Fix mileage lookup uses Int-PK string + sums team-member routes (ticket 6873d5be) b8c5239 Fix contextual solo-assignment block message (ticket 9e2bb0a4) cf27a20 Feature expose workflow rejection comment to mobile (4aa6cffa) 039d40c Fix gate submitVisitWorkflow with acceptance check (9b9352e1) 351e0ac
Tuesday, 5 May 2026 2026-05-05 Feature render divider + spacer field types 1789233 Feature render scale, likert, email, phone field types 8a8699a Fix use new SS-mobile workflow endpoints (4c627f35) 56a96fe Feature handle divider + spacer in PDF + CSV exports 6d99416 Fix org-scope guard on multi-tenant Prisma queries d5a3004 Fix pass productCode to getOrganisationId on all routes 4f3371b Feature render scale, likert, email, phone, file field values 8c4c08c Feature add divider + spacer field types + wire onReorderField in WorkflowBuilderPage 3a9cce2 Feature port MS-rich StepEditor + FieldEditor as the canonical shared builder cefdaf1 Fix cap field-type dropdown to 360px with scroll 6839c15 Feature add `disabled` prop to WorkflowFormRenderer + SignaturePad (a68b9814) 9cb8d40 Feature add scale, likert, email, phone, file field types f24fb69 Removed remove dead Azure/Google passport config (post-93ff6ea0 cleanup) f7f6f8a Feature per-org duplicate-detection mode 7ed9d2a Fix derive sweeper sla_priority from SLA_OCCURRENCES_PER_YEAR 5691af5 Fix make schedule week-card title visible in dark mode 525633b Feature include USRN in Active Locations export 1ba507f Fix show Week 1..N (not Month 1/2) for week-based SLA schedules e6e1b6f Feature round-trip Time Windows through Active Locations import/export e66d63d Fix default new sweeping service color to a real hex 639976b Feature extend Sweeper SLA frequencies to 5-12 weeks cd7fd4b Fix replace Labels on UPRN re-import instead of merging 74702e1 Update sync vendored copy to upstream master (a68b9814 + 3a9cce2) b1b6406 Fix drop hardcoded geoedit-rds-db refs in ops scripts 2979dda Fix white-label hostname brand wins over user's session brand 9d353c7 Fix add dnspython to requirements-docker.txt f1ed7d2 Feature on-demand Let's Encrypt TLS for white-label custom URLs 6106794 Feature add divider + spacer field types deb53fb Fix mileage cost lookup used wrong resource key 1dba792 Feature consume shared StepEditor + FieldEditor (delete local copies) 3667c33 Feature add `disabled` prop + swap MS WorkflowPreviewModal onto shared renderer ca5aace Fix normalise location.id → locationId before RouteOne POST 04819c7 Feature hoist WorkflowFormRenderer + SignaturePad + computeSummary 1386f78 Feature vendor @aione/workflow-components into ss-monorepo (a68b9814) a87d4b3 Fix visible solid-radio text + matching legend/pin colours 533f66e Fix resolve resource names + add employment/skills/export d4e4447 Fix availability panel must not nest a <form> in resource modal a49bb05 Feature add scale, likert, email, phone, file field types eb86b88 Feature add resource-aware workflow submission endpoints (4c627f35) a64542f
Monday, 4 May 2026 2026-05-04 Feature general exception FAB on Schedule tab (all 3 products) 71d00aa Feature wire report button on MapSmart group detail screen 7206929 Fix drivers can never see an empty Job Card 9b61c95 Feature render configured Job Card layout + sections (v2) 3faac70 Feature pass linkedJobDate from the calling screen 3db3bfb Feature honour per-org Job Card visibility config 11cceab Fix friendly Alert when starting without accepting first 283e698 Feature success-tick confirmation before modal closes b255f2b Fix wire button on the schedule-tab visit detail too da4f4ee Feature mobile reporting modal + offline queue + 3 entry points 8a94375 Feature wire Sentry DSN for assetsmart-frontend build 1c3e26b Feature add @sentry/nextjs to AssetSmart frontend e59ff86 Feature add @sentry/node init to AssetSmart backend 08320bd Feature add @sentry/node init 3657dfc Fix self-heal frontend proxy across backend recreates 309fe90 Feature wire Sentry DSN for invoicesmart-frontend build cc22e89 Feature add @sentry/react init to InvoiceSmart frontend 3b1131f Feature add @sentry/node init to InvoiceSmart backend a5f68af Fix self-heal frontend proxy across backend recreates 38dbe21 Feature per-type slice for /next-collections (FCC Mayrise parity) acbed69 Fix hide Omnia admin emails from reseller-facing audit log 7a2011e Fix drop nginx backfill - audit trail starts at deploy f08b7fe Feature admin_access_log audit trail for reseller GDPR responses acbe785 Feature drawer surfaces 'GENERAL' tag for unlinked reports 5e4232b Fix show 'General' instead of em-dash for unlinked rows 64abf5d Fix chip arrival defaults Control Tower to table view e3c9f37 Feature auto-select drivers + clarify urgent banner copy b1cfec9 Feature treat 'ungrouped' as a real focus bucket on chip nav 050e900 Feature control tower filters segments to linked group on chip nav 6d5b21a Fix include exceptions_enabled in switch_entity response 814f6b3 Fix email fallback applies to all resource lookups 4694911 Fix /my-profile falls back to email when resource user_id null 6c7292a Feature wire Sentry DSN for mapsmart-frontend build 6469734 Feature add @sentry/react init to MapSmart frontend 254ff7e Feature chip nav uses linkedJobDate, falls back to reportedAtUtc 63f7ad8 Feature linked-segment chips land on the segment's date 42317f2 Feature mini-map preview in detail drawer 0fca07c Fix jobs lookup prefers dropoff row + correct stopType enum a1b9250 Feature jobs status lookup endpoints (Bundle A) + inventory script 512437a Fix self-heal frontend proxy across backend recreates ea40625 Fix redirect bare /api/v1/<product> root to /docs eefb42a Feature multi-contact notification routing a332b2f Fix reinstall sharp with --include=optional after prune 16953cc Feature public v1 API — workflow PDFs by consignment number cee00b2 Test unblock full vitest run — pool=forks + raised heap d140a5f Fix gate Billing tab on /ms-billing access, single switch 52f5c99 Feature template + rules support for customer tab import b34b753 Fix gate Billing tab on isEnabled('billing'), not pageAccess 6eb8d6a Fix pin is-stream as direct dep so prune doesn't drop it d0720c6 Fix targeted lockfile entry for uuid@14 (no full regen) a3c4074 Feature per-org billing dashboard — count-only, two billing models 62ab49d Fix drop ParamsFlatDictionary generic — not in old types b5d58d2 Fix rollback lockfile regen from d804a13 e937f8a Fix add process + readable-stream as direct deps 2606f6e Fix add explicit is-stream dep for archiver be0fc48 Fix unbreak master TypeScript after lockfile regen d35b706 Feature add merge-mode toggle to skill assignment rules 93e70be Feature drawer surfaces 'GENERAL' tag for unlinked reports c50b179 Feature partial-day resource availability windows 5114a50 Fix show 'General' instead of em-dash for unlinked rows d9d1e7c Fix regenerate lockfile to satisfy uuid@^14 + uuid override d804a13 Fix clarify urgent banner copy 4428d51 Feature map view of all org resources with colour-by + legend 1ba4d62 Feature persist + download the original source file e9a54df Feature per-day-of-week max-jobs cap on resources + assignments ac5c552 Feature wire Sentry DSN for ss-monorepo frontend build 1c10e68 Fix heal single-brace column/formula refs 7f5cf38 Fix per-job overlap detection + auto-rename on confirm 85990ad Fix fall back to hourly/daily/job rate when legacy costRate is 0 30240e5 Feature add @sentry/react init to ss-monorepo frontend 990bec4 Improvement single source of truth for Job Card defaults b106998 Fix show vehicle skills on the floating route stats overlay 1bf93d4 Fix merge eval enrichment over solve skills, don't replace 87c9717 Fix formal default state for Job Card layout — drivers can never see empty 00d440d Fix Job Card configurator no longer renders empty on load f25a77b Feature add @sentry/node init to ss-monorepo backend 5588e27 Feature add migration doctor workflow on push/PR to master 649643c Fix Job Card configurator — top toolbar + auto-scroll on add 25751de Fix land on table view when arriving via SS chip a6c6071 Feature drag-orderable Job Card layout + section grouping (v2) aa6f403 Feature chip click filters table to just the linked job 2df2aea Feature chip nav uses linkedJobDate, falls back to reportedAtUtc c8eb135 Feature per-org Job Card visibility configurator d88d8b2 Feature linked-job chips deep-link to date + focus row 6a47444 Fix enforce visit acceptance on mobile + surface declined visits 37b4170 Feature mini-map preview in detail drawer a771645
Sunday, 3 May 2026 2026-05-03 Fix apply theme-dynamic colors inline, not via StyleSheet 6b2455a Fix fix BST infinite loop in addDays that froze map view 59621ad Fix show empty-state before HERE SDK gate on map view c7dd1fd Fix normalize email on user write paths 27396cc Feature warn before re-sending an already-sent reference to Xero fb8eb47 Fix mint exceptions JWT via /refresh_token, not localStorage a47706e Fix drop sweeper-only restriction on Exceptions sidebar f82f542 Fix register exceptions_enabled in EntitySchema 678939d Feature per-entity 'exceptions_enabled' flag gates exception UI 82c0b13 Fix inline Add button + hint above table e95f2ad Feature use shared ExceptionsSettingsTab on the standalone page 913c050 Fix align with AntD 6 + workflow-components types 6655f05 UI vite-only Docker build to bypass pre-existing tsc errors fc55136 Fix rewrite settings tabs to match ApiKeysTab pattern b1f8e21 Feature MapSmart control-room + setup config 733abec Update Stores scripts: honour DB_PORT env so non-default Postgres ports work fd4a317 Feature add pre-push doctor:db gate for prisma/ changes 87ff9fe Fix declare missing @@index([workflowTemplateId]) on Location 7e6ed98 UI bump nodemailer ^7→^8 + frontend uuid + workspace overrides bb7c4f3 Fix use --to-schema (Prisma removed --to-schema-datamodel) ea55c13 Fix npm audit fix — resolve protobufjs + fast-xml-parser criticals 9b519bb Fix drop redundant header block — use DataTable's toolbar slot 950f0bb Feature single Exceptions tab with Types + Notifications sub-tabs 89feff2 Feature gate settings tabs by isEnabled('exceptions') c81f769 Fix rewrite settings tabs to match ApiKeysTab pattern fa74e9d Feature SS+MS control-room — list page, drawer, settings tabs b06bb52 Fix correct resourceType and employmentType enums f284728 Fix use ModelSmart favicon and brandmark on API docs page b94a6be Feature link API docs from API Keys tab b7884c3 Feature public API docs at /api/v1/modelsmart/docs 7e8d874 Fix replace hardcoded 2025 holiday list with date-holidays lib ef8be1e
Saturday, 2 May 2026 2026-05-02 Fix revert MS SSO to WebBrowser flow c6d6be1
Friday, 1 May 2026 2026-05-01 Fix join Labels list before export, not the renamed UI column ede4ba0 Feature export Labels column for Active Locations 727e4c8
Thursday, 30 April 2026 2026-04-30 Fix Branding tab: refetch on modal close, drop temp debug log 2ff2c1c Update Temp: log reseller branding PUT payload to trace external_domain wipe a114262 Update Branding: GET reseller external_domain + reseller-dashboard branding tab d743250 Improvement Remove dead normHex helper after diff-only refactor cd9bfd7
Wednesday, 29 April 2026 2026-04-29 Feature "Forgot which sign-in method?" link + broader hint screen 55ea47c UI bump versionCode to 25 (EAS remote-build auto-increment) 7add4c0 Fix finalize 1.4.0 build + fix manifestPlaceholders for native MS SSO 6d154e1 Fix explicit HERE init on SS Map tab so productMode race can't strand spinner 633ebf8 Fix Fix AWS_REGION in .env.example (eu-west-1 -> eu-west-2) 31fdc80 Feature Add flowsmart.aione.uk to CORS_ORIGINS example 71bed29 Fix expand dynamic-step-repetition instances in submission view 16f691d Feature Add pre-push hook to catch stale dist/ (closes ticket 784f0930) 5cb39c5 Update Branding modal: skip undefined form values + forceRender every tab fad1102 Update Branding modal: only send changed fields, never silently overwrite b00b26d Fix Fix NameError in UPRN snap when point falls outside grid index d086e1c Fix White-label fail-closed: never leak MapSmart on unresolved hostnames 721fbd8 Update Custom URL: TLS step in instructions + dynamic CORS for white-label hostnames 5b2f5dc Update Custom URL tab: live hostname in DNS instructions + export records c089352 Feature 'Continue in background' + ETA + floating progress chip e0081e0 Fix drop application/x-ndjson from Flask-Compress so progress streams reach the browser c91c4f2 Fix switch BoundarySelector tiles to openstreetmap.de (matches rest of app) 6fa4ad6 Fix two more bugs caught in WS demo prep a1fc0e4 Feature reseller-level external_domain — host->reseller resolution + Custom URL tab fb37c45 Fix kill the MapSmart-flash white-label flicker on first paint 1631610 Fix pluralisation bug + lock entity-level email-sending behind reseller cascade e8b9938 Fix brandmark_url falls through to logo_url when tenant has no override e46577c Feature single Export-records dropdown + PDF, matches green-button-ghost styling ea59898 Fix use getFieldsValue(true) so Tabs lazy-mount can't drop untouched-tab fields c9177f4 Fix export DKIM records as CSV/JSON/text + fix value cut-off dace67c Fix license_type must be one of monthly/quarterly/annual/custom — perpetual rejected by CHECK constraint f3f6ff2 Feature one-shot script to wipe + reseed WS entities in public schema for the production-shape demo experience 560c21f Fix v_entity_summary now reads from the right schema per entity cb6c49f Fix allow collection time below 10s on service type form 907f9a9 Feature UPRN bulk import accepts semicolon-delimited Labels column f998fe6 Fix drop spurious 'Name' field from EventDestination payload — that name is the top-level EventDestinationName parameter, not part of the inner dict f748fc1 Fix SES Phase 3 deployment fixes — index predicate immutability + drop cosmetic Tags c208014 Feature SES Phase 3 — bounce/complaint pipeline + per-reseller email identity API b9ed362 Update Drop legacy X-Organisation-Id / X-User-Id headers from import-templates client f53f5d9 Update Revert "Drop legacy X-Organisation-Id / X-User-Id headers from import-templates client" c05dcba Update Drop legacy X-Organisation-Id / X-User-Id headers from import-templates client 5311feb Update Mint and send JWT to aione-import-templates (security ticket 37602e5e) 4337697 Fix UPRN UPSERT uses composite (uprn, entity_id) — matches actual primary key 66e77b4 Feature wire up the integration API — 50+ endpoints over real data a981564 Fix polish — reseller pointer in quickstart, fix reference packet shape, soften sandbox solver claim 4c13af5 Fix stop entity edit form from sending non-editable DB columns 30e40d3 Fix vehicle registration includes entity_id to avoid UNIQUE collisions across sandbox tenants 1903497 Feature reseller-scoped admin API for managing customer entities at scale 20aec68 Fix hub_type uses uppercase START/TIP per existing CHECK constraint 546ab74 Feature sandbox seed + reset endpoint + provisioning + docs bdd4a25 Fix sandbox foundation — schema clone, key prefix routing, env header 6bc02a3 Fix full domain rewrite — Fixed/Variable services, Fleet, Hubs, Reports, Risk 16201d1 Fix stop falling back to legacy costRate in the table 04384d2 Fix expand dynamic-step-repetition instances in submission view d6dd657 Fix carry per-job workflowTemplateId from import-rule blob 3ab6122 Fix push qty/weight updates from edited solve to live dispatch 00429fa Feature NDD toggle in scenario builder modal (ticket d5a3cfe1) 49b5667 Feature auto-detect NDD candidate projects on bulk import (ticket d5a3cfe1) dd21afc Feature surface NDD frontier picker from SolveHistoryPanel (ticket d5a3cfe1) e1fcbf5 Feature NDD frontier picker modal + Evaluate API client (ticket d5a3cfe1) 5bf920a Feature wire NDD Optimise + Evaluate into controller and routes (ticket d5a3cfe1) bd14ffd Feature NDD SolutionInstance → MSProjectSolveResults converter (ticket d5a3cfe1) 2514048 Feature NDD envelope builder for IcePack Optimise + Evaluate (ticket d5a3cfe1) 7bf6b21 Feature add NDD allowable-cycle generator + tests (ticket d5a3cfe1) 4e514b3 Feature NDD proto codegen pipeline + generated bindings (ticket d5a3cfe1) ba9ad2d Feature add nddSuggested hint flag to ModelSmartProject (ticket d5a3cfe1) 923b732 Feature add NDD two-shot solve columns to ModelSmartSolve (ticket d5a3cfe1) 0807d04 Feature add NDD solver opt-in columns to ModelSmartOptimisation (ticket d5a3cfe1) 9c81950 Fix add MapSearchBox to Resource Analysis map (ticket b052aedf) a32ad25 Fix read shift duration from window width, not gap between windows 0214e75
Tuesday, 28 April 2026 2026-04-28 Fix stop import-progress endpoint from killing the DB pool ec7f798 Fix release DB connection on get_available_rounds error c44ef8f Fix variable service Round filter loads quickly 12ed4e2 Fix road segment search treats road-name abbreviations as equivalent a053de4 Fix road segment search — phrase matching + relevance ordering 1ebc708 Fix road clusters right panel scrolls on small laptop screens 8d0b976 Feature code samples, quickstart, webhooks, errors, idempotency, glossary a0c6543 Fix Redoc removeChild crash + async bulk-import endpoints 6dc68f6 Feature public API docs portal — Redoc + OpenAPI 3.x spec 8a3975d
Monday, 27 April 2026 2026-04-27 Update use literal runtimeVersion strings for bare-workflow EAS 6ea2205 Feature native Microsoft Sign-In via react-native-app-auth 5b07f99 Fix timeout GPS capture on stop detail "Start Work" so it doesn't hang c75ff01 Fix expose product switcher on FlowSmart settings tab de29307 Fix timeout + error path for map view to escape infinite spinner cbc8b43 Fix keep stop action sheet usable on iPhone when typing notes 7bb3f82 Fix route header tagline through accessible text token db1f440 Feature wire SES email helper into existing senders + branding modals 4df8c2c Feature SES per-tenant sending identity (DMARC-aligned email) 5977fb3 Feature wire backend brand strings (PDF + email) 2c11def Feature wire user-facing brand strings to BrandingContext 1d3658d Fix nginx — make /api/ location beat static regex match 91f242a Fix branding asset proxy + click-to-zoom previews 03cc8b3 Fix branding raw-fetch SELECTs only stored columns + tabbed modal 8505694 Feature variable-service import — surface top reasons in result toast 41c5d0b Fix bridge_height — wire to auto-risk trigger + backfill aea54ea Feature bridge height on Low Bridge risks + bridge icon on map ae23579 Fix entity edit modal — submit full form state across all tabs 4e2f840 Fix surface duplicate-username error on add user endpoint 39b3a9d Fix split brand logo (wordmark) from brandmark (header symbol) a3007b6 Feature swap in MapSmart brand assets + sweep long-tail hex 687cdd7 Improvement drive all colour through theme tokens (CSS vars) 14922b5 Fix apiV2Adapter — map /branding to /api/v2/branding 2609d03 Feature per-entity branding modal — reseller dashboard + admin settings 2645551 Feature branding cascade — reseller branding follows reseller_admin in d6c2a0c Fix reseller Add Entity button + modal copy match admin SettingsPage 2bd58d4 Feature reseller create-entity modal — Enable ERP Column Mapping toggle 00c5373 Fix variable-service template now exposes Day/Round Cluster columns 4c1596b Fix variable-service import accepts Day/Round Cluster columns dfa4792 Fix reseller entities table — disable virtual scroll for expandable 4480946 Feature reseller dashboard compact stats + DataTable + per-column sort/filter 80b00fc Fix EntityRequiredRoute wrapper kills entity-scoped 403 toasts on exit 57150f7 Fix StatusPage skips fetches when no entity context 173befd Fix backToDashboard navigation — use react-router instead of window.href 8d908a4 Fix backToDashboard preserves entity_id (User type requires it) a135a31 Fix backToDashboard — drop entity_id field instead of null 057c656 Fix proper exit-entity-context flow + reseller-admin route guard 0814a1c Feature reseller_admin View entity — operate as admin + back banner 8ff4a02 Fix reseller View entity — release spinner + redirect on success 57bcf30 Fix per-entity service-types returns active_uprn_count + active_service_count d6f2ff0 Fix sweep reseller surface for recursion + URL anti-patterns fe57272 Fix reseller dashboard response shape matches frontend contract ff2d577 Fix linked-only risks export is now scope-aware (drops cross-border segments) 3eb1e62 Feature risks export — second download flavour for linked-properties-only a463c8c Fix carry USRN through to Active Locations table + handle .0-suffixed segment uprns in risk export fab635e Feature expose USRN — Active Locations table column + risks RA01 export e61a3a8 Fix drop client-side prepopulate-button disable (auth-context entity is stale after Settings save) d615d65 Fix edit_entity preserves untouched fields (defensive COALESCE) 790cdbc Fix disable Prepopulate UPRNs button when entity has no boundary 9580ce6 Fix active sweeping services page — drop VITE_API_BASE_URL prefix 9638289 Fix variable-service import banner stops lingering after a completed import 52550ee Fix variable services map+table — week matrix coloring, day count, collection days filter e333888 Fix variable-service import modal blocks click while another import is running + clearer error toast 903b357 Fix variable-service import handles pandas NaN + multi-day cells 683122c Fix variable-services geojson stream: coerce NaN floats so JSON.parse doesn't reject the chunk 87fbc1c Fix clear stale variable-service filter state + auto-refresh on import complete 3b9b947 Fix reseller dashboard endpoints — kill recursion + add stats cfb6865 Feature variable-service import lock + persistent progress banner db1e132 Fix drop ACL=public-read from branding S3 uploads 71a99b7 Fix respect brandingEnabled=false for logo too, not just colours 064e0a7 Fix kill remaining teal — modal header gradient + duplicate stat-card before rule 639ad64 Fix hardcode MSStatCard colours to orange — kill teal-leak failure mode f5d4b0a Fix portaled modals/dropdowns inherit brand tokens via body:has() 613fca0 Feature swap /logo-full.png to new AIOne wordmark for selectors 91213b3 Fix bump link colour to spec #c45e00 for accessibility d81fb3b Feature drop MapSearchBox into Resource Analysis, Visit Scheduling, and Control Room b670ff7 Fix scope Ant Design colorPrimary per product, drop hardcoded #1677ff 21cab6f Feature geocode postcodes during import so lat/lng land on first save 7691e8b Fix enforce requireLoadedBeforeStart server-side, not just in the day list a2116ba Fix apply ExcelJS cell-to-text normalisation in the frontend wizard too 141405b Fix narrow schema-edit guard to actively in-progress submissions 14624dc Fix allow editing accountNumber when customer was imported without one bba79a2 Fix resolve vehicle by registration so workflow config reaches device 947134a Fix defensive numeric coercion on commit + surface backend error (#abdd3917) 37649f6 Feature job-type, single date+time pickers, location precheck, edit-pre-approval (#e5245aaa) 484f4c7 Feature customer-scoped public job submission portal (#e5245aaa) f334c02 Fix pin page to viewport so timeline/table scroll inside (#805c5341) 14df41c Fix apply Colleen's RAG palette to capacity indicators (#c03ac04a) dda9301 Fix drop diagnostic logs from resequence (#8433ef0f) 6ce443d Fix rebuild shiftStart from scratch + anchor to last completed dropoff +5m (#8433ef0f) 5b0fd28 Fix diag(ss/dispatch): log shift-start window before/after + first solver stops (#8433ef0f) 7760320 Fix completedStops counts dropoffs only, matching totalStops 244609b Fix bulk-stops uses post-resequence snapshot to classify stop types (#8433ef0f) 21067aa Fix pill strip width 115px (#8433ef0f) 5483672 Fix pill strip width 110px (#8433ef0f) 3cbfb34 Fix pill strip width 100px (#8433ef0f) 7263dd9 Fix pill strip width 90px (#8433ef0f) 97a562d Fix table rows render reliably + narrower pill strip (#8433ef0f) 38958c1 Fix pill strip width matches stop-status legend (#8433ef0f) edd90f0 Feature wider map pills with postcode (#8433ef0f) 15b0aa3 Fix table tab shows all stops again; drag still gated to pending dropoffs (#8433ef0f) d742552 Fix map pill strip starts below stop-status legend (#8433ef0f) c5d9a4f Fix reorder views show only pending dropoffs (#8433ef0f) 692770a Feature drag-to-reorder on Map + Table tabs (#8433ef0f) 05bf849 Fix drag handles now render — propagate assignmentId per stop (#8433ef0f) 44c2e43 Feature drag-to-reorder pending dropoffs in timeline (#8433ef0f phase A) 12f5864 Feature trip start/end markers + speed-coloured tracking dots (#40e5c538 part 1) 30063f0 Feature explain why vehicles are missing from capacity totals (#aac92294) ae8dbf3 Fix wire requiredVehicleClasses through staging->IVR7 conversion (#7de0d98f) 26491b8 Fix restore message visibility above fullscreen overlay (#f0b37de5) 3b1036a
Sunday, 26 April 2026 2026-04-26 Feature address/postcode search overlay on Map tabs c26ce5d Feature per-org default date format 0f5632e Fix submission row overlapped wrapped workflow title da05311 Feature expose import-template fields as Jobs tab columns d8fd3d1 Fix travel tooltip distinguishes driving from pre-job waiting 2ded3f1 Feature functional colour system + WCAG-safe subtitle b86c872
Saturday, 25 April 2026 2026-04-25 Feature clickable photo links via dedicated Photos sheet b2f85ea Fix presign without HeadObject probe de4c41b Feature clickable photo links via dedicated Photos sheet fe0138b
Friday, 24 April 2026 2026-04-24 Fix variable-service import no longer reports "complete" while still queued bd58546 Fix sweeper road network extraction completes for large counties 7cfe67c Fix restore vertical scrollbar on Schedule Jobs Service dropdown 00497d0 Fix lowercase email on user create/update 2ab113f Feature customer reply handler for template notifications 241a630 Feature resource-type priority for scenario builds 615f917 Feature template-send path for outbound customer notifications 1ee8da6 Feature broaden tool coverage + loosen prompt guidance c294285 Feature QR code for desktop → phone handoff on link flow a6cab1c Fix verify webhook signature against raw body bytes 7b25a0c Fix apiKey CLI uses shared prisma client for SSL-configured RDS 163d1a4 Feature external API keys for customer integrations cdc0400 Feature per-user portal/mobile access flags replace whitelist-as-user-source 92a1943
Thursday, 23 April 2026 2026-04-23 Fix stop empty-skills flash on skills step entry ecef93f Fix auto-insert dash in access code input eccb250 Feature conditional rule setValue supports {Column} placeholders 6ea04d3 Fix Reference field holds single PO on consolidated invoices bf53200 Improvement route accessible brand text through --theme-primary-text 46624a4 Fix catch remaining blue text instances in tabs + header hover 7bb24da Fix InvoiceSmart – Text-Safe Colour Addition 1f96c51 Update Drop axios in favour of native fetch + nginx no-cache for deploys 7d50ff9 Fix cast UPRN ids to int for windows fetch 6eeac17 Fix propagate time_windows from geojson to table row 4ddada8 Fix surface UPRN time_windows + stop silent-wiping on unrelated edits 8aecce0 Feature plumb per-UPRN time windows into RouteOne Bubble 78ab45c Fix routeone HTTP client timeout > solver budget 497ff07 Fix routeone celery task soft_time_limit > solver budget f4b23ae Fix per-depot unplanned breakdown on multi-depot schedules (#9977a150) af1a4f0 Fix cost-per-distance label honours the org's distance unit (#ccf9aa82, #ca7e00a5) 1b91f29 Fix column sizing + sort/filter on headers (#54618935) 3ae6e3e Feature AURA profile actively fills the fleet 35c921e Fix 'Already assigned' layer count after Select Best Suited (#8d9f7604) 765a3a8 Feature enforce UPRN windows via per-window virtual vehicles 1cbbfd5 Fix first-leg distance no longer silently hides as NaN (#26590e8d / #324aad71) 4a10d39 Fix visit_windows as soft bounds + restore CP-SAT ff43044 Fix vehicle reg tag reappears after driver is assigned (#a93f1f91) d1a7a41 Fix disable CP-SAT when visit_windows present b925c77 Fix in-map location search uses AddressesApi + proper debounce (#d6a9cda1) ed11499 Fix preserve source column names so template rules work (#abdd3917) 99ab747 Fix add solver.Add() for visit_windows (CP-SAT compatibility) a6c4e1f Fix visit_windows uses SetRange, not RemoveInterval+SetMax 9bb87be Feature telematics hover — speed + timestamp on tracking polyline (#40e5c538) 1499a27 Fix empty-route crash on Map tab + Move Jobs modal scroll + depot seed (#2a535f86) 36f24df Feature refresh SolveSmart + ModelSmart logos and palette (#98285cff, #aceb1ca9) fcc5d6c Feature per-UPRN time windows (Bubble) 3d1d817 Update Bubble early-stops when search plateaus f12435e Update Bubble default budget 1200s → 300s (matches Icepack UX) f24c251 Fix warn when a driver already has a dispatch for the same day (#ac1f1bf4) 5c2f829 Fix Bubble multi-trip vehicle clones — the real fix f8a81ce Fix reassignment no longer loses map markers (#c92f5b8f) 0eeccf7 Fix add 'Map' header to the map-icon column (#58b3e7a7) d48a271 Feature per-file template auto-detect + manual override (#6e38cc1d) 20a9131 Feature multi-file jobs upload in one planning session (#6e38cc1d) 1505e2f Feature Resource Planner + ghost resources explainer popover 4cd965c Fix Bubble distinguishes depot from tip location a460196 Feature piggyback rule — re-include excluded jobs sharing a field with planned ones (#626c16e3) a4e11ec Fix Bubble uses SAVINGS first-solution + 1200s budget 9b2eedb Feature UX follow-ups from #771ac4d8 197ae73 Fix timeline scrolls within its container, not the page (#805c5341) c2768c0 Feature solve name includes RouteOne profile (ROUTEONE — AURA etc) 272ff93 Feature 6 planner-facing tweaks (#a93f1f91) 801f03e Fix vehicle-class constraints now actually reach the solver (#7de0d98f) d0c3898 Update 4 concurrent solves via uvicorn workers + CP-SAT single-worker 726d7a9 Fix reassign stops within same dispatch now works (#c92f5b8f) 107f361 Feature RouteOne profile picker in Run Solve dropdown fd51ebf Feature rename profiles AURA/SPARTA/TERRA/OPTIMA with branded metadata 65c0f4f Fix Bubble reload skip-penalty instead of hard-pinning VehicleVar 3b5d9d0 Feature workflow-per-job rules + import wizard UX polish (#c6cb25a1) 7ba2ad6 Feature solver-goal profiles (FILL/MIN_VEHICLES/GREEN/BALANCED) 272fec9 Fix Bubble mandatory reloads so solver tips at capacity 4335fd3 Fix zoom-independent dropoff marker offset, single depot 22d0e6d Fix Bubble aggressive drop penalty so solver uses reloads c573a91 Fix add Vehicle Type col, search/export/settings, tooltip, plan name in header d6dbeb4 Fix spiral duplicate stop markers on map 00c20e1 Feature Bubble forces enough reloads + parallel insertion 3d7547c Fix ShiftEnd time must include last customer's service duration c36bbec Fix delivery-windows API URL — was /deliveryWindows, should be kebab-case acc579c Fix Bubble phantom-reload filter uses carried-capacity, not time f6a5be9 Fix SSE support for /api/notifications/stream in frontend nginx 67d4bec Improvement delivery-window import UX — two toggles on Step 2 45ee2d3 Feature marquee selects unplanned jobs + yellow highlight on selected dc3af37 Feature remove Custom Primary Rate from project-resource assignment UIs (#78c180d6) ab2f45c Feature edit photos + barcode values on completed submissions (#e19025b8) 67333fc Fix reserve window vehicles for windowed UPRNs only 3175a18 Fix ExcelJS rich-text / formula cells no longer surface as [object Object] (#fb76839f) 9096d1d Feature project-name header above tabs + resource-count column (#d2d67090, #1514b3c7) 6249d4d Fix useMsDistanceUnit retries when ss_current_org races (#ccf9aa82 / #ca7e00a5) 1d97850
Wednesday, 22 April 2026 2026-04-22 Feature Risks — bulk "Download All" RA01 forms as a ZIP a8c079d Fix Schedule Jobs Service dropdown shows all items when scrolled to bottom b9ca3ec Fix routeone task UPDATE referenced renamed variable request_payload → icepack_payload 46e73ff Fix submit_to_routeone logs ISR shape not native SolveRequest shape 4b1580a Feature RouteOne task uses build_icepack_request — one builder, two solvers d838708 Fix NULL-tolerant region filter in get_solves_for_round 1e2bf70 Feature async RouteOne Bubble solve — matches Icepack UX pattern 69345e2 Update Revert "revert(mapsmart): Bubble is fallback-only — restore submit_to_routeone to /solve (native)" c4a05b4 Update revert(mapsmart): Bubble is fallback-only — restore submit_to_routeone to /solve (native) 5d55998 Feature wire RouteOne Bubble — /solve/bubble + Icepack-shaped response_json + solver_used dba52a6 Fix three Sentry-surfaced bugs + complete sendmail→send_message sweep 04e8da5 Fix UTF-8 safe email sending — swap sendmail(as_string) for send_message 1c9371c Fix unplanned reassign always offers the source vehicle (#b57313e7) 37b5c38 Fix reassign skill filter uses ANY-match + marquee toolbar on left f73e707 Feature delivery-window library — Phases 2 + 3a + 3b (import integration) 465881c Fix prefer dropoff stop over marquee-captured stop for unplanned coords (#b57313e7) d392a80 Update tune(route-one): revert reloads 10→3 and bump budget 300s→600s for Bubble 85bc605 Fix bulk unplan produces rich unplanned entries (#b57313e7) f15b9f7 Fix bubble default reloads_per_vehicle 3 → 10, unblocks sub-capacity solves 21b3c33 Feature delivery-window library — Phase 1 (schema + CRUD + tab UI) 55bd645 Fix Bubble drops phantom unused reloads parked at depot start 1014060 Fix re-evaluate routes after unplanning jobs (#b57313e7) ae527e6 Fix column autocomplete in conditional rule Source field (#ca2cd226) 65d884b Feature Bubble v1 — 1:1 stop↔UPRN matchings so UI shows UPRNs per stop/leg e74362c Fix Bubble adapter computes depart = arrive + service locally 33341a0 Fix Revert "fix(route-one): depart_second includes service time, fixing UI Collection Time total" a824b54 Fix depart_second includes service time, fixing UI Collection Time total d44e0c4 Fix hard shift-end + 10min grace, keep CP-SAT enabled f0da726 Fix chunk OSRM /route calls — unblocks polylines on 100+ waypoint routes cfe2db5 Feature enable CP-SAT backend with 4 parallel workers 64e47be Feature remove distance cap + soft shift-end with tardy cost 23e4f76 Fix Bubble adapter emits interStop attributes + matrix-real distances dc5a921 Feature cap ×30, over-cap 10k/mi, penalty × 1.25 dbeed6b Fix Bubble adapter emits true Icepack-ISR shape 01692f1 Update revert(route-one): Tabu was worse (318 vs 349 jobs) — back to GLS 81a29da Fix BST-aware solve names + timestamped report/email strings f1c2c1f Fix visit-only classifier recognises pickup==dropoff + Bubble default budget 300s 0666d78 Feature switch metaheuristic GLS → TABU_SEARCH ac5da39 Fix use solution.Value() for cumul times, not Min/Max 5b5b4c6 Feature Bubble accepts Icepack-ISR format directly — from_icepack_isr loader b01f0dc Removed revert(route-one): remove first-leg cap — made throughput worse 462624a Fix cap first leg at 90min not 150min (user's actual observation) b4c0698 Feature hard cap on depot→first-customer travel time at 2h30 875f426 Feature RouteOne Bubble — /solve/bubble endpoint + Icepack-ISR adapter 13b3bea Feature add PROFILES.md catalogue; name current behaviour as RouteOne AURA e9de449 Fix tighten cap to shift_hours × 25 for denser local packing 197f98d Feature cost-aware insertion + Gantt travel tooltip excludes break time 1ffebf7 Fix bump over-cap penalty 5k → 15k/mi to kill radial outliers cfbc48d Fix emit GLOBAL stop indices for transitRuleAttributes aacf92b Fix restore break visuals via deterministic gap analysis 6c44d9e
Tuesday, 21 April 2026 2026-04-21 Feature migrate Google SSO to native Google Sign-In SDK 5f5867c Fix UPRN label drawer — grid layout + drop postcode pill so long addresses truncate and × stays visible 02faae3 Fix force native CSS ellipsis on UPRN label drawer address rows eb81707 Fix UPRN label drawer — long addresses truncate in place, alphabetise expanded rows 9c5e06c Feature read-only Labels column on Active Services (/services) and Variable Services (/variable-services) 913c229 Fix map new UPRN label endpoints in apiV2Adapter ENDPOINT_MAP 9ea8b47 Feature Waste Locations + Active Services get a Labels column (with Manage Labels on Locations) 39364ee Fix ResellerBrandingModal TS errors — drop unused Space import and Divider orientation ae89540 Feature reseller branding admin UI — self-serve logo/colours/URLs 07b8f66 Feature login_background_url branding column — uploadable per tenant fa0fb26 Feature white-label frontend foundation — BrandingContext + theme tokens + LoginPage/Header swaps 0d07a74 Fix white-label branding foundation — entities/resellers columns + resolver + email/PDF templating 5dc2967 Feature bulk-edit UPRN time windows 9cbaca7 Feature connection pool + Sentry + tracked migrations f7e5532 Fix default ROUTEONE_URL to http://route-one:4080 (internal DNS) 77bbfa6 Feature UPRN time windows + RouteOne solver for waste routing 02c5c68 Update revert(route-one): stop reading break placement — SIGSEGV in OR-Tools f41a2ee Fix reserve post-solve time inside RouteOne budget envelope 507bf9d Fix bump RouteOne solve budget cap 300s → 900s 7e9a00a Fix restore distance cap — search blew up without it f4501be UI revert(route-one): break back to mandatory — lunch is a hard requirement 16f6e37 Feature mirror Icepack transit-rule DB enrichment for RouteOne + optional breaks be7d8c0 Fix remove soft distance cap — LCI handles prioritisation 32610aa Fix read actual break placement from solver, stop guessing 9d9d506 Update revert(route-one): penalty back to linear scaling 038bcf1 Fix derive break position from solver, not heuristic 7e9307a Fix amplify penalty scaling + restore break fallback 3e14cb8 Fix switch first-solution to LOCAL_CHEAPEST_INSERTION 74eb0ec Fix break picks gap between customer stops only 604de99 Fix allow partial updates in bulk resources import 837f517 Fix emit break fromStopId/toStopId as 0-based array index f6b3a27 Fix soften over-cap penalty to rebalance vs drop penalties 9d96e6e Fix place break visual in the real gap, not after it d36d9dc Fix transit rules fallback + punctual service times ce4383f Fix parse nested shift.shiftStart/shiftEnd shape a85ec5a Fix unscale objective_value to scenario native cost units b0bd6e5 Fix transitRules field name + use solver depart for Gantt 1b95901 Feature real lunch-break intervals + tight depot-depart window 687219c Feature adaptive distance cap — shift-based OR geography-based 14ba464 Feature derive distance cap from shift hours, not flat number ba7af38 Feature tighten cap to 150mi + add span cost for route balance 134b1ca Feature soft per-vehicle distance cap + SAVINGS first-solution 6bd40c0 Feature emit cumulative capacity attributes on stops 2287414 Feature apply vehicleClass multipliers, location time, and transit-rule breaks 95df06d Feature switch first-solution to PARALLEL_CHEAPEST_INSERTION for tighter clusters 3ceb044 Feature honour Icepack cost coefficients — closes 1.83× mileage gap 8289e14
Monday, 20 April 2026 2026-04-20 Feature ping DB in /health so monitors detect backend-alive-but-DB-down b3e6a30 Feature ping DB in /health so monitors detect backend-alive-but-DB-down 6757d71 Feature consume aione-auth features + pageAccess in InvoiceSmart frontend fe38abe Feature per-org settings endpoint (dateFormat) for admin.aione.uk 2a00343 Feature InvoiceSmart product gate + auto-provisioning via aione-auth 050bfee Removed UX: remove aione-auth attribution from login page 890178d Feature consolidate InvoiceSmart SSO through aione-auth (93ff6ea0) 9f5e17f Feature org-level date format preference (00e97367) 5a882a3 Feature Brand: InvoiceSmart rebrand — new logo, background, brandmark, secondary colour (e6783cf2) fa7d82f Fix RA01 xlsx/csv export is the hazard table only dbaeb9e Feature RA01 Risk Form download in pdf, xlsx, or csv 08ac1e2 Feature ping DB in /health — Python port of the pattern 4e6d01d Fix schedule-edit modal tolerates region-less legacy keys c93c82d Fix disable gzip on /health — UptimeRobot keyword match fails on gzipped body ac80fa7 Update expose backend /health via frontend nginx for uptime monitoring 27be0d3 Fix resolve_region() helper prevents NULL-region regressions 612aa5e Fix prevent silent starred-solve loss on service/UPRN deletes aeef3a9 Feature add dateMulti filter mode; swap Planned Visit filter (#2f231033) 572bcfe Fix pin undici to ^6 — v8 needs Node 22, container has Node 20 9feeeb3 Feature Teams Phase 1a — team resources, exclusivity, two-phase orchestration b96b33c Fix 15-min fetch timeout so large solves don't report fake failures 99025a1 Feature normalise objective to Icepack scale on response d51f762 Fix correct travel-segment → interStop mapping (off-by-one) 99b6756 UI ui(SS/gantt): three-shade trip bar — brightest loading, normal service, dark travel 545aa45 Fix shift stops need jobId=Shift_<veh> (Icepack convention) so JobsTable shows them 1545c7a Fix honour vehicleCostClass.fixedCost so cheaper fleet wins 3744b42 Fix emit all vehicle routes including idle ones (match Icepack fleet output) aad60bb Fix pickup stops span shift-open→actual-depart for proper Gantt loading phase a1d2a27 Fix poll + heartbeat cadence so fast solves stop looking stuck fafbab9 Fix emit time attribute on interStops so Gantt gets arrive times a2a1ab0 Fix vehicle ID parity, progress heartbeat, budget scaling 5f8edba Feature real OSRM polylines in routeSegments — no more straight lines on map f79fc9c Fix persist DECODED IVR7 model for Gantt shift-time display 04543cf Improvement move internal time unit from minutes to seconds 67a678a Fix persist requestJson so /map endpoint can render routes 2ceb9d0 Fix centralise Leaflet default marker setup a2e4c43 Feature ui(SS): relabel RouteOne hint copy to 'AIOne's new BETA solve' 84fe165 Fix unignore README.md for Docker build e3bc264 Fix Dockerfile must COPY README.md (pyproject references it) cb78a89 Fix route-one has no host port (4080 owned by aione-admin-portal) bc3d5f4 Feature wire RouteOne as a selectable solver alongside Icepack 5edbfcb Feature internal solver scaffold + IVR7-compatible endpoint 4a0fde0
Friday, 17 April 2026 2026-04-17 UI match site button classes on Schedule Map action bar 400598b Feature Biffa sweeper UX overhaul — tickets #1-5 5cc2ba7
Thursday, 16 April 2026 2026-04-16 Fix show per-slot unplanned breakdown in day view 3e77d4a Feature add days_back/days_forward range params 0f5dcfb Feature add capacity & cost columns to project resources tab c037bf6 Feature Demand & Capacity View with dimensions breakdown (aac92294) 7aece44 Update infra(db): migration doctor + hardened rule #0 to end the drift incidents 8446587
Wednesday, 15 April 2026 2026-04-15 Feature show offload site + optional workflow on stop detail 339e613 Fix per-timeslot unplanned row in Fleet Summary c414da5 Fix eliminate second native scrollbar in Service filter popup a710f6b Fix remove double scrollbar on Service filter dropdown b547be6 Feature click-on-map mode for road segment splitting 8af1bb5 Fix restore GAR ticket flow and AHP closures for 2026 season b2fd3e9 Fix preserve aione_enabled and erp_mapping_enabled on update c5b5052
Tuesday, 14 April 2026 2026-04-14 Fix distinct colours per hazard + tighten risk trigger thresholds 420f24f Fix use separate connection for server-side read cursor bf804f4 Fix add /prepopulate_uprns to STREAMING_ENDPOINTS d884b28 Feature use parish from uk_uprns as town value 1a50632 Feature prepopulate UPRNs from uk_uprns national dataset a8602d8 Update infra(compose): attach backend to aione-auth_default network ab7831e Feature phase 1+2 offload site enhancements + driver plumbing (b5c23d96) 65c7dd9 Removed infra(backend): remove prisma db push from container start f601b36 Fix add Employment Type filter to Assign Resource modal (12a5f6eb) 476f5ef Fix workflow bulk export supports mixed types (9f1b2710) b6cffcf Fix typescript build errors in ProjectViewPage (follow-up to 7ab3c5e) 54bca7c Fix resource cost UI batch — 3af49dda + 126a874f + 6873d5be 7ab3c5e Fix import Dayjs type for date sync handlers 00a8b06 Feature ticket #12 date nav + recurring mgmt + ticket #15 customer import 514d10f Fix workflow system_data — new field types + worker_name fix (a5c64b42) c4069e7 Fix lock workflow template schema edits while submissions in progress (32c911ce) 1c606bf Fix add filter to Planned Visit Date & Time column (2f231033) 1124df4 Fix admin-edit role check was case-mismatched (f194ce57) 3fb7b23 Fix refine bulk resource removal + column sort (dc29f692, 2fb871da) 0077739 Fix resolve 4 queued tickets (dc29f692, 2fb871da, ecdac74a, 8812ef76) 15bfbc3 Update rebase migration history with single baseline + SLA rules + scroll modals 3ca3733 Fix scheduled dates discrepancy (ticket e048a357) 2fecb0d Fix remove unused imports blocking build 6d9b0f7 Fix settings tab auth import + org settings endpoint e1461b8
Monday, 13 April 2026 2026-04-13 Feature add admin-edit endpoint for completed workflow submissions e850bda Feature add Edit Answers capability to SubmissionsDrawer 5261fd8 Update Use full capacity for frontloaded days_needed calculation cd55855 Fix Fix frontloaded distribution spreading work across all eligible days 6d296cd Fix extract full attributes from geojson when saving road segments f794665 Feature post-routing quantity updates + 5 UI enhancements 46db020 Fix resolve 6 bug tickets + control room improvements 8bbc76d Fix restore DownloadOutlined import removed during cleanup bdff3d1 Fix resolve 5 ModelSmart escalated tickets c211e33
Tuesday, 7 April 2026 2026-04-07 Fix Distance stat showing NaN due to string concat 317fad8
Thursday, 2 April 2026 2026-04-02 Fix remove getPopupContainer entirely from condition dropdowns 5eaf3b4 Fix use document.body + z-index 2000 for condition dropdowns ee2d7f8 Fix fix unclickable dropdowns in visibility conditions modal 829ecbf Feature add High Traffic Exposure and Collision Hotspot hazard types 2f2a9a6 Fix Fix service dropdown max-width not enforced in production f2a2040 Fix widen service dropdown in Schedule Jobs page 5c4c4b7 Fix dynamic skills dropdown + ZIP extension for multi-sheet CSV export 3ce946e Fix clear :root inline vars when brandingEnabled=false 2a9d75c Fix don't clean :root vars on unmount — prevents flash on platform switch b3159ea Fix remove :root intermediate vars from MSDashboard — use theme vars directly c2e143c Fix ms-theme legacy --ms-primary aliases now point to --theme-primary 9d0650d Fix replace remaining intermediate --ms- brand vars (gradient, resources) 6eeef2e Fix MS radio button theme + remove intermediate --ms- vars 05c7a7e Fix replace ALL intermediate --ms-primary/orange vars with --theme-primary 18f4171 Fix final sweep - zero remaining hardcoded brand colours 228c19d Fix MS sidebar accent + dashboard stat card light bg use theme vars 3537ef7 Fix replace all remaining MS orange rgba shadows with CSS variables 828b98e Feature SS Workflows uses full HelpTab from MS (same feature) 99e6a3f Feature MS header logo swap + brandingEnabled support 3fe1e39 Fix import card ok background uses theme variable not hardcoded rgba b7be615 Fix set branding variables on BOTH theme element AND documentElement 132eb64 Fix import card ok border themed + table filter portal overrides bfa3c0e Fix increase specificity on MS Enter button to override ant-btn-primary eb54a83 Feature product-specific colours on org selector + platform selector 6e26d4d Feature portal element theming (modals, dropdowns, selects) d17f622 Fix add default theme variables on :root for pages outside theme wrapper abe4943 Fix replace 448 hardcoded MS orange hex/rgba with CSS variables 48d1ee8 Fix replace ALL 691 hardcoded teal hex/rgba with CSS variables 158fe51 Fix replace all hardcoded rgba/hex with CSS variables in themes 2b9200f Feature swap header logo with org branding logo when set 6bf3133 Feature complete theme re-skinning from branding 3f13104 Fix set CSS variables on .ss-theme/.ms-theme element not :root d6d2ac7 Fix debug: add useBranding logging 588d381 Fix move ALL branding declarations outside try blocks (both endpoints) 2f99108 Fix move ssBranding declaration to correct scope d0f0207 Feature apply org branding via CSS variables on login e9b539e
Wednesday, 1 April 2026 2026-04-01 Fix add loading spinner to Loaded & Ready, fix status transitions ad234db Fix fetch 3 months of dispatch dates for date picker ef6ce99 Fix loaded & ready transitions, date picker colors, dispatch dates 8c24062 Fix calendar dots on initial load, invalid date, loaded & ready, selected text 6756a48 Feature add settings, profile, in-app map/directions parity with ModelSmart 2cf05ec Fix use inline style overrides for all SolveSmart components 225e595 Fix use dynamic colors instead of static StyleSheet for themed values 0e6b970 Fix Fix missing depotIds in filter reset objects causing TypeScript build failure 0be9602 Update Widen service dropdown in Schedule Jobs to show full service names cbcfec0 Update Show unplanned segments per day/timeslot in schedule generator preview feb4ec6 Feature MS Reports tab-level filtering (Overview, Workflows, AI Reports) f4e58f2 Fix auto-enable parent page when any child sub-tab is accessible e533624 Feature MS Settings + Workflows tab-level filtering dc6d9ad Feature MS sub-tab route keys in feature defaults 9d93d48 Fix ensure /api suffix on AIONE_AUTH_URL 4a91670 Feature tab-level filtering for Job Management + Reports 484aa23 Feature feature toggles + RBAC page/tab access from aione-auth e495440 Feature auto-create users when adding to email whitelist 17f5060 Feature cascade org delete to aione-auth 560cb3c Fix Pre-populate inline template editor with org defaults ed9722c Fix disable FeatureGatedOutlet to unblock users fdc3681 Feature Per-customer template overrides in Customer modal c67f4fd Fix allow full access for legacy tokens without pageAccess 1306978 Fix Show human-readable labels on merge field chips 39bbc14 Feature feature toggles + RBAC page access from aione-auth 83c2077 Fix use originalUrl instead of path for ss-mobile detection 126d966 Fix include selectedCrmJobIds in stageValidationData deps 72a0071 Fix remove unused depotId destructuring (TS6133) 09478e5 Fix never filter jobs by depot — depot is for vehicles only 2b80077 Fix use resourceId from mobile tokens to resolve SSResource 7953dee Fix show all jobs in planning room regardless of depot selection 2e22d2f Feature Add Notifications tab to CustomerModal and org-level settings page 05b2ffd
Tuesday, 31 March 2026 2026-03-31 Feature SS workflow gating — SOD/EOD/loading enforcement on mobile 75bad30 Fix SS month/list views not loading + add dispatch date dots to date picker c32cc40 Fix auto-resize workflow photos to reduce memory pressure + fix SS type errors 4998b6f Fix Fix TS type error in service token check — cast role to string b3c60d9 Feature Add aione-auth service token support and network config 6a64280 Fix Sweeper - Active Services - Adding the ability to filter by depot 8ee0d1e Fix Fix SOD/EOD/segment workflow submission failing with Status 500 8045993 Update Always show slot headers in unplanned jobs list, not just when multiple slots 9282025 Feature Add undo button to scheduling map for reversing segment changes 701233d Feature Add per-slot unplanned rows in schedule viewer timeslot breakdown 70ab380 Fix Fix 6 escalated tickets + add Schedule Jobs to sidebar 12514ee Fix pin map container to top of page, eliminate grey top bar 64fec3c Fix centre map image in container with flexbox 437de43 Fix use object-fit cover to fill map container, revert window size 19f2272 Fix match screenshot aspect ratio to PDF container (409x248mm) 06fb6c0 Fix eliminate grey bar on sweeper map screenshots 8881711 Fix use 0.1 zoom snap for tighter map fit on sweeper + driver maps 9fff142 Fix use fractional zoom for driver map images 69fd6c1 Feature Add dropdown to day/resource nav in Route Analysis fbb64d5 Feature Add export column reorder + unplanned job tooltip details be89559 Fix Fix cycling arrows shifting when resource/date text changes 9754f4d Update Sync job status when visit status changes 398aada Fix Fix night shift calculation for multi-day solver times a78007e Feature Add financial fields and night shift indicator to export templates 6cb175e Fix Fix import template wizard clearing file on first upload 31c3c62 Fix Fix first travel leg showing 0 mileage in Gantt chart e853ae9 Fix Fix single PDF download to use same naming as bulk download 1a69849 Feature export with template for All Zones combined view 89ba291 Feature Add admin edit for completed workflow submissions 0c8e549 Feature Add resource fields to export template system 0fdd684 Fix add per-day rate type + filter vehicle lock by class 6f91478 Fix show duplicate job ref errors in validation step 84e5905 Feature add date picker to System Jobs panel for planning date selection 4ebb3af Feature multi-tab CSV export generates ZIP with one CSV per sheet b0ee8d9 Fix add missing skills to job form + fix workflow dropdown positioning b420a04 Feature add static time/date option to combineDateTime export rule 88b3299 Feature support formula expressions in conditional rule source field f289d37 Feature add lookup code option for time window rules 7c52a8e Feature SS workflow config — SOD/EOD/loading gating system acc062b Fix pipe standpipeCompany through dispatch snapshot to mobile API 56caf41 Fix vehicle constraint rules now applied to IVR7 solver model 9229b09 Fix time window rule reads column name from correct payload field 23bcca8 Fix recalculate rule priorities after deletion to prevent gaps/duplicates 51f0936
Monday, 30 March 2026 2026-03-30 Feature SS route screen parity with ModelSmart 4f1375a Feature dynamic dimension display on stop cards and detail screen 6bcbc73 Fix route screen stop counter excludes pickups/depots e87e709 Fix exclude pickups from stop count, show dimensions in loading card 0d13a7f Fix SS stop detail times, pickup grouping, delivery sequencing 6991c44 Fix add solvesmart to HERE Maps auto-init, improve loading state eea70e8 Fix use dynamic theme color for SS schedule tab toggle 3a02e05 Fix save product mode from access code before checkAuth d2553c6 Fix hide ss-stop detail route from tab bar 1641c9e Feature full mobile parity with ModelSmart b4dbe64 Fix include SolveSmart in org selector filter on login 07baf41 UI rebuild dist with dynamic step repetition + video field type 59aa3bf Fix Fix TS error: remove unused variable 'i' in items.map callback 995a65a Fix Fix vehicle consolidation for evening slots (#cd4e9a5c) + per-slot unplanned grouping (#9977a150) ddd92d6 Update Auto-retry failed scheduled rounds without missed consolidation (#1941d59e) d4938ed Feature Add bulk 'Delete All' button for unplanned jobs alongside 'Add All' 6451d1d Feature Widen unplanned jobs panel to 380px, remove 'Add' text from button (icon only) d59c05a Feature Add auto-fill warning (#0487ce31) + Delete from Service button on unplanned jobs (#c5cb6027) 5dff9ff Fix export sweep method labels to match UI (Auto, Walking, Vehicle) a0458d3 Fix fix active services export sweep method empty column cd4c5b3 Fix Fix front-loading: filter chosen_days to valid days for SLA group before snake distribution fb14e0d Fix Fix SLA day restriction bug — working_days sorted alphabetically instead of weekday order (#93d15214) 7851875 Fix Add more debug logging for day restriction check a448fb1 Fix Add debug logging for segment day restrictions in scheduler (#93d15214) 664ae86 Fix Fix segment splitting overlap (#e572cda3) + sweep distance not updating (#805fe8b9) ddfc459 Fix Fix HTML overview: download as file instead of opening in tab + fix day switching zoom 30accdd Fix Fix overview HTML ignoring vehicle/day filters + tighten PDF map zoom with padding=[0,0] 2d8c090 Fix Fix dead space on PDF maps — expand bounds to match viewport aspect ratio ff8deb0 Feature Revert PDF layout/image changes back to original — only keep tighter geo bounds padding (2% vs 5%) b34b989 Fix Fix grey edges on PDF maps — force Folium map to fill viewport, use object-fit:cover for map image 8dc4d40 Fix Fix grey area on PDF maps — adjust container to fit Chrome viewport, improve invalidateSize + tile loading 3c4f2da Fix Fix TS error: add schedule_length_days to ScheduleTemplate interface 0c96561 Feature Minimize PDF map padding — reduce geo bounds padding from 5% to 2% and page margins from 10mm to 5mm 2df0d56 Fix Fix sweep method export, SLA summary, segment exports + add PDF/Excel segment list download 25674b8 Fix Fix bare linefeed email rejection (5.6.11) for welcome/reset emails d6d6cc2 Fix enforce skill constraints on map reassign menu 4b76a1c Fix workflow submitter unknown + table misalignment + job edit losing time windows 2f92a48 Fix enforce skill constraints on vehicle swap b49b30b Feature allow cross-class vehicle swaps on routes 58d5d3c Fix fix toggle switch colour + remove recurring job name field 10c27ed Fix recalculate break indices for all routes after merge 60940a3 Fix populate all fields when editing a job 88b5fdd Fix use JobTypesApi for job types dropdown e8ca815 Fix exclude pickup stops from calendar month counts dce3b39 Fix use compiled prisma client path in migration fe41e2f Fix use ESM import in migration script 833de2b Fix accept-data-loss flag for prisma db push in Dockerfile cfb1ff5 Feature dynamic dimension extraction for SS mobile stops 7c982ef Feature include weight/volume/units in SS mobile stop detail response 1d48bc3 Feature unify offload sites and depots under Location model f5ebc4b Feature add cost analysis across dashboard, comparison, route analysis, and scenarios 32d8c24 Fix route-aware product selection in verifyToken middleware 535592e Feature customer notification platform support, MS job validation improvements f912875 Fix debug: add logging to SS mobile month endpoint for calendar investigation d48f18d Feature full mobile parity — schedule views, stop detail, workflows, navigation fc30205 Fix add proper map tile attribution links across all maps 86a88c1 UI Copy frontend package.json after build to avoid workspace interference 50724a1 Feature resource location optimization — frontend UI 707c7ce Update Include frontend package.json in backend container for deps dashboard 0afdc09 Feature add resource planning API routes 62e5e83 Feature add Google Places address lookup with local caching 5518b76
Friday, 27 March 2026 2026-03-27 Update Security: pin HS256 algorithm, fail hard on missing JWT_SECRET b172940 UI Make map download endpoint public — UUID is the auth token a05cfd4 Fix Fix background map: use shutil.move instead of os.rename across filesystems a8ca405 Fix Sweeper maps: add debug logging for background map task template loading 3d1cb46 Feature Sweeper maps: add Map column to segment list table f833d39 Update Sweeper maps: sort segment list table by sequence then arrival time 08a7eb7 Update Show all vehicles in dropdown even when empty (0 segments) e28ae27 Fix Fix bulk remove for multiple vehicles on same day + show vehicle counts da5b1a8 Update Sweeper maps: major perf optimization — reuse Chrome driver e82e834 Update Sweeper maps: assign segments to grid cells by intersection not centroid 5afeb3d Feature Add diagnostic logging to schedule save (frontend + backend) 0cbf9a3 Update Sweeper maps: use AA, AB, AC labels after Z instead of wrapping 5cc9f2c Fix Sweeper maps: invalidateSize() to fix grey/unloaded tiles ca958be Fix Sweeper maps: fix grey tiles — increase padding and tile load wait f1d2981 Update Prevent browser caching of index.html so deploys take effect immediately 364676d Update Sweeper maps: background generation with email download link 2b7355b Feature Sweeper maps: reduce bounds padding from ~110m to ~20m per side 77ee447 Feature Add login background to Forgot Password page 76fe08c Update Sweeper maps: simple 8x8 grid, drop empty cells 296016f Update Sweeper maps: spatial clustering for grid cells instead of bbox grid 1b0d9b0 Removed Sweeper maps: remove offset outlines, use single transparent line at 25% 61d93ab Update Widen map day selector dropdown to show full day names with counts fffdf0e Update Sweeper maps: more grid blocks for better zoom on driver maps 52b4490 Update Show all days in map day selector, even when empty (0 segments) 2ea0385 Update Sweeper maps: thicken outline borders from weight 2 to 4 8cae275 Update Sweeper maps: widen outline offset from ~3m to ~8m 4a0eee7 Update Sweeper maps: true outline effect using parallel offset lines 84369d1 Fix Fix stale closure bug in schedule segment bulk remove/add be3a916 Update Sweeper maps: solid border outline + transparent fill for segments and risks 9c12182 Update Sweeper maps: use dashed lines for segments and risks 27631be Update Sweeper maps: reduce inner line opacity to 35% so road names show through 0ace0b3 Update Sweeper maps: use outlined/bordered lines instead of transparent fill b3b44ce Update Sweeper maps: thicker transparent lines + include risks toggle 2c3fb79 Fix Fix SetPassword API routing and add login background to password pages 611d34e
Thursday, 26 March 2026 2026-03-26 Fix formula rules now reference source columns correctly 017f48e Fix Fix email encoding — use as_bytes() for UTF-8 HTML emails 76f424b Update Upgrade MapSmart emails to branded HTML templates 11e96da Fix Fix GAR sync: carry forward service-level region from previous year cd58be3 Fix resolve resource names in optimization exports 0ab0972
Wednesday, 25 March 2026 2026-03-25 Fix Fix welcome email and null password login crash 2d3b28d Feature add OGL attribution for Environment Agency water company data 41c6141 Fix convert Water Resource Zones GeoJSON from BNG to WGS84 5597b11 Fix move standpipe display to Job Location tab + trigger on blur d0e3615 Feature real-time water company lookup via Environment Agency data c2d047f Feature show per-zone new job counts in Solve History panel d963dcd Fix check ALL sibling zones when detecting new jobs in single-zone view 2ac281c Feature show new jobs count in Solve History panel unscheduled stat 7c5ba78 Fix remove org-scoped standpipe fallback — water companies are legally defined 8d33865 Feature global water company lookup via water.org.uk 2754370 Fix detect new jobs in getCombinedRouteData for decomposed/territory solves 7936466 Fix use project prisma client in standpipe seed script 0189cac Feature add standpipe provider seed script d78c073 Fix add 'new' to _excludedBy union type in all InfeasibleJob interfaces 90f1341 Feature show new jobs in optimised schedule + MS save endpoint a77ee93 Feature customer/job creation UX improvements 395872b Fix Fix bulk move: pass computed routes to auto-evaluation instead of stale closure 3bca0f3
Monday, 23 March 2026 2026-03-23 Fix Fix stale Xero connection status after API failures a053486 Fix Fix Xero token refresh crash — initialize OpenID client before refresh 9fc481f Fix Fix tracking categories not sent to Xero when set via rules only 35afbf7 Update SOD/EOD submit: auto-complete when workflow template missing instead of 400 75d632b Fix Fix SOD workflow: fallback to user's template assignments when schedule template deleted 8ee0945 Update Excel report: use Crew/Vehicle terminology, show peak + avg daily counts 1d4ef55 Update Collapsible filters: auto-collapse after Apply, expand on Clear f2a8a55 Fix Fix Excel report: group vehicles by depot to prevent cross-depot merging 57eda23 Update Stats panel: 2-column layout for Selected/High Risk to make Actions visible fe58832 Fix Fix risk colour mismatch (use #cc0000 at 0.6 opacity) and enforce 2x2 min grid 1560ff6 Fix Legend: use table layout with fixed 250px width to match other boxes b90edad Update Widen legend swatch and increase gap between line and text 88c107f Fix Fix legend text wrapping: add white-space nowrap 55766cf Update Driver map modal: use Select dropdown for day instead of free input cdc35ff Fix Fix TS build errors: add region to RoadSegment interface and filter reset 915519d Update Driver maps: single day + vehicle picker, widen stats box to 350px aca0b90 Update Show yards alongside metres in segment list length column 62f6724 Update Widen sweeping map stats box to 250px 02ff364 UI Style sweeping map PDF: match waste side layout with absolute positioning d1d6f4c Fix Fix OSM tile 403 blocked: switch all maps to German tile server 4de4a9e
Friday, 20 March 2026 2026-03-20 Fix add missing routeIndex arg to addPendingChange in bulk unplan f1b11be Feature bulk job move via draw-to-select on scenario map 5e4f96b Fix AI comparison summary double-parsing response 8dbcc2f Fix reports stats now computed from actual job/resource data ec0624e Feature add vehicle class lock to jobs 3b03863 Feature job form uses scrollable sections instead of tabs f5f0e05
Thursday, 19 March 2026 2026-03-19 Fix Fix XeroContext to read nested response data (res.data.data) 2e2dd2a Feature Add persistent Xero org name visibility across all pages 37d7a7c Fix Fix tracking category name not saving + add AND/OR conditions to rules a3c5f32 Fix region column, solver slot fixes, driver maps, excel fix, fleet cap, sweep method import 09b9a95 Fix custom round name not appearing in AIOne Dashboard a59cc47 Feature address autocomplete on job form using Nominatim geocoding d01c574 Fix control room draw-to-select not selecting stops 18d82bc Fix Revert "fix(solvesmart): control room draw-to-select uses left-click instead of right-click" 89cbeac Fix control room draw-to-select uses left-click instead of right-click 7550ae0 Feature standpipe auto-allocation feature 700161e
Wednesday, 18 March 2026 2026-03-18 Feature cross-platform voice commands using expo-speech-recognition 5421d33 Fix Fix sweeping map risks: query street_sweeping_segment_risks by segment IDs 7480dad Fix Fix KeyError in sweeping map: handle string/int day keys consistently ede36bd Feature Add generate_sweeping_map to STREAMING_ENDPOINTS in fetchWithAuth c59e626 Update Revert VITE_API_BASE_URL removal from MissedCollectionsPage 7e547fc Removed Remove unused Select import from SweepingSchedulesPage 68772ac Fix Fix custom round name not flowing to AIOne from missed collections 3ed2ec1 Feature Add vehicle route maps for sweeping schedules (overview + driver maps) 54545f3 Feature Add PUT /schedule_task_result to API v2 adapter route mapping f0eee9e Feature Add Apply Changes button to persist schedule map edits to server caee1ac Update Use compact D1/D2 labels for day selectors in Unplanned Jobs panel af949f5 Fix Fix sweeper timeslot update: unique constraint violation on slot_sequence bba7b0e Update Allow multi-vehicle segment removal and colour All view per vehicle e45cb44 Fix add /api prefix to aione-auth register-product-user URL 50c08eb
Tuesday, 17 March 2026 2026-03-17 Fix remove deprecated edge-to-edge attrs + add resizeableActivity d8e0766 Fix force voice commands OFF for existing users on settings load a85847a Fix disable voice commands by default — blocking job completion 0144c45 Fix bulk email/download ZIP reliability + size chunking 7ebfe80 Removed Remove dead Rules.tsx page — all rule editing is in TemplateWizard ed98fa2 Feature Add tracking category support to TemplateWizard rules modal 4709739 Fix Fix tracking category value input not re-rendering on field change c14edf8 Fix Fix GARDEN (RURAL) scheduled service: missing region filter and round ref lookup 45de983 Feature Add depot filter to Sweeper Active Services table 627c26c Fix scenario edit badges + Gantt sorting by dimensions 39a4ca6 Fix bulk PDF ZIP + email reliability fixes a10c99c Fix replace field name preview with info icon tooltip bc34136 Fix show all fields in tooltip since it scrolls 200b2ee Fix widen step field tooltip and add scroll for long lists 0d515dc Fix redesign step cards with two-row layout + capped tooltip d05d4b6 Fix restore step card truncation with tooltip on hover 0adc19d Fix fix dropdown value auto-fill race condition with Form.Item 2e2888b Fix fix dropdown option value auto-generation + bulk export/download 5c944cd
Monday, 16 March 2026 2026-03-16 Feature self-location permission + address search in registration & settings 19fdcf4 Fix voice workflow completion, Android edge-to-edge fixes, workflow enhancements 490f441 Update Tracking category rules: fallback to text input when Xero has no categories 6385574 Fix Fix date format (DD/MM/YYYY) and tracking category rules 6264578 Fix switch OSM tiles to German mirror to avoid 403 rate limiting b4c6aae Update Expand sweeping speed slider range to 0.5-14 mph with 0.25 increments b6345f0 Update Replace slow geographic clustering in PASS 2 with snake grid sort 0dd694a Feature Add Label and Group color-by options to road segments map legend 30906af Feature Add snake grid re-distribution after PASS 2 vehicle assignment 122c3e5 Update Use snake grid fill for vehicle assignment instead of greedy depot-distance fill e393dc1 Feature Add Group column to schedule viewer/generator segment tables b20e8f0 Feature Add label filter to road segments filter panel, auto-group and auto-bind a095405 Fix Fix schedule template delete cascade, pre-delete check, metrics recalculation 409264e Feature self-location update permission + address search for mobile cd87f36 Removed Dynamic recurrence frequencies + remove Templates tab 139e97b Fix Fix useImperativeHandle ordering: move after variable declarations 9f4f760 Feature Redesign recurring jobs: merge into Add Job modal with full job spec 55ad125 Fix exclude 0-eligible jobs from solver instead of empty INCLUSIVE b75e615 Feature show uncovered jobs count on decomposition map 9e44a73 Fix jobs with 0 eligible vehicles after distance filter now infeasible 578d44d Feature employment type + distance-based job filtering e10b27a Fix extend multi-day solve timeout to 30 minutes b7e9f7e Fix add gap between slider label and track 94924fe Fix improve Build Scenario footer layout c513133 Feature add Multi-day vs Day-by-day solve mode toggle fd6513a Feature add Resource Efficiency slider to control solver penalty af703e3 Fix workflow submission FK error for resource-based auth 82427e8 Fix remove unused useCallback import 7c33ea1 Fix remove unused link-user imports, state, and types 5592808 Fix remove Link User Account from resource Mobile App tab 67e5343 Feature resource-based auth for mobile app — resources no longer need User records 0bf1514
Friday, 13 March 2026 2026-03-13 Fix Fix variable service export: specific_weeks column showing -12 952e571 Fix Fix bulk delete performance: disable per-row triggers during bulk ops 967f6f8 Fix Fix bulk delete performance and bulk edit label pre-population d6ad041 Fix show full step titles and field names in step cards 9f52384 Feature add multi-select toggle for radio button fields 3984d91 Fix auto-populate value from label, fix CSV import, add template download 979d37e
Thursday, 12 March 2026 2026-03-12 Fix SolveSmart registration - teal theme, correct fields, step logic bda6691 Fix Fix schedule activation duplicates, add frequency diagnostic and clear existing option 97fae89 Feature Add frequency diagnostic at generator preview stage fe6e143 Fix Fix schedule generator fixed-day mode and add diagnostic export 4ba070c Fix Fix 404 on segment export/import by adding endpoints to STREAMING_ENDPOINTS 20f3eee Fix Fix SegmentsImportModal: remove invalid isFormData option 5720464 Feature Add bulk segment export/import for editing labels and metadata 8cc405e Fix Add frequency mode (fixed_day/flexible), fix activate_template weekend bug, new Scheduling Strategy step ebb94ea Fix Use LCM of SLA frequencies for schedule period to ensure correct tiling ded68d7 Feature Add 'Consolidated' distribution mode to schedule generator e8ca656 Update Consolidate non-daily schedule work into minimum full days ec7bb78 Update Balance geographic clustering with daily capacity leveling 82da7c4 Feature Add geographic clustering to non-daily schedule assignments 24fd74e Fix Fix apply schedule mapping day_sequence to calendar dates skipping non-working days 71975f2 Fix Fix Decimal type error when loading schedule templates 52e4b33 Fix Fix Capacity Used card to show average of per-crew utilization 3709f15 Fix Fix Total Area card for all schedule loading paths 29af0b7 Update Backfill total_area_sqm for older saved schedule results a610286 Fix Fix Total Area and Capacity Used showing zero in Schedule Viewer ee93774 Feature Add sweep days column, blank label filter, and time slot filter 2661bac Fix Fix starred solves validation: parse round_key to round_clusterid fe2c804 Feature Add extended SLA frequency options (x per week, every 3 weeks) a3e2200 Feature Add SLA by Label feature for sweeping services cb34de9 Fix Fix starred solves case mismatch on day_clusterid 40f652b Fix Add performance indexes and fix bulk slot overrides N+1 query 90ac128 Feature Add loading feedback to label rename and remove buttons 337482a Fix resolve 15 deployed tickets across SS/MS platforms 2c4fb78 Fix add requiredSkills and defaultCost to Prisma schema 9fc99b9 Fix add requiredSkills and defaultCost to JobType interface 679fb81 Feature postcode search autocomplete and global site picker in New Job form 5b80360 Fix full registration flow with user account + JWT tokens f7b9860 Feature add Reassign action to table view stops 5078868 Fix reassign stops, fix data gaps, polygon selection, transit rules 5840ddc Feature dark mode, map satellite view, and UI improvements across SS/MS 8ad1448
Wednesday, 11 March 2026 2026-03-11 Update Replace mailto forgot-password with self-service reset screen 7a78eb5 Feature Add explicit image names to docker-compose services 0599a4c Feature Add (No Labels) filter option to road segments table 835630a Feature Add keep_labels option to manual bind tool 4493dc0 Feature Add keep_labels option to preserve labels during merge 3a45ee1 Fix Persist auto-bind task ID in localStorage for progress recovery ab4208d Fix Remove unused variables in AutoBindDrawer to fix TS build 202338c Feature Add auto-bind tool for bulk segment merging 1bfdaac Fix Handle string working_days in day restriction comparison 5f0d56c Fix debug: Add assigned_days debug logging to scheduler 6194566 Fix Respect segment-level assigned_days for per-day variation 3049482 Fix Fix solver cost configuration per Icepack guidance 0efef75
Tuesday, 10 March 2026 2026-03-10 Fix Fix remove service deleting ALL service types instead of selected one 02168fe Improvement Optimize segment layer rendering with Canvas, GeoJSON, and viewport filtering 26266f6 UI Replace Ant Design Calendar with compact mini calendar in Control Tower b6a65d5 Feature Add overflow vehicle routing when enhanced routing exceeds shift time 1d043b4 Removed Remove per-segment 0.4km overhead from vehicle workload calculation c57a4e4 Update Switch vehicle solver to time-based capacity instead of arbitrary 60% factor 7ad36d8 Fix Fix sweep speed defaults: vehicles 5mph, walking crews 2mph 0b3e5b3 Fix Fix inconsistent slot display: respect service view_mode instead of hardcoding 'separate' 243bda6 Fix Fix vehicle schedule using walking crew mode for some depots 357fb5a Fix Fix vehicle schedule generation: depot_id column doesn't exist in fleet table 026f352 Fix Fix 401 errors: remove VITE_API_BASE_URL prefix from schedule API calls 5621395 Fix Fix individual mode deselection reverting on consecutive clicks c500fe3 Fix Fix Unplanned slot mapping for saved templates 2ba53c2 Update Rename 'Anytime' to 'Unplanned' for unassigned schedule segments c3fbf96 Fix Fix Total Area card: use calculate_segment_workload for consistency a9c3834 Fix Fix walking crew travel time estimate in template viewer f85d2fb Fix Fix Decimal serialization for template speed/hours fields 0d6fe46 Fix increase Node heap to 4GB for Docker build 84a1388 Fix increase Node heap size for Docker build d33ce77 Feature add internal provisioning API for aione-auth integration b06d092 Feature Add solve duplication with name prompt 46c0d34 Fix WHite Screen - All Zones 9fb41ec
Monday, 9 March 2026 2026-03-09 Feature save dedup, error messages, and dynamic step repetition support 8d10e11 Fix FlowSmart ticket fixes - save dedup, visibility conditions, dynamic step repetition 88b7a8b Fix Fix multi-org SSO login stuck on 'Completing sign in...' screen 3cca7fc Fix audit fixes for tracking categories, exclusion rules, and notContains e09165e Feature template patterns for field mapping, tracking categories, notContains operator ed0590f Feature description-only line items with positioning and reordering 2695e13 Removed Remove unused ScheduleRouteMapModal import d78653b Fix Fix walking crew template viewer: Gantt bar utilization and coverage rate 222a09e Fix Fix segment layer toggles resetting on pan/zoom f10153d Feature Add Road toggle to Segment Layers legend on Road Segments page 91f51f5 Feature Add Segment Layers legend to Road Segments map e0e6e05 Feature Add pavement offset visualization to Road Segments map 8c9dca1 Feature Add visual pavement offset for PVMT A/B segments 917b7d4 Fix correct SQL column reference seg.allowed_depot_ids → asv.allowed_depot_ids 1beac0f Fix fix walking crew sweep time, add linear distance, fix template routing 6014ecd Fix add min-width:0 to all page main-content flex containers cf6aea7 Fix remove unused imports/variables in LookupStreetNamesModal 975ed85 Feature background street name lookup with cost tracking 4f455ea Fix Add Type column, fix Trip Stats depot/slot filtering, add slot filter to map modal e403e7b Feature Add segment_type (road/pavement_a/pavement_b) to schedule generation and template details 2fac63f Fix Fix schedule viewer stats merging across depots for same crew numbers ef0e70a Fix Resolve 4 ModelSmart UI tickets (#19, #20, #23, #28) a334d8a Fix add min-width:0 to flex containers to prevent table overflow da23553 Fix Quick UI fixes for 5 ModelSmart tickets ad86d8e
Thursday, 5 March 2026 2026-03-05 Fix Add SolveSmart access code validation for app registration d3c8c86 Fix disable new architecture - HERE SDK native modules not registered 6b75897 Fix HERE Maps not loading on iOS production builds (new arch) 76785ff Fix Android Google SSO login not completing (deep link fallback) c160717 Feature add efficiency % and gantt bar to separate view vehicle rows 90f9220 Fix filter slot crew counts by selected depot d58044a Feature add Group and Labels columns to active services table 8e7e001 Fix Fix GAR sync: re-activate soft-deleted services instead of skipping edde08a Fix Resolve 5 ModelSmart bug tickets be80f64 Fix Use hardcoded teal colors for portaled modal buttons 8080943 Fix Resolve 7 SolveSmart bugs from ticket system 8e78949 Feature Combined zone view, per-zone starring, unplanned diagnostics, resource utilisation dc6c351
Wednesday, 4 March 2026 2026-03-04 Fix stop repeated OTA update prompts and bump runtimeVersion f09ec5f Feature add Android versionCode guidance and troubleshooting to RELEASE.md 565a177 Update Increase solver task time limits: 20min soft, 25min hard 34bd8bf Update Increase IcePack polling budget: 20 retries, 20s delay, 15s initial 8d4fe09 Update Increase IcePack poll timeout from 30s to 60s 4358a61 Fix Add retry on polling timeout instead of failing immediately 48c4654 Fix Add entity_id filter to proximity matching queries ab375f5 Fix Add automatic retry on scheduled pipeline failure ffaeb9b Fix Fix walking crew schedule generation: send resource_type from frontend and auto-detect from fleet ff6bc52 Fix Fix is_walking_crew attribute error in ScheduleGenerator 3871629 Fix Fix migration script to use DB_* env vars 160109f Removed Remove unused Form import from LabelManagementDrawer 4c0f377 Feature Add Manage Labels drawer and label management endpoints 4d18e58 Removed Remove unused TagOutlined import f60089b Feature Add labels to segments, remove group_type from groups 036235f Feature Add group_type (label vs work) to segment groups a9f6f92 Feature Add custom round name for missed collections pushed to AIOne 4b00b64 Fix Resolve location ID mismatch in scenario edit + fix(MS): Planned vs Actual enhancements 905b260
Tuesday, 3 March 2026 2026-03-03 Fix iOS fixes, SOD lockdown, offline queue improvements, cache clearing a594cdc Fix iOS HereMapView crash - use RCTBubblingEventBlock for events 12dd865 Fix 5 UI bugs - calendar, workflow header, back buttons, map fallback 71b7740 Fix MapSmart Map tab not showing groups - fall back to geometry coords 4f63434 Fix chain repeat step instances for correct navigation flow 5c79e3a Fix lazy-load expo-image-manipulator to prevent crash on older binaries df96934 Fix resolve TypeScript errors and add iOS map support in HereMapView 6db6c6d Feature add HERE Maps iOS native implementation b2e74c9 Feature per-line-item rule assignment 2e3c6af Fix rules not saving in Template Wizard (same bug as Rules page) 4225870 Fix rules now persist immediately on save, fixing "rules not saving" bug 7ff5957 Fix Fix workflow preview: interactive photo/signature/location + submit success screen df0c6c8 Fix Fix GAR sync: add entity_id to INSERT + revert export JOIN change aab0289 Fix Fix export JOIN: remove entity_id condition matching services list 7bad8ce Fix Fix export returning 1 row: align region filter with services list 6d7621b Feature Add sweeping method field to single-edit active service modal d1c0339 Feature Add pavement_mode to service type SELECT queries 56878fe Fix Fix selection counts to show total active service rows, not unique segment IDs e03028e Fix Fix unused variable TS errors in RiskPage components 31c1987 Fix Fix pavement segment_type display + add sweeping method override on active services 7e77eb6 Fix Fix NameError: pass current_week_number to execute_batched_submission 3ed5541 Fix Include hasDispatched flag in scenario listing API d2e17d7 Fix Use icon-only dispatched tag on scenario card b0cb8bd Fix Move dispatched tag below solve count on scenario card ff677b8 Fix Add dispatched icon on scenario card header bcdc865 Fix Show Dispatched tag on scenario and solve cards e9c880c Fix Pass dispatch date to Control Room via URL param 7252d22 Fix Show Go to Control Room prompt after dispatch 2780e46 Fix Reorder side menu - Job Management below Import, above Planning Room d59246c Fix Add Control Room link in Dispatch panel & move Job Management to Planning menu 6bf4ee1 Fix fix stats panel job counts, total time, schedule rate, and route select f74d10b Fix complete undo/redo history tracking and preserve capacity stats 5da8d46 Fix use backend solve stats for total time/distance, fix undo/redo auto-eval 3e10cfe Fix scope z-index overrides, fix job error count, remove dead code 18205c6 Fix fix breaks disappearing after eval and drag/drop around breaks e75813c Fix aggregate optimisation stats across all solve zones 7170aa7 Fix strip invalid vehicleRelations in single-vehicle evals + chain repeat step navigation 0c8c7e4
Monday, 2 March 2026 2026-03-02 Feature add navigate button on group details segment rows 7e12718 Fix add proper padding to adaptive icon for Android safe zone 47acc14 Feature add voice command for segment arrival (start sweeping) 7a88a16 Fix use reactApplicationContext.currentActivity for Kotlin 2.1.20 compat ba1f390 Feature add segment search bar and voice command native module 2f514c6 Fix resolve TS errors in register.tsx and use map-matched GPS coordinates e129481 Fix wire up route deviation and rerouting event listeners 0cc4683 Fix resolve 8 TypeScript errors in WorkflowForm 35b75d9 Fix convert HEIC photos to JPEG before upload on iOS 5cca527 Fix better Xero error logging and handle empty line items after zero-value filter 34db2c3 Fix coerce reference field to string (was failing when Excel cell is numeric) 2e2e42a Feature Update Upload page with multi-line-item support, add error logging 18267c3 Feature Add multi-line-item mapping, remove zero-value line items toggle, full-width layout 84431c9 Fix save button visibility, rules bugs, Item field, rules enhancements f76296e Update Rewrite backfill to process territory-by-territory, smallest first 87d140d Update Switch locality geocoding to p3 (~110m) for higher accuracy 9718a95 Feature Add standalone backfill script for segment locality geocoding 7fc27b7 Feature Add locality geocoding for sweeper segment risk grouping b363247 Fix Align sweeper auto-risk hazard names with hazardColorMap 8f03dfb Fix Add sweeper risk endpoints to STREAMING_ENDPOINTS map 0bff044 Feature Sweeper module risk management (Ticket #5) 4d85c30 Fix add yesno/boolean/summary to shared workflow metadata and validation f3fe66d Fix add yesno/boolean/summary to FieldType in shared and local types 55e2bbf Fix Select All Visible now respects table column filters (sweep method, etc.) 04ef8d9 Fix add yesno/boolean/summary to FieldType for build compatibility 7a4e67c Fix make workflow preview interactive for testing cf3017f Fix remove Send to AIOne button from Route Optimisation page cd7ad40 Fix only show starred weeks in flattened round entries b26dc9c Fix flatten fortnightly rounds into per-week selectable entries 6c16e82 Fix SOD/EOD workflows not visible in mobile app 8a1cff3 Fix cast UPRN list to integers for address endpoint ANY() query d36eebe Fix correct column names in external API queries (st.name → st.service_name, st.frequency → st.frequency_type) ff4f9b8 Fix external API 500 error (wrong table name) + API key not showing in entity modal 2b032f3 Fix move route analysis utilization summary inline with header controls 2399221 Fix scope fullscreen z-index overrides to prevent modal dropdown clipping ca69563 Fix add scrollable legend to territory zone map for many zones 543b2ca Fix correct CSS variable names in resource utilization summary 89d5900 Fix solve type dropdown hidden behind modal footer 52e7142 Fix unplanned jobs count showing all project infeasibles instead of per-solve a54faee Fix scope AI report storage by user+org, not just org 140458f Fix keep AI report conversations across logout/login 1c46891 Fix scope AI report conversations to organisation (GDPR fix) 1ba6912 Fix Resolve TypeScript build errors 790b243 Fix Unplanned jobs count/stats bug c9fd74f Fix Multi-select for assigning resources to projects 8bd9344 Fix Resolve TypeScript build errors 449c978 Fix Resource dates relative to solve 19622ab Fix Solve selection in optimisation 866e491
Sunday, 1 March 2026 2026-03-01 Fix Optimisation sequence display - reverse order b2f6673
Friday, 27 February 2026 2026-02-27 Fix filter by day AND week in get_current_services_for_round c4297aa Fix region-aware round building for GAR 2026 scheduled services 3f6fe11
Thursday, 26 February 2026 2026-02-26 Feature Add SolveSmart mobile integration fa26cf3 Feature Move Support to main profile menu, clean up Legal screen 0334f11 Fix eliminate login flash by restoring auth state synchronously 43326c6 Feature revoke token at Xero on disconnect + add info tab 906cc75 Fix use brandmark instead of full logo c9b5940 Feature redesign layout to match SolveSmart/ModelSmart pattern 97de644 Feature multi-column mapping for import templates 18c2159 Fix increase spacing between API key box and warning text in PDF fc1fd02 Feature add logo and branding to external API docs PDF fa19ff3 Fix filter solve history by region d95193d Fix include region in starred solve unique index 2464bb2 Feature push missed collections to AIOne + external API key support 85818bc Feature region-aware round grouping in scheduled services a210e94 Fix update Leaflet fullscreen control API across all map components 919b0d4 Fix sort Setup menu items alphabetically 1937d0b Fix constrain scheduled-services page height for header 7269fd6 Fix adjust roadcluster/risk page height for 64px header cbec8e3 Feature move Sweeping Schedules to Execution group, remove Service Support from sidebar d902908 Fix adjust page heights for 64px header + move Control Tower to Execution group c8095a5 Feature modernise header & sidebar to match IS/SS/MS pattern 7270466 Feature add pavement segment support for active services 5cd1c60 Feature add satellite view toggle to all maps + pavement A/B columns cb03254 Fix Control Room v2 + dispatch fixes 75cf80a Fix render dropdowns above modals via global ConfigProvider 93dac6d Feature Add actual time columns to visit scheduling and jobs badf7be Fix evaluation overlay UX polish + Select All for MS tables cd76254 Fix use en-GB locale for all date formatting + improve AI report error handling abf26e6 Fix transit rule bugs after route adjustment + export formatting 7b45709 Fix synchronous busy state propagation for validate button e333c27
Wednesday, 25 February 2026 2026-02-25 Improvement Update RELEASE.md with iOS automated review submission workflow a77138d Feature Add iOS App Store review submission automation script 569375a Fix Fix version source: bump package.json to 1.1.0 (app.config.js reads from package.json) c729d2b UI Switch to local appVersionSource and set iOS buildNumber for v1.1.0 5b826cb Fix add Submit a Ticket link to fix.aione.uk portal e3d7efc Feature Bump version to 1.1.0 and add ascAppId for App Store submission da2b1e2 Fix update HERE SDK Swift code for v4.25.0 API compatibility af64379 Fix correct source file paths in Xcode project plugin bcdd9d2 Fix add HERE SDK native modules to Xcode project build sources 5e94e33 Fix Rural/Scatter rounds not visible + Auto missed not flowing through a0400df Improvement Update GAR sync from GAR2025 to GAR2026 6234404 Fix redirect Service Support to fix.aione.uk public portal 07759e5 Fix restore last page for multi-org users 7e4c6f6 Feature restore last visited page after login 22a1060 Feature group side menu items into logical sections c85b02d Fix ensure modals and messages render above fullscreen overlay b5c659f Fix auto-assign drivers by vehicle reg + prevent duplicate assignments fc7f8d7 Feature link workflows to job types with auto-assignment 8788ef7 Fix z-index for Select dropdown in fullscreen route analysis cd6bbc8 Fix add route map preview to dispatch panel 3296db7 Fix redirect support ticket links to fix.aione.uk f26e2f3 Fix disable Validate button while rules are being applied cfdb601 Fix route analysis - unplanned job leak, double-fire, linked jobs 62522e4 Fix add missing driverAssignments prop and dispatch service files 707dd1c Fix Gantt view enhancements - dispatch panel, evaluation overlay, driver assignments 6d9f01f Fix add missing jobCustomerMap prop to GanttRouteRow 09da11e Fix Gantt chart enhancements - tooltips, distance, pluralisation 86975d8 Fix Revert "fix(SS): Gantt chart enhancements - tooltips, distance, pluralisation" 9734539 Fix Gantt chart enhancements - tooltips, distance, pluralisation 07206aa
Tuesday, 24 February 2026 2026-02-24 Fix treat 'already submitted' as success instead of retryable failure 878a3ed Fix consistent export buttons and refresh alignment across all tables 93f0840 Fix resolve 7 ModelSmart tickets + fix DataTable export stale state 75285a9 Feature schema: add loadAttributes JSON field to Job model 34354d5 Feature add Job Management & CRM models 8c17561 Feature add CSV and Excel export to all DataTable instances 9953248 Feature add SolveSmart Control Room models 237e1e0 Fix export dropoff+unplanned, capacity columns, AI report persistence a3516b1
Monday, 23 February 2026 2026-02-23 Fix prevent no-account screen from revoking all user sessions 8817cc7 Fix Fix space bar not working in location search filters f462738 Fix Fix in-memory update of scheduled calendar after Full Optimise f3d83d6 Improvement Update scheduled_calendar in-memory after Full Optimise e14114c Update Propagate Full Optimise times to scheduled_jobs table e028b1d Fix Fix optimize_route crash: coerce speed/hours params to numeric types 5395aa5 Feature Carry generator speed settings through to Full Optimise and add per-job setup time ffca95d Improvement Auto-save optimized route order after IcePack optimisation b3187e1 Fix Fix arrival/departure times not showing after Full Optimise on ScheduleViewPage 13b2eb1 Fix Fix IcePack trailing slash - 301 redirect was converting POST to GET (405) a0242aa Fix use shared JWT secret for aione-auth call instead of separate API key 8475c72 Fix Fix IcePack IVR URL - use vehicle-router/solve and don't append model ID to URL 01996e6 Fix call aione-auth during access code registration so users can re-login 7cdacae Fix Fix IVR default URL to /ivr/solve matching SolveSmart 21b764a Update Separate IVR and ISR IcePack env vars completely 50270e2 Fix Fix IVR client model ID - don't fall back to ISR model 00f490e Fix Fix IcePack client using test URL instead of production a94285f Fix Fix optimize_route 500 error - method was renamed to optimize_work_items 19c0c02 Feature auto-scroll to job in table when map marker clicked 9039f54 Fix move unplanned sort dropdown to compact header icon efe0efd Fix preserve _isNewJob and _jobData through evaluation merges 90a7ee7 Fix map aione-auth product IDs in local JWT verification 529f9a1 Fix add exponential backoff to SSE reconnection e3b0cea Fix add exponential backoff to SSE reconnection 55a6150 Fix include stops data in evaluation request for new jobs 9c82c0c Fix prevent evaluation results being wiped by routes reset useEffect 13ad92d Fix add taskId to reconstructed job pickup/dropoff tasks d5960c9 Fix pass coordinates and time dimension for rule-excluded jobs e00200a Fix also preserve manually-added jobs from infeasible path 8f54800 Fix resolve TypeScript errors in modelSmartOptimisationController aa456e7 Fix preserve manually-added unplanned jobs during evaluation merge a8ee31f Feature add workflow drag-and-drop reordering + custom job types + territory decomposition 9bd029d Fix resolve 19 bug tickets across SS and MS modules d62da1d Fix use shared JWT secret for aione-auth call instead of separate API key f4f197e Fix call aione-auth during access code registration so users can re-login bd2b49d Fix allow overnight time windows for night shift jobs 7ae184a
Thursday, 19 February 2026 2026-02-19 Fix prevent "No refresh token" error on login with wrong credentials 6061be8 Fix resolve Apple review rejections - privacy manifest and login bug 1be658d Fix server health check fallback for offline sync - bypasses NetInfo when server is reachable, shows clear connectivity feedback to user 87ab377 Feature enable multi-tenant Azure AD SSO for external organisations 1eeb5b8 Fix record cancellation metadata and audit logs for visit status changes 626560a
Monday, 16 February 2026 2026-02-16 Fix include fileName and mimeType in offline attachment submissions b6a4c34 Fix replace hard 5-retry cap with exponential backoff, add Force Retry button afa4810 Fix handle offline-synced submissions with base fieldIds in repeat steps a5bf1cf
Friday, 13 February 2026 2026-02-13 Feature Add dynamic step repetition and summary step support dbe27a4 Feature Add email/password login, update notifications, base location management d9abeaa Fix FlowSmart ticket fixes - permissions, rejection emails, auth tokens, submission source 48fdc3f Fix step list overflow on small screens + export auth b545fe3 Fix FlowSmart ticket fixes - AND/OR conditions, permissions support, auto-fill options 61f51c0 Fix remove unused DatePicker import from ControlTowerPage 2bd3931 Fix resolve 6 mapsmart tickets - binding, date picker, search, segments, lookups, workload 9badad5 Fix auto-close previously closed missed tickets to prevent reappearing 1ff0451 Feature add quantity edit handler and wire up to DetailsPanel e09dca6 Fix suppress unused variable warnings in DetailsPanel quantity edit feature a38afb0 Feature show total distance in Gantt footer stats c65a151 Fix fix naming, unique prefixes, skip depot breaks, include names in API 5bf3546 Fix add break cards to DetailsPanel, fix rule name lookup, revert Gantt 2min marker 73c76c6 Fix rule names from DB, fix auto-scroll, improve name lookup a6fddc4 Fix show rule names and fix Gantt break positioning 21bb20c Fix batch bug fixes for SolveSmart and ModelSmart tickets 681edb6 Fix enrich solver request with DB useStandingState/useTransitState flags 4086001 Fix use prisma db push instead of migrate deploy de6774a Fix convert global stop indices to per-route for transit rule breaks df16dfd Fix use ruleId labels, fix break positioning and tooltip placement 08bb490 Feature visualise transit rule breaks in Gantt, table, and map 4f7691a Fix stop skills from overwriting vehicle transitRuleIds 4bc6d2b Fix include transit rules (lunch breaks, fatigue) in solver model 0054ef3 Feature add WhatsApp chatbot integration for SolveSmart & ModelSmart 3726c0e Fix show break type name in jobs table instead of generic BREAK bfc5805 Fix per-vehicle shift start offset for time transit rules 236fc72 Fix convert time-based transit rule triggers from relative to absolute b7a4496 Fix pass transit_rule_names through ScenarioMap to child components d9c53da
Thursday, 12 February 2026 2026-02-12 Fix lazy-load sklearn/osmnx to prevent import deadlock, filter empty crews, fix depot-scoped vehicle stats 5ddd813 Fix add missing scenario route registration 594212a Feature add bulk edit, depot picker and setup tab improvements c7b3e03 Feature enhance export templates with transform rules fa47a4b Feature add AI-powered report builder for MS and SS platforms 6c75efa Feature enhance fullscreen route analysis with map and Gantt improvements db8d98d Feature add system data fields, summary step and PDF generation ffc16d7
Wednesday, 11 February 2026 2026-02-11 Fix wrap React.Key in String() to fix TS2731 build errors 6edd752 Feature implement grid-based snake fill for walking crew assignment aea82bc Fix render bound segments as separate polylines on all maps dca3f9a Fix Fix walking crew solver creating 10-20x too many crews 6874b91
Tuesday, 10 February 2026 2026-02-10 Fix Fix single segment update to include sweeping_method and osm_highway_type b184544 Fix Fix activation creating 0 jobs due to day_of_week mismatch aca7c83
Monday, 9 February 2026 2026-02-09 Fix schedule template activation and is_active field issues 9da103a Fix add is_active to get_schedule_template_details response 2d1b018 Fix use correct is_active field instead of has_scheduled_jobs 765d546 Fix restore toggle activate/deactivate functionality 22a0bdf Fix properly activate schedule templates with job creation c093761 Fix move getExportUrl outside WorkflowApiClient adapter 767111a Fix Fix workflow type compatibility for external package c9c4b73 Fix Fix workflow type compatibility for Docker build 456e440 Fix Fix depot logic, API endpoints, and TypeScript errors ab3b934 Fix Workflow enhancement - variable to determine following steps or fields 1bcfcd2 Feature Add CSV options for headers and BOM encoding c9c526d Fix Reporting from completed workflows 7005f80 Fix Enabling workflow summaries 35c599a Fix System generated fields - workflow f839b60 Fix Resource rates from app 42f760f
Sunday, 8 February 2026 2026-02-08 Feature Add Git LFS tracking for AAR files faedbb9 Fix Fix orientation change + speed display during navigation simulation fffc514 Feature Add Data & Storage screen with GPS tracking stats 9b6d13d Update Clean up unused assets, use aione-logo for splash cbf4505 Fix Add GPS tracking indicator + fix app icon 668a6de Fix Fix location tracking - segment_id no longer required 04ecb89
Saturday, 7 February 2026 2026-02-07 Fix Add screen wake lock and fix orientation handling 8d57011 Fix Minor fixes and UI improvements 4fa8cfe Improvement Enhance schedule templates management 23c0108 Improvement Refactor schedule viewer 5c7f8a6 Feature Add active services import/export 9badd1f Feature Add sweeping method support d7ca755 Feature Add walking crew support 115f43e Feature Add depot assignment support cb3bfed Feature Add performance indexes for schedule viewer 1398ed9 Fix Fix duplicate group member rows in template save - DISTINCT ON f2cdf59 Fix Duplication of visibility conditions in fields and steps 89b0876 Fix Import capabilities for workflows bf618eb Fix Skipping steps in workflow c94e59e Fix Job icon on map enhancement 12b24bc Fix Transform rule enhancement a121933 Fix R and S unplanned jobs visibility 5432c0c Fix Removing jobs from a route 1d26285 Fix Save function in "review solve fullscreen" is not working 4b2fe0d Fix Map icon enhancement ee5265e
Friday, 6 February 2026 2026-02-06 Feature Add HERE SDK .aar to android/app/libs c6a0046 Update Wire up disclosure modal to Start Route flow cccdeb6 Fix Fix location permission flow to show disclosure modal first 9512258 Feature Add pedestrian routing for walking crew mode in HERE Maps 7481656 Feature Add diagnostic logging for duplicate segment expansion 4ec822b Update Deduplicate segment+slot during vehicle assignment clustering 12b7637 Update Deduplicate segment+day+slot during multi-depot merge 4768b32 UI Deduplicate segment+slot combinations when building schedule ec7360b Update Use execute_values for bulk insert (10-100x faster) 97c7005 Fix Fix N+1 query performance in Celery template save task 3d73341 Fix Fix template save performance and walking crew support 3cd1fd5 Feature Add backfill script for missing service_routes since Jan 29 65f16a0 Fix Fix service_routes not populated after collection ID format change d82fed9 Feature Add resource_type (vehicle/walking_crew) to templates, jobs, and mobile API 131a48a Fix Gantt view 51fa618 Fix Enforcement rule for jobs 7527b27 Fix Export rule enhancement be35591 Fix Workflow not submitting c1b932a Fix Error message remains after errors have been resolved e088d3a Fix Planning date identification 8d870e1 Fix Bulk edit capabilities b2b31c7 Fix Manually moving a job within a trip bdfac10 Fix Workflow rules enhancement - all modules bcb80bb
Thursday, 5 February 2026 2026-02-05 Fix 'View' Action button not sized correctly acb1316 Feature Add dynamic terminology for walking crews vs vehicles 92e6186 Update Auto-detect walking crew mode from service type configuration 720947f Feature Add walking crew parameters to Celery task signature 3d68f40 Improvement Update frontend to handle per-depot vehicle numbering b716dbd Update Change vehicle numbering to be per-depot instead of global 5236c73 Fix Fix optimize route to denormalize segments before sending to API 5997283 Fix Fix optimize route API to handle GeoJSON geometry coordinates 3143259 UI Redesign Resources tab from card grid to table view 0095c0d Improvement Update road segment processing thresholds dc02869 Feature Add road segment processing sub-stepper to Status page e8af8ac Feature Add compact mode toggle to Risk, Route Optimisation, and Road Cluster pages 8897c07 Feature Add missing ActiveServices modal components 96ae2d2 Feature Add missing LookupStreetNamesModal component 111d178 Feature Add multi-row selection for bulk delete on Schedule Jobs page b16933d Fix Fix depot query to only use START hubs for auto-proximity allocation f77c427 Update Truncate Schedule Generation button text with ellipsis 65016a7 Update Apply height constraint to all action-stats container variants 0bb6e1a Feature Add compact mode toggle to UPRNPage, ServicesPageV2, VariableServicesPage, FinalServicesPage e35ad02 UI Move scroll/compact mode styles to common statspanel.css dbdbd33 Fix Fix button styling: Bulk Edit and Individual Mode use green-button-uprn c5bd999 Update Prevent button shrinking in scrollable Actions area dfa670b Update Constrain stats/actions container height to enable scroll 0fb6eaa Update Force scrollbar visibility on Actions section 1037202 Fix Only Actions section scrolls, not Stats/Selection 82f2763 Feature Add scrollable action-stats sidebar with visible scrollbar 642f6c6 Feature Add compact mode toggle for Actions buttons 52a61dc Feature Add map overlay spinner for Apply Service operation 6545680 Fix Fix DataTable height recalculation when sibling elements appear/disappear ed28442 Fix Fix road segments table height and scrollbar visibility 60540a8 Improvement Adjust table height offset and improve scrollbar visibility 07405b4 Fix Fix road segments table: rows cut off and invisible scrollbar 900b55f
Wednesday, 4 February 2026 2026-02-04 Fix 'View' Action button not sized correctly 2fac225 Fix Fix type mismatch in set_previous_day_cluster 9ecfb75 Fix Fix N+1 slot queries in get_all_active_services 7f98365 Fix Fix selection to ADD instead of replace, optimize slot queries 4ab7b70 Fix Don't copy conditions when duplicating fields ddb4186 Fix Don't copy branching settings when duplicating steps 28368b3 Feature Extend system_data with job/project fields and add protection 0345eb4
Tuesday, 3 February 2026 2026-02-03 Feature Add FlowSmart product support with workflows UI 39fcf85 Fix Reorder routes so /groups is matched before /:id b4f772b Fix debug: Add logging to trace organisation ID in contacts routes 9b4ee2a Fix Use flowsmart product code in contacts routes d0f3536 Feature Add Group Share feature for batch form distribution 9efb0fa Fix Compute stepCount, fieldCount, submissionCount for templates 909cd76 Improvement Optimize ActiveSweepingServicesPage performance 30c5cc8 Update Default to freeform selection mode on RoadSegmentsPage 12e12e8 Improvement Optimize RoadSegmentsPage performance with O(1) selection lookups e6762f1 Feature Add Flask-Compress to docker requirements 18468f0 Fix Optimize large dataset performance with gzip compression and selection fixes 2e22ba0 Removed Remove unused message imports 691b98d Improvement Optimize freeform selection: inline point-in-polygon with Float64Array ad4808d Improvement Optimize selection: single callback instead of batched callbacks 59cae0b Update Replace selection limit with batched processing e282c27 Fix Fix 500 error on schedule export - use task_id instead of sending large payloads e3b5beb Feature Add selection limit to prevent browser crashes on large selections 8c33c1f Fix Fix rectangle and freeform selection tools not working f70a766 Feature Add multi-term search for road segments 808eed6 Update Simplify ticket close - allow any non-closed ticket dff81f0 Fix Fix FILTERED ticket matching - use LIKE for suffixed classifications 84216f4 Update Also allow closing ERROR tickets in missed collections eb3e3bb Update Allow closing both VALID and FILTERED tickets ce6bf8f Fix Fix scheduler not passing round_plan_names and round_refs 204aace Feature Humanise solver terminology for planner-friendly UI 582c512 Fix Settings page improvements and route fixes 113cbd0 Feature Add configurable currency settings for ModelSmart 3a58e14 Feature Add multi-select for vehicle class and attribute constraints aeb128a Fix Use totalOriginalJobs for accurate solve statistics d93b3b9 Feature Add editable time windows and preserve leading zeros 41562f6 Feature Add column settings, collapsible pickups, and departure markers 88572d9 Fix Show additional time window columns in validate screen 5309e95 Fix Fix multiple time windows for solver and validate display f290cb6 Feature Add customerId field and multiple time windows support 7c6ff7d
Monday, 2 February 2026 2026-02-02 Feature Add CSV/Excel export for workflow submissions f268e4d Feature Add export button to SubmissionsDrawer b4c984f Feature Add submission export support for MapSmart 199691d Improvement Clean up scenario map and grouping logic c0eabb2 Feature Enhance IVR7 model building from import 4ec0ad6 Feature Update FullScreen route analysis UI styles and components 62138fc Feature Add customizable table props across MS and SS components 4360514 Fix Fix rule-based unplanned job handling and add dimensions to context menu d8395b1 Feature Add sticky solve type preference cdb3e93 Feature Add loading state to OK button on submit c2f7bb8 Fix Require template selection before import 8f00268 Feature Add vertical action bar and position drag auto-evaluate a8b7b79 Feature Add missing table customization files 1ad7311 Fix Adjust vehicle swap tooltip position to prevent blocking button ddf8222 Fix Fix VOR toggle and data loss in vehicle editing e363766
Sunday, 1 February 2026 2026-02-01 Update Major map performance optimizations for high-volume solves 37862c5
Friday, 30 January 2026 2026-01-30 UI Change org selection to require product tap 73cbb59 Feature Add FlowSmart support to org selection 344cf7a UI Change org selection to require product tap b741ce4 Feature Add FlowSmart support to org selection 6f61c42 Feature Add flowsmart product and submission entity type to attachment uploads 411f3b6 Fix Fix templates route to use product-specific org ID 802d629 Fix Fix seed script to use database service singleton 02d34ec Fix Fix seed script import path 6c3944a Feature Add FlowSmart seed script and types 36560c5 Fix Fix missed bins lookup to use original service name 191169d Fix Fix day_week_clusterid validation for new services merge d6e1ace Feature Add day_week_clusterid support for multi-week cycles 4f37761 Feature Add support for new services added after solve was starred 1da466c Fix Fix timezone comparison using naive UTC datetimes 54a7cd4 Fix Duplicate steps in workflow tab b6a1ebf
Thursday, 29 January 2026 2026-01-29 Feature Add unified pre-upload endpoint for all products 317f091 Fix Fix missed collections scheduler timezone and add schedule_time column e2b2f1e Improvement Optimize road segments rendering with single GeoJSON layer e9fb875 Fix Fix missed collection IDs to use {UPRN}_{SERVICE}_MISS format c6d0989 Fix Fix missed collections blending and standalone round creation 0eaf595 Fix Fix solver to use same service code format as bins upload bf9198f Fix Fix duplicate key constraint in AIONE scheduler by making UPRN unique per service b1bdf13 Fix Improve RoadSegments performance and fix map cleanup errors 78181bf Feature Implement per-vehicle IVR optimization for schedule generation 55c4199 Feature Add 'First' position option to reassign tool 33a1045 Fix Fix reassign tool to directly add job without drag visual 50b508f Fix Fix crash when reassigning unplanned job to vehicle d848aea Fix Remove debug logging for task filter 0ceeede Fix Add debug logging for task filter investigation 24bb6c3 Feature Add task filter to sheet configuration b6787fb Fix debug(export): Add logging to list templates to verify transformRulesConfig cf55c4d Fix Add transformRulesConfig to controller create/update a7d12ed Fix Add transformRulesConfig to ExportTemplate interface 47602c0 Fix debug(export): Add planning date logging to controller d0f0e82 Fix debug(export): Add console logging to transform rules for debugging 62aa537 Fix Fix custom columns not receiving transform rule values 8f6e0a3 Fix Improve rule editor modal styling to match Import Template fa85140 Feature Improve UI consistency for transform rules and routing conditions fd8e50b Feature Add "Combine Date & Time" transform rule 7ffc48d Fix Show date format in Planning Date field names 6d7e3ec Feature Add Vehicle Skills field to export options e29639e Fix Show all fields for concatenate/lookup source selection 504ed3b Fix Add transform rules, fix vehicle class lookup f23f67c Feature Add OSRM-based route evaluation for fast UI updates 79b4121
Wednesday, 28 January 2026 2026-01-28 Fix Fix group detail filtering to match slot names, not hours 737e93d Fix Fix time slot sorting - sort by actual start time, not alphabetically bc2a631 Improvement Update mobile app to use slot times from API c7756e9 Feature Connect workflow photo uploads to MapSmart backend 89cef54 Fix Fix file.exists() error in offline queue sync aba7d29 Update Handle workflow approval status in submission response 2126782 Feature Support productCode in attachments endpoints 54c2db2 Fix Fix bind segments and group deletion issues e01e435 Fix Fix table name: service_type_collection_slots not street_sweeping_collection_slots 506a6b0 Fix Fix mobile API to get slot info from collection_slots table 6ba3dc2 Feature Add scheduled_arrival_time to mobile API for per-segment times b041596 Fix Upgrade protobuf to v6 for IcePack generated code 1f92149 Fix Add protobuf to Docker requirements for IcePack f4264fc Fix Namespace S3 paths by product to avoid collisions b9f35ff Feature Add attachment upload endpoint for mobile workflow photos 56d6541 Fix Fix save template progress count after group expansion 888685d Fix Fix workflow approval flow and group workflow editing 2e7b5a5 Feature Add workflow submission view modal for MapSmart 4eab4ea Fix Fix O(N²) jobSequence calculation in enhancedJobStops 5635328 Feature Add React.memo to TripPolyline and DraggableJobMarker 495e16d Test Reduce redundant convertRoutesToTripBased calls afa5867 Fix Fix auto-fit and add smart job positioning bc72348 Feature Add requestId column to avoid fetching heavy responseJson 0ecd109
Tuesday, 27 January 2026 2026-01-27 Feature Add workflow submission review modal with approve/reject dc7559c Update Make mileage stat smaller in landscape to prevent overlap a7c8abf Feature Add workflow submission viewing and approval status for MapSmart e7cc9d2 Improvement Improve landscape side panel layout for MapSmart route screen 016a3b7 Feature Add MapSmart group detail screen following ModelSmart pattern 6ce699c Feature Add Clear App Cache button in settings 087772a Fix Fix MapSmart workflow screens and improve offline banner dea4381 Fix Prevent infinite loop in OfflineBanner Zustand selector 10027be Fix Fix SSO registration flow and multi-org support 4119f34 Feature Add MapSmart offline workflow support f516eec Feature Support productCode in approve/reject endpoints 3501429 Feature Support productCode query param in GET submission endpoint f8cbcf3 Fix Fix submit endpoint to support product-specific org ID 03aedd1 Feature Add create-and-submit endpoint for product integrations 1f868be Fix Use productCode to get product-specific organisationId for submissions 374c0d2 Feature Add approve/reject endpoints for workflow submissions 5a84366 Feature Add workflow submission details endpoint d63480c Improvement Update Control Tower empty state with LandingInstructions ed275ae Fix Fix group workflow submission to aione-workflows bfc9eec Fix Fix SweepingSchedulesPage stats display and NaN issue 96d049f Fix Handle non-numeric group IDs for workflow submissions f9ba6a2 Removed Groups view: remove pagination, collapse dates by default 73f2ff2 Fix Fix Groups view scroll - add fixed height container 4699d68 Fix Support AIOne Auth tokens in schedule workflow endpoints 94c5a26 Fix Fix Jobs tab: default to Segments view, Groups view shows by day 313b2e9 Fix Remove non-existent working_days_per_week column from query 679ec89 Fix Fix NULL handling in scheduled calendar template info lookup 5c1b533 Feature Add template day sequence to Applied Schedule calendar 0ab3864 Feature Add skills selector to Create Access Code modal 4b6feb3 Fix Remove non-existent columns from user insert in access code registration 45a0b41 Fix delay submission history fetch to allow backend to create record 0765f17 Fix use verify_bin_exists instead of check_bin_exists 5cb62e4 Update Restore DUPLICATE_CHECK_FAILED handling for bins endpoint 25786fc Fix Fix duplicate detection to use bins endpoint instead of jobs c6db8a7 Fix Add per-round refs, cancel submissions, fix duplicate check flow, increase task limits 1a96604 Improvement Refactor scheduled services for batched submission with per-round tracking 4b95ecf Fix Add debug logging to getMyProfile endpoint cf9d5f0 Fix Change User-Resource relation to one-to-many 75bbfef Fix Allow users to have resources in multiple organisations ee00ace
Monday, 26 January 2026 2026-01-26 Fix Remove verbose debug console.log statements from map components 2a23d84 Fix Fix HereMapView SDK check causing navigation disruption on orientation change 07d6cd0 Fix Fix workflow template endpoint path 782e735 Fix Fix navigation camera on orientation change - re-enable 3D follow mode 7a1d580 Fix Fix map zoom on orientation change - center on user position bf20811 Feature Add segment grouping and group workflow support for MapSmart 775e550 Improvement Update MapSmartRouteScreen and API types ede5edb Feature Add cancel job functionality and hide workflow routes from tab bar e9a8efe Fix Geofence threshold, complete button visibility, landscape status e6ec94a Fix Allow orientation changes in AndroidManifest 1969f07 Fix Navigation bar overlap in landscape, scroll padding 024eb4e Fix Navigation issues - duplicate arrow, orientation, geofence c24b2ab Fix Correct location tracking endpoint path (/location-batch) 1195b66 Feature Support productCode query param for multi-product JWT tokens ff58053 Feature Support MapSmart legacy JWT token format de62f2b Feature Add logo endpoints and combined public submit endpoint a8d37e1 Fix Fix dropdown overflow in FieldEditor modal 4a601a5 Feature Add duplicate step and clone field functionality 481916d Fix Fix workflow creation to include default schema c38149e Fix add account picker prompt to Microsoft SSO c37e526 Fix Fix all remaining antd deprecation warnings 8668f7d Fix Fix workflow template proxy to pass productCode to aione-workflows c8dcaf6 Feature Add workflow template proxy endpoint for field app 85dfbfd Fix Fix scheduled services to use per-entity schedule_time c11091b Feature Add group workflow submission endpoint for MapSmart 11180fc Fix Schedule management improvements and bug fixes bc51f64 Fix Fix antd deprecation warnings 8c5ded5 Fix Get JWT token from cookie for workflow service requests 98ceb64 Fix prevent external workflow service auth errors from triggering frontend logout 81b5a73 Feature Add Workflows tab to schedule view and update action column styling 72dfb08 Improvement Update types, configs, and misc frontend improvements 4355ca8 Improvement Update services pages with bulk edit and collection slots 3b133b8 Improvement Enhance schedule wizard and view with timeline improvements c38f29e Feature Add map selection tools across multiple pages 804d016 Feature Add collection slots, workflow tracking, and database migrations b3be6d2 Feature Add service types and street sweeping API enhancements a406f6f Improvement Enhance clustering controller with auto-clustering and merge operations 296793e Feature Add Icepack route optimization and schedule generator improvements bf577c2 Fix Fix schedule stop counts and improve scheduled services table 4331b23 Feature Add public workflow page and logo management proxy routes d320b56 Feature Add mobile cancel endpoint, Control Tower bulk complete, and duplicate prevention 6568c7b Fix Fix empty state button to navigate to builder instead of opening modal 00e332f Fix Fix cross-entity job contamination in route solve builder 7da86be Removed revert: Remove 0.001 workaround for pickupDuration 3e4dd22 Fix Use tiny non-zero value when pickupDuration is 0 63272bc Fix Fix undefined jobIndex in debug logging a0dcec2 Fix debug(import): add IVR7 builder pickup duration logging 8b89218 Fix allow pickup duration to be set to 0 via arrows 48512b9 Fix debug(import): add logging for pickupDuration in staging 43dd9fe Fix show 0:00 for pickup duration of 0 minutes 9d06060 Feature add pickup duration to Default Time Windows UI 6d06095 Fix allow pickup duration of 0 minutes 6343b1f Feature add separate pickup duration (loading time) support bf76be6 Fix support camelCase pickup/dropoff fields and HH:MM format in IVR7 builder e147598 Fix support camelCase pickup window fields and HH:MM format f7a9e7b
Sunday, 25 January 2026 2026-01-25 Feature Add GPS location tracking with travel/job distinction 3587158 Fix SSO flow, product mode restoration, and route screen improvements b35b2aa Feature Add Control Tower job reassignment and completion features ad44b89 Fix Disable demo mode and strip demo_ prefix from existing solves 02577fd
Saturday, 24 January 2026 2026-01-24 Fix use new App Icon for app icon fa24370 Fix add google-services.json to android/app/ 8bf5645 Fix add Google Services plugin for Firebase/FCM da40ce0 Fix handle Firebase not initialized gracefully b011a90 Feature wire up traffic & truck settings to route calculation 712bcdc Fix add truck specs editor & fix type errors 782d870 Feature add truck, camera & environmental zone warnings 150e122 Fix improve landscape mode and segment colors d3f366d Fix Fix all TypeScript build errors 340fa86 Fix Fix slow job delete and add bulk delete endpoint dfc15e7 Update Store full schedule result in database instead of Redis only 8371133 Fix Fix service filter on Active Sweeping Services page ced4331 Fix Fix table name in get_schedule_task_result fallback query f917a4d Fix Fix Resources tab showing Unassigned for active schedules 70b0c0a Fix make legend visible below table deb2613
Friday, 23 January 2026 2026-01-23 Fix Copy prisma.config.ts in Dockerfile 65b3d8f Feature Add Prisma 7 config file for migrations 36ccc93 Fix Add DATABASE_URL to Prisma datasource 5eb893a Fix Fix activation: use total_working_days for period length 167c443 Fix Fix save_template: use actual working days instead of hardcoded Mon-Fri 9d42f16 Fix Fix scheduled jobs query with correct column names from schema 4c78738 Fix Fix scheduled jobs query: add fallback and logging cbb0b85 Update Show actual dates in Calendar for applied schedules c0a65ab Fix Fix old schedule runs: fallback to saved template data 2d1ca7d Fix Fix calendar period: calculate weeks from actual data 3105a99 Fix Fix schedule view: correct working days + show operator names 77ca523 Fix Fix grey map in ScheduleViewPage vehicle route popover a3d2dee Fix Fix FK constraint on save_template + workflow UI improvements 46e8f82 Fix Correct SQL query for looking up group segment members 867f889 Fix Look up group segments from database when not provided 880f3b7 Fix Include group segments when saving schedule templates 4513629 Feature Add validation and logging for schedule template job saving 5fe3291 Fix Allow viewing inactive schedule templates d17e278 Feature Add road segment split functionality c76b372 Feature add legend to explain high-penalty row highlighting 1cc6c0f Fix check capacity_weight/capacity_units field names ca1280f Fix add comprehensive capacity field lookups for excluded jobs 2b590c9 Fix cast to any for debug logging to fix TypeScript error c35bbaf Fix debug: add frontend logging to trace weight/units data in UnplannedTab fa57a41 Fix debug: add logging for excluded job fields to trace weight/units issue ac005bb Fix look up capacity data from baseModelJson for old scenarios 086ec78 Fix show real customer names for solver-infeasible jobs 169ab6e Fix show excluded jobs at dropoff locations with correct data 1f9a580
Thursday, 22 January 2026 2026-01-22 UI Cache pyrosm build in separate Docker layer 4c48e65 Update Increase global Celery task time limits 9d9417b Update Increase submission task time limits d8f5e24 Update Increase Celery worker concurrency to 4 813f3e1 Update Increase time limits for missed collections tasks 2329f9d Feature add IcePack compatibility notes and improve comments d038b2c Fix set default penalty to 10000 to match SolveSmart 739f195 Fix revert solveType fix to diagnose 502 error 372c619 Fix save full model JSON to baseModelJson for debugging d7feab7 Fix explicitly write solveType and save request data for debugging a0f6518 Fix explicitly write solveType=0 in protobuf to fix 502 errors a6d3e02 Fix add pickupDurationMins to ParsedMSJob type properly 63937df Fix cast pickupDurationMins to fix TypeScript error 6a01d6e Fix add pickup duration support and fix orphaned dimension 9cd65a2 Fix reorder bulk routes before parameterized routes 5772453 Fix sync access flags to userOrganisation table 850577b
Wednesday, 21 January 2026 2026-01-21 Feature Add email report sending to missed collections pipeline 21c7187 Fix Fix import paths for Celery worker context 7d37b47 Feature Add scheduled pipeline runs and UI improvements for Missed Collections 982cd68
Tuesday, 20 January 2026 2026-01-20 Feature show detailed error messages on visit detail screens eaedd72 Feature show detailed error messages for workflow submissions a047ae9 Fix prevent submission while photo capture is in progress ee0bf5b Fix improve sync reliability and cache invalidation c7f2d56 Fix prevent photo duplicates and sync offline cache on status change c28a5d4 Fix Cast Prisma JSON type through unknown for pdfService 2add5aa Feature Add PDF generation and email functionality 8864023 Feature Add template attachments feature be7bc11 Fix Fix UPRN type conversion - cast to int for BIGINT comparison 9177b8e Feature Implement proper planned miss round logic from original script 93b5a51 Feature Add Quick Add feature to Filtered tab in Missed Collections dd5ed05 Update Change service mismatch from ERROR to FILTERED 9eb63fd Improvement Improve error tracking in missed collections enrichment f560294 Feature Add planned miss round computation 8af13e8 Feature Improve missed collections UI and add closure breakdown de052d1 Fix Fix missed collections ticket counting and classification 84d7516 Update Increase DataTable height buffer to prevent last row cutoff 87c42cd Fix Add migration to fix column sizes in missed_tickets e4b9e53 Fix Fix column names and indexes in missed collections query d1e5ff8 Fix Fix missed collections pipeline errors 46724a9 Fix Fix npm install: single command with all deps as devDeps 494fcfb Update Commit all pending workflow-components and ERP changes c06534c Removed Remove package-lock.json before npm install in Docker 643dbe8 UI Install peer deps before building workflow-components 8d024f6 Removed Remove dist from git, build workflow-components in Docker 6b3ebf3 Update Restore workflow-components dist files 69c7d38 Fix Fix delete button styling to match app design f2eaabb Fix Fix delete button visibility for paused schedules 854e7c9 Feature Add Missed Collections System - full digitization a944241 Fix Fix import path in MissedCollectionsModal 56ef0d2 Fix Scheduled services: Fix timeout + missed collections UI 4ade38f Feature Add value transformation rules for ERP column mapping a0084dc Update Limit console flooding: cap no-schedule warnings to 10 625d830 Fix Fix ERP frequency conversion: days to week intervals 2accdec Update Normalize full day names to 3-letter abbreviations 49aab8a Feature ERP import: Auto-create missing UPRNs from file data e60afdb Fix Fix auto-normalize overriding custom column mappings 6b17ec1 Fix Fix misleading import success messages and ERP preview serialization 02f60ed Fix Fix erp_mapping_enabled not returned in login/switch_entity responses 5d65952 Feature add real-time formula validation in FormulaInput c60db59 Fix move validateFormulaSyntax before component 5e6bbf7 Fix add formula syntax validation for rules 1b6b893 Improvement simplify excluded job location handling a2f6cb2 Feature use 2-column grid layout for photos 1855489 Fix improve excluded job location lookup and eye icon zoom edb04f2 Fix add user access logging for debugging login issues 3ec45b7 Fix show all photos in PDF and prevent duplicate attachments 0d35687
Monday, 19 January 2026 2026-01-19 Fix read EAS projectId from app config 41b6732 Fix debug: add logging for photo state to diagnose issue 1bbcd67 Fix prevent photo loss and enable back navigation on resume 10e9353 Fix reduce excessive API requests causing 429 rate limit errors 80d4bc0 Feature Add erp_mapping_enabled to EntitySchema validation fadecdd Feature Add configurable ERP mapping feature flag per entity bd12c79 Fix Fix Specific Weeks validation for fortnightly/monthly services 06e32eb Update Log detailed info for all UPRNs with no schedules 736dbf2 Fix Fix UPRN precision loss from Excel scientific notation 86d177d Feature Add detailed logging for UPRNs with no schedules 2d3347e Fix Fix variable services import: weekly frequency should visit all weeks 6002b46 Fix Fix cleanup_stale_solves removing non-existent error_message column 103b5ad Fix Fix variable services search filter and improve import diagnostics 3b655e1 Fix Fix Docker file sharing for variable services import and stale solve cleanup db883bb Fix Fix RouteOptPage table scroll by using flex layout instead of percentage height a7f0afc Fix Fix table scroll in Route Optimisation page 697a31c Feature Add explicit height to data-table-container for scroll support c603214 Fix Fix table scroll in Route Optimisation page d177e2b Fix Fix scheduled routes not finding starred solves for multi-week services 5ead22f Fix use type assertion for project.requiresVisitAcceptance e860d7c Fix add acceptanceStatus to visitCreates type 777ac68 Fix initialize acceptanceStatus when creating visits d00e713 Fix Create attachment records when updating existing draft/rejected submissions 45a6ccf Fix convert boolean values to Yes/No in PDF reports fd1ca2a Fix include full job data for rule-excluded jobs in unplanned display 65dd622 Fix enable table scrolling and add purple markers for rule-excluded jobs e08fcd1 Fix map excluded jobs to unplanned list with rule name 76aa06c Fix filter out template rule excluded jobs from solver 2d0f4ec Feature add penalty column to Planning page jobs validation table 39690b8 Fix update penalty display in JobConfigurator to show actual values b382f5d Fix cast job to any for penalty access in MS PBF builder d7c18bb Fix use job.penalty directly instead of hardcoded priority-to-penalty lookup 3d774c4
Sunday, 18 January 2026 2026-01-18 Fix apply route cleanup fix to MapSmart route screen 41bcff0 Fix clear old route line when switching destinations 6248837 Fix refresh user location on screen focus and watch continuously 09390ba Feature show user location with distance, use internal navigation f585c7d Fix improve date navigation touch targets in landscape mode 5dbfa24 Fix filter cancelled visits, always show navigate, status marker colors ea673d8 Fix LocationIndicator usage and various UI improvements 9fab83d Feature make Job column clickable to open details pane 66d46ef Fix fix approvals data and add clickable photos 0d105f9 Fix enhance approvals tab and fix status sorting 0504e37 Fix debug: add logging for status sorting and approvals filtering bc372c7 Fix hide approve/reject buttons for pending revision status and fix status sorting 1728e9a
Saturday, 17 January 2026 2026-01-17 Feature auto-scroll to today and add date badges 5af6ae2 Fix initialize HERE SDK and fit map on preset change 751b0a5 Fix use visitDate instead of scheduledDate for route navigation ada9d28 Feature show Jobs by Week legend when viewing month level ddb4221 Fix Schedule Map view improvements 24e2dc3 Fix ensure scheduledDate is set on visits in range query cb8ceab Feature add Map view to Schedule for multi-day planning b016364 Fix pass visit date and improve highlight/navigate handling abda876 Feature integrate View on Map and Get Directions with HERE Maps 703a1f3 Fix Back to Route navigates to route tab instead of history back 8b24bf1 Feature add marker tap popup on HERE Maps route screen 4458e8a Feature add attachment display to visit detail screen e99a051 Feature add visit acceptance workflow and multi-view schedule 08cb6df Fix Use presignedUrl from backend for revision photos be02492 Feature Add Clear AIOne Jobs feature and improve submission UX 8fe5e58 Fix remove unused imports in WorkflowsTab 86337d6 Fix only show answered fields and improve rating display 9907ad7 Feature add project-scoped approvals tab to project view 9a1773c Fix resolve TypeScript errors in attachment controllers 9fa23c9 Fix remove url from datasource for Prisma 7 compatibility 409738d Fix use Switch instead of Checkbox for boolean fields in public workflow b69ccd5 Feature include attachments in public workflow share link response 42e64b8 Fix resolve TypeScript errors in WorkflowBuilderPage 912e7a4 Feature add workflow template and project attachments 0db9c11 Fix calculate plannedMargin as percentage, not difference 6228cde Feature add requiresVisitAcceptance to project settings tab b8a6b51 Feature add visit acceptance workflow and admin visibility 0ecc907 Feature Add presigned URLs for photos in rejected workflow answers 0802831
Friday, 16 January 2026 2026-01-16 Fix Pre-populate photos and locations for workflow revision 8b096f9 Fix Only show spinner on manual pull-to-refresh 3314352 Fix Refresh schedule when returning from visit detail 0078682 Feature Respect canCancelVisits permission in mobile app bdf065f Fix Add awaiting_approval status and navigation bar fix 28eec49 Feature Implement offline-first architecture a529067 Feature Add pull-to-refresh and auto-refetch on focus 6eb7436 Fix Move Cancel Visit button to scrollable area and remove debug logging 1df07cc Fix Save draft immediately on cancel to preserve step progress aef6b77 Fix debug: Add logging to VisitCard for rejection status 038d611 Fix Force WorkflowForm remount to load previous answers on revision 97c81e2 Fix Hide Complete Visit button when completion workflow is locked 13ee47c Feature Add approval workflow support for flow enforcement 1afe54a Feature Add workflow flow enforcement and draft save support eb3bac8 Feature Add Firebase config for push notifications 6998226 Feature Workflow rejection visibility and push notifications 66ddd65 Fix Fix Icepack auth header: Apitoken not Bearer 083e6a8 Fix Fix Icepack API URL - use ICEPACK_SOLVE_URL from env d50f95f Fix Fix AIOne submission: timing, vehicle ID, and error handling 9ca2217 Feature Enrich bins payload with address data from uprns table 8a55fa3 Fix Fix service_type_name not being populated in scheduled submissions d09f96e Fix debug: Log bins upload response content 8a6c292 Fix debug: Log first 3 bins payload for AIOne debugging 150e649 Fix Map service names to AIOne codes for bins upload a76afed Fix Remove double demo_ prefix in AIOne submission df65589 Fix Solve count for weekly services + demo_ prefix for AIOne testing cf9bd97 Fix Enable Celery Beat scheduler for scheduled services 638cfce Fix Include global instructions in visit detail endpoint 4c96b6a Feature Add canCancelVisits permission for field workers 4f3cc62 Feature Add push notifications for visit lifecycle events a0a6bad Fix Only complete visit when both workflows are done 7c20fbe Fix Prioritize submitted status over rejected in workflow lookup c8aac7f Fix Prioritize rejected submissions when updating on resubmit 6c8e394 Fix Prioritize rejected submissions over drafts when finding workflow status 19d6ea3 Fix Update existing draft submission on submit instead of creating duplicate 3f6cf3c Feature Add approval workflow flags to visit detail API 17284c8 Feature Add workflow draft save endpoint and flow enforcement support c782783 Feature Workflow rejection visibility and push notifications cf9ca2e Fix Import Prisma from generated client path 872b1a6 Fix TypeScript errors in mobile controller 0e08451
Thursday, 15 January 2026 2026-01-15 Fix Multiple bug fixes from app feedback 1f0825c Fix Hide approve/reject buttons for non-submitted workflows a188908 Fix Fix Dockerfile: add OpenSSL for Prisma, update port to 4050 062466e Fix Fix docker-compose: both backend and frontend in Docker 73fcb5b Improvement Update docker-compose: use shared PostgreSQL, PM2 for backend e2abc99 Feature Add AIOne auth env vars to docker-compose 30b4b38 Update Initial release v1.0.0 - InvoiceSmart 2282be9 Feature Add ScheduledServicesPage CSS 52fef7a Feature Add automated route submission to AIOne 421a39d Fix Multiple bug fixes from app feedback 7f8664b
Wednesday, 14 January 2026 2026-01-14 Update Invalidate schedule queries after workflow submission eab032c Update Use expo-file-system/legacy for uploadAsync 880141d Fix Fix S3 upload using Expo FileSystem.uploadAsync e9936cc Update Simplify photo upload using React Native fetch with file URI 0d45db4 Feature Migrate to new Expo FileSystem API (SDK 54) adaf282 Update Use expo-file-system/legacy for SDK 54 compatibility 106a8b3 Fix Fix FileSystem encoding - use string instead of enum 7551fd8 Fix Add detailed logging for photo upload debugging 10c7464 Feature Add temp files to gitignore ef063eb Feature Add HERE SDK improvements, offline maps, onboarding and settings d7390a8 Update Use COPY instead of INSERT for 5-10x faster bulk save 2d7a3da Fix debug(road-segments): Add timing logs to identify save bottleneck b92d30a Fix Use batch save for add_road_cluster endpoint e36f5d3 Fix Add real-time progress updates to frontend 42c5902 Fix Add duplicate UPRN validation 93f3a7e Fix Use batch insertion for saving road segments ebb4a4f Update Use consistent S3 path for mobile uploads (workflows/ instead of workflow-attachments/) 338b8dd Fix Fix mobile upload bucket - use DOCUMENTS_S3_BUCKET 9196723
Tuesday, 13 January 2026 2026-01-13 Fix Fix photo upload using FileSystem API instead of fetch 0072954 Fix Fix useMemo import in WorkflowForm 83ca880 Fix Fix signature step and photo mimeType in workflows 5811071 Fix Fix photo upload in offline queue using FileSystem API 03c62d1 Fix Use build ARGs for Vite env vars instead of hardcoded .env 757e126 Fix Improve column handling and relax validation d9fe911 Fix include requiresSignature and brandColor in visit workflow data 3696258 Fix increase JSON body limit for signature submissions 57ab84c Fix use vehicleLabel for resource names and handle NaN distances 547df7c Fix show request ID for failed solves, not just completed 0fb9a31 Feature add Stats tab to route analysis view f688e71 Fix add request ID column and fix reset unplanned jobs bug da2f370 Feature add bulk delete endpoint for jobs and darken unscheduled marker c568e1a Fix restore roq/ to gitignore and remove tracked roq files 01e6cdd Feature add route evaluation endpoint for ModelSmart f9805f3 Fix check all possible field names for weight/volume validation 1f14c3b Fix save Icepack requestId immediately so it's visible on failed solves 49762d3 Fix add multi-value support to startsWith/endsWith/contains operators ba84918 Fix use correct IVR7 Job property names for location filter 3b0a91b Fix fix TypeScript errors in Planning jobs map toggle 86a66a4 Feature add map view for jobs validation in Planning 2258c21 Fix filter locations in stagePlanningData to only job-referenced 45931c1 Fix filter unused locations at solve time cbfb91a Fix only include job-referenced locations in solve request 9aabda0
Monday, 12 January 2026 2026-01-12 Fix Bulk update + NULL/UNASSIGNED day_week_clusterid handling c9bbf9a Fix Use bulk update endpoint for road segment UPRN assignments 0bba6e5 Fix Read day/week from each assignment in apply_fleet_mix_rounds 423a8c9 Fix Reduce map height by 40px 86f9f48 Fix Restore days remaining fix that was accidentally reverted a3990a5 Fix Set explicit viewport height on map tab container 6998c1d Fix Make map container fill available viewport height a6becb2 Fix Revert tab CSS changes that broke tab switching c4b3801 Fix Fix arrow function syntax in ProjectViewPage 6e038ff Feature Add fullscreen mode and dynamic height for project map de0785a Fix Days remaining - show days until start and project duration afe72e0 Fix Days remaining calculation per project looks incorrect 212efdc Feature Add duplicate field button in workflow builder 271d7f5 Fix Restore Workflows tab in ProjectViewPage 74867cc
Sunday, 11 January 2026 2026-01-11 Fix Disable strict mode for Docker builds a54e252 UI Initial commit: Shared workflow builder components 9938297 Fix Copy .env file in Docker build for API URLs 2b293d9 Fix Add uuid to vite aliases 14722cc Fix Use pre-built dist + resolve peer deps via vite aliases 1e6caf0 Fix Install peer deps for workflow-components build 6931899 Fix Build workflow-components from source in Docker 9ce7360 Feature Include workflow-components for Docker build d4d7dab Fix Remove package-lock.json in Docker build to avoid npm bug 0f7eb31 Feature Add frontend Docker service for production deployment 403a75b Fix Add @jwt_required() to download_variable_service_template route f97038c Fix Resolve TypeScript build errors 0ebc08b Fix Resolve TypeScript build errors 515844e Fix Dropped Workflow Tab 9d37011 Fix Resolve TypeScript build errors 511f8c3 Fix Resolve TypeScript build errors 5387ecc Fix Refresh rate in the "optimisations" tab within a project ca0372d Fix Refresh rate in the "optimisations" tab within a project 8c4d23a Fix Display field type label instead of raw type name e43b007 Fix Rename Checkbox field type to Boolean 15cb051 Fix Yes/No (Boolean) option for fields in workflows 8c88ef2 Fix Yes/No (Boolean) option for fields in workflows 7c74860 Fix Job visibility within a project 4d89b41 Fix Resolve TypeScript build errors 2e197b7 Fix Job visibility within a project 0ae3a12 Fix Job visibility within a project 515193e Feature Add 'Once Off' option to default visit frequency dropdown 2669143
Friday, 9 January 2026 2026-01-09 Fix use correct variable name user_entity_id in streaming query 6df2f08 Fix add entity_id filters to variable service queries 37ba179 Fix Fix day_clusterid case mismatch: 'Variable' -> 'VARIABLE' 341e486 Feature Add missing _safe_float helper function to variable_services_controller dea810f Feature Add missing _safe_str helper function to variable_services_controller 7a8bbc9 Fix Fix road_clusters JOIN missing entity_id in variable_services_controller 1a558b2 Fix Fix duplicate key error when saving variable service clusters eddec3d Fix Fix variable service clustering endpoint URLs missing API prefix 4ee2824 Feature Add granular progress feedback to basic clustering endpoints c209d0d Fix Fix road_clusters JOIN missing entity_id in backend_v2 clustering controller 42e5030 Fix Fix road_clusters JOIN missing entity_id filter causing row multiplication d33892c Fix Fix clustering modal stats: add bin_count to GeoJSON and explicit entity filtering 954e782 Fix Fix hub_name column error in get_selected_hubs_for_clustering 330c2de Fix Fix resource user link check to be per-entity 60f07e1 Update Handle user already linked to resource constraint 87020f0 Fix Fix multi-entity user linking for resources 5cf5b2a Fix Fix user role constraint - use viewer instead of app_operator a5e301b Fix Fix users table column error - use username instead of name b7720e6 Update Split Schedule modal tabs by mode (Generator vs Viewer) daccf56 Fix UAT ModelSmart routing and platform detection 75e980d Fix Refresh rate in the "optimisations" tab within a project 8355aad
Thursday, 8 January 2026 2026-01-08 Fix Fix Schedule Jobs workflow and back navigation 42f88d6 Fix Fix Schedule Jobs back navigation to preserve Active Services state 137f905 Fix Fix PostgreSQL COPY escaping for JSON with quotes in OSM data f60add4 Improvement Refactor Schedule Jobs page - split modal into config and results 6319437 Feature Add missing batch_generate_town_clusters endpoint mapping febbed1 Fix Fix TypeScript build errors 375700d Fix Fix blank CRM Reference on Errors tab 82325ea Removed Clean up workflow components - remove unused builder code 26daab9 Feature Add UPRN CRM ticket history tracking for FCC missed reports f3bbf78 Feature Add UAT domains to CORS allowed origins 3978e72 Fix Fix Schedule Jobs flow - drill-down from Active Services 6efae80 Feature Add Schedule Jobs Dashboard for persistent job tracking 67328d2 Fix Fix Redis connection timeout for long-running schedule tasks 4850404 Fix Sequence of tabs on project view 69a9efa
Wednesday, 7 January 2026 2026-01-07 Fix Fix DB SSL config - use function to defer file read 989557c Feature Add UAT support - skip SSM and optional DB SSL 729f84b Feature Add raw SQL init script for database setup 1c539d1 Feature Add JS version of prisma config for production 7db94de Feature Add prisma.config.ts for Prisma 7 migrations d35d30d Feature Add DATABASE_URL to Prisma schema a713f88 Feature Support MapSmart legacy entity_id in JWT tokens f9b6a2b Fix Fix FlowPreview props in preview modal 101e586 Fix Fix broken Settings/Preview buttons in workflow builder 9e0c78d Fix Fix workflow proxy - get entity_id from header or JWT 1427dcd Fix Fix remaining VariableServiceModal.css case mismatches (7 files) 391539b Feature Add organisationId to workflow proxy requests 8e7b4df Fix Fix leaflet-fullscreen CSS import case (Leaflet -> leaflet) efcbf7f Fix Fix CSS import case: VariableServiceModal.css -> variableservicemodal.css d4205fb Improvement Update workflowService to use backend proxy d1d4319 Feature Add workflow proxy routes for aione-workflows service d90f8c4 Fix Add resolve alias for leaflet-fullscreen in Vite config 16eec3c Fix Fix uprnpage.css filename case (was UPRNPage.css in git) ea6a4bb Fix Fix fetchWithAuth.ts filename case (was fetchwithAuth.ts) 66ac66b Feature Display Icepack request ID on solve cards 08e76c3 Fix Add Unplanned tab and fix exclusion rules flow ea512e3 Fix Add better debug logging for exclusion rules 6d7d8e7 Fix Support both single and double braces in formula rules 7169cb4 Feature Support multiple values in exclusion rules using semicolon e600c96 Fix Add conditionalFormula rule type + debug logging f8ad8f4 Feature Show dimension coverage validation in Planning Room UI 5e8059d Fix Add dimension coverage validation and fix Save modal styling 6460e34 Feature Add numeric validation to catch icepack 502 errors d7ec77a Feature Rename Pickup Window to Loading Window and add to Jobs table 0fb8cd5 Fix Increase fleet commit transaction timeout to 60s 9a5d523 Feature Add between/notBetween operators for range conditions ef4cfbc Fix Fix Excel time parsing for vehicle shift times dd07d4f
Tuesday, 6 January 2026 2026-01-06 Fix Fix location tracking breaking when navigation mode changes f9ff679 Fix Fix route progress events not firing during navigation c444437 Fix Fix useHereMaps to auto-init for ModelSmart too d58ee20 Fix Fix ModelSmart HERE navigation - use shared hook with credentials ab75603 Test DEV: Clear auth tokens on app start for easier testing 867f2ca Fix Fix ModelSmartHereRouteScreen HERE navigation issues 5f09fe3 Feature Add HERE Maps to ModelSmart + UI improvements 2b3d564 Update typescript cleanup cbac56a Feature Add 3D navigation with speed limits and lane guidance 9a01ca8 Fix Fix MultiLineString geometry - render road curves instead of diagonals 6a506e1 Fix Fix MapDownloader race condition - wait for async init f9e9224 Fix Fix MultiLineString geometry - don't flatten disconnected lines 3f9938e Update Use MapSmart green theme for all MapSmart screens 2999d35 Update Enable landscape mode only for Route screen fe526b9 Fix Fix route display and improve navigation UX 2fb97cf Feature Add Docker deployment configuration f918538 Fix Fix API response format to match frontend expectations 226e8c5 Update Initial commit - AIOne Workflows microservice 1cf040a UI Skip tsc in Docker build, let Vite handle transpilation 39c249f Fix Fix tsconfig to include all context folder files 7235ae0 Feature Add Dockerfile and nginx.conf for MapSmart frontend 044953a Fix Fix CSS build error and add ellipsis to correct CSS file 0ed589a Fix Fix Cycle/Round column ellipsis with CSS class f27765c Feature Increase Cycle/Round column widths and add maxWidth constraint 2653fbb Fix Fix PDF overlay z-index and cycle column ellipsis dca415b Fix Fix PDF map generation - use original WeasyPrint implementation 4534d8e Fix Add debug logging for map download investigation 98c24ef Fix Fix Cycle column overflow in FinalServices table a0008cc Fix Fix TypeScript errors in build f5d0763 Feature Add Workflow Builder feature and misc updates 1eef129 Fix Fix map download - frontend/backend response format mismatch 275e456 Fix Fix Dockerfile Chrome install - use modern signed-by method 8090124 Fix Fix map file paths - use temp directory with absolute paths 4c818f2 Feature Implement missing PDF map generation functions a6cafff Fix Fix Sweeper Schedules "Add All" losing segments (race condition) 9d83469 Fix Fix MapSmart customer-reported bugs batch 89c81b2 Feature Add pickup time windows separate from delivery windows 1fc40ec Fix Fix docker-compose for production - add Redis, correct ports cba8ee4 Feature Block Standard solve mode for large problems (>250 vehicle-days) 49872cd Feature Restore solve type selector for project optimisation eee491d Feature Add penalty field to import template rules 02c5d65
Monday, 5 January 2026 2026-01-05 Fix Fix .easignore excluding native modules on Windows e94f989 Removed Remove broken dependencyResolutionManagement from settings.gradle f0653ce Fix Fix HERE SDK AAR loading - use fileTree (official HERE approach) 966240d Fix Fix HERE SDK AAR not loading - move flatDir to settings.gradle 19b828e Fix Fix .easignore - exclude native-libs/ and HERE/ (saves ~5GB upload) 67dd12f Fix Fix HERE SDK crash - add lazy loading with availability check ff477f8 Feature Add offline map download UI to Map Management settings 3a5cecf Update Limit Route screen date range to ±1 day for data saving 84a09d7 Improvement Enhance landscape mode with detailed stats and nav progress 7e509a8 Feature Add full turn-by-turn navigation with UK voice guidance d48e054 Fix Fix route API response transformation for HERE map display 70bce21 Fix Fix nullable String in deleteDownloadedRegions 13c0bb2 Feature Add TypeScript interfaces for new offline maps methods 8a3f2fe Fix Fix HERE SDK 4.25 offline maps API - use correct async constructors 4a36280 Fix Fix HERE SDK 4.25 compatibility - remove deprecated offline map APIs 0acfdd6 Fix Fix MapSmart API response transformation and endpoints 215f401 Fix Fix MapSmart API and dynamic theme colors a3ac8ec Improvement Refactor profile screen into clean menu structure 71c82e7 Fix Fix org switching - add auth interceptors and switch-org API 5d7d00c Feature Add back DeviceEventManagerModule import to HereMapModule de17c45 Removed Remove unused imports from HereMapModule c6645e2 Removed Remove road names from maneuvers (HERE SDK API issue) 28308f5 UI Simplify HERE SDK navigation module for initial build 0e787d0 Fix Fix HERE SDK 4.25 navigation API compatibility 374cf73 Feature Add sweeping plans features and MapSmart resource controller updates 1cde2c2 Fix Add debug logging to MapSmart mobile profile lookup 2272c45 Feature Add green-button styling to Import and Access Codes buttons 85c478f Fix Fix Actions column styling in SweeperResourcesPage 5fe4ffe Feature Add rolling 14-day work summary endpoint for mobile app f6df44d Feature Add vehicle-to-resource assignment in schedule activation modal b9bc06e Feature Add Map tab to Project View for pre-solve visualization bdffe9a Fix Add bulk project resource ops and fix solver polling 4ade41b Fix Use correct Prisma model names for bulk operations fd388bc Feature Add bulk edit shift times and bulk delete for resources 8662eb8 Fix Add shift time validation in scenario builder e81c344 Fix Use Experimental solveType (3) for ModelSmart optimisations 00756e1 Fix Use background processing for ModelSmart optimisation to avoid timeouts dd2e12a
Sunday, 4 January 2026 2026-01-04 Feature Add HERE SDK 4.25 native modules and iOS support e1112ed Fix Fix HERE SDK 4.25 API compatibility issues in native modules fd0e1f4 Fix Fix .easignore to not exclude android here/ folder d4c20ff Feature Add android folder with HERE SDK native modules for EAS builds d21ae17 Fix Include android folder for EAS builds with custom native modules 1ae5acb Feature Update auth styling, add MapSmart registration support, optimize build 9eb15d8 Fix Set page title using next/head in _app.tsx ac0b4d0 Fix Set page title to AssetSmart 04d0fe5 Fix Add system font to Back to AIOne button to match MapSmart babab9f Fix Add explicit font-weight to back button for consistency b422cce Update Sync login page styling with MapSmart 502197f Update login gap on welcome 2e4e63e Improvement login updates 61789e1 Improvement login updates 1d9541f Improvement AIONE login pages updated fd9b8bc Feature Auto-create user and send welcome email when creating resource fc2139a Feature Auto-link resource to user by email match on admin create 2fd7bcd Improvement Improve access code registration for existing users b97eb83 Fix Fix JSON serialization for time fields and improve UI styling b87c3e2 Fix Simplify title to just MapSmart 3a7d6d8 Fix Remove unused ProCard import 6e7573f Fix Add system font to Back to AIOne button 90db7b9 Fix Focus state shows green border with green glow like AssetSmart f5ea46a Fix Green border on hover, grey border on focus 5f9e437 Fix Keep input borders grey on hover/focus like AssetSmart a49ee8d Fix Grey placeholder text instead of grey background ec0726c Fix Grey input backgrounds and larger login button text 3c23a1c Fix Match login card padding with AssetSmart (32px -> 24px) 5127a12 Fix Standardize login page styling across products 1510b14 Fix Fix MapSmart login button sizing - stronger CSS selectors bc4ae37 Update Match MapSmart login styling to AssetSmart f87df35 Fix Fix login page background flash - change dark fallback to light grey 80e8d54 Update ms frontend overhaul 8bba9b2 Improvement AIOne login update 649a59d Improvement mobile sweeper updates f5f385e Fix Use OAuth state parameter instead of session for redirect origin 326c28c Fix Explicitly save session before OAuth redirect bd61774 Fix Preserve login domain (modelsmart vs solvesmart) through OAuth flow b5fab86 Fix Check hostname for ModelSmart detection (modelsmart.aione.uk) 186ad2d Fix Dynamic title (SolveSmart/ModelSmart) and fix SmartSolve typo 157ba87 Feature Dynamic favicon based on platform (SS=teal, MS=orange) 5bf70ef Fix Update index.html to use favicon.ico e547e08 Fix Standardize login page styling to match AssetSmart/MapSmart 0057871 Improvement background update ceebdbd Update login gap e53eb7f Improvement privacy and landing updates 7be268e Improvement AIOne login alignment update 6118d15 Fix org name correction 128bd06 Improvement dual token update 35b60d0
Friday, 2 January 2026 2026-01-02 UI Inject CSS to hide login/header in privacy and terms WebViews b13727b Update Hide privacy and terms routes from tab bar a4461cc Test Use product-specific URLs for privacy and terms pages 9bd818e Update Handle multi-org selection in AuthCallback f558fbd Fix Fix entity_id filtering in exports controller JOIN clauses 5015f65 Fix Fix entity_id filtering in UPRN service queries 1357589 Feature Add region override indicator to services table 8a89c36 Fix Fix Bulk Edit visibility on Services pages d9a465a Update Disable healthchecks for celery and osrm containers e254872 Improvement updates ffc16ac Test Use product-specific organisationId from token 019c66a Fix Add debug logging to verifyToken for userId tracing fb2042e Fix Fix verifyToken to use product-specific userId 5a9a7c4
Thursday, 1 January 2026 2026-01-01 Feature Strip geometry from save payload and add logging 6edb17c Update Increase Flask max request size to 50MB for large schedule data af2a7fc Fix import fix 159ab7a Fix schedule fix 93d9889 Improvement Update auth middleware to use AIOne Auth validation 9b4b607 Feature Add API proxy to frontend nginx config 01c66f4 Fix Fix API URL environment variable - remove hardcoded ngrok fallback 25c5f9c Feature Add .dockerignore to exclude local env files from builds 778fcbe Fix Fix case-sensitive CSS import for Linux compatibility 599625b Fix Fix frontend TypeScript errors for production build 36250b3 Fix Fix TypeScript errors for production build f0b4f52 Update Switch to node:20-slim for better sharp compatibility 0b7d3c9 Fix Add node-gyp for sharp compilation in Docker cb8082d Update Roq Dec Madness d82b8d0
Thursday, 18 December 2025 2025-12-18 Improvement planning room refactored 85189e6
Monday, 15 December 2025 2025-12-15 Feature Add faker to Docker requirements eb773df Fix faker fix 2be5792 Feature Add faker dependency for UPRN template generation 7caa61c Fix delete fixes +++ 66a5d8d
Monday, 8 December 2025 2025-12-08 Update scheduler and comments continued 29a6fab Improvement scheduler updates 24f8b50 Improvement scheduler update + last sweeper bits da9fef4
Sunday, 7 December 2025 2025-12-07 UI Complete DEPLOYMENT.md with operations and troubleshooting guide 9e643a1 Update Change backend port from 5000 to 8081 to match existing frontend config 0575e64 Fix Fix libgdk-pixbuf package name for Debian Trixie cf3c42b Feature Add WeasyPrint system dependencies to Dockerfile df6c85f Fix Fix run_gar_sync.py import paths for Docker 523036e Feature Add selenium, pdfkit, weasyprint, docx packages b775883 Feature Add pyrosm, spatial analysis, and more utilities 544b1af Feature Add osmnx, rtree, folium and system dependencies 39b4b4f Feature Add more packages to Docker requirements 178d030 Feature Add scikit-learn to Docker requirements 8fbbf2f Update Use env_file to load all environment variables 13dd83f Removed Remove external Redis port mapping 3abba62 Fix Add Docker requirements and fix Celery for containerization 7d06132 Update biffa blur 2 e4689b5
Monday, 1 December 2025 2025-12-01 Fix Add driver map and debug HTML/PNG files to gitignore 0e9683b Improvement Backend refactoring, UI improvements, and test infrastructure 579675a Fix Security: httpOnly cookie auth, SQL injection fixes, and security checklist f6c016d
Sunday, 30 November 2025 2025-11-30 Feature Security: Environment-based CORS and Redis rate limiting support 3866405 Feature Security: Add security headers, file validation, and remove hardcoded credentials 5e96da7 Feature UI/UX improvements, code reorganization, and feature updates 8e0ab79
Wednesday, 26 November 2025 2025-11-26
Saturday, 22 November 2025 2025-11-22 Docs ERP + Legal Docs d0ae0df
Thursday, 20 November 2025 2025-11-20 Improvement Entity Rehaul + Sweeper Update 3d952df
Tuesday, 18 November 2025 2025-11-18 Feature Enhance: Add logo, better spacing, and scrollable container to Entity Selection fd998d0 UI Redesign: Entity Selection Page now matches application styling ef5a1d1 Fix Use logging instead of logger in get_territory_templates 2bfe36c Fix Secure /edit_entity endpoint for reseller admins b467769 Fix Auto-populate reseller_id from JWT for reseller admins in /add_entity d6cbe91 Fix Reseller entities now properly include reseller_id and license fields ef48ec4 Fix Entity and user tables now update immediately after add/edit ec0dde1 Fix Use logging instead of logger in get_territory_templates 5d01e9d Fix Remove duplicate get_territory_templates endpoint 4cc9e0c Feature Add convert_templates.mjs script for reference 1c6647a Fix Add territory templates endpoint and update TerritorySelector a489854 Feature Apply tabs and territory selector to reseller dashboard entity modal 6be874c Feature Add tabs to entity modal for better organization 4763c13 Feature Add territory selector for street sweeping entity creation 014f579 Fix Add license fields support to entity creation and updates 9ed9c3c
Monday, 17 November 2025 2025-11-17 Fix Optimize v_reseller_summary view to resolve 50+ second load time 1aa80e4 Fix Allow reseller admins to create users in their entities 5f0946f Fix Check user-reseller relationship via entity for multi-entity access 8b66a32 Fix Allow reseller admins to manage user entity access for their users 365b221 Fix Remove duplicate get_user_entities endpoint causing Flask startup error d87b65b Update UX: Move entity info from full-width banner to compact sidebar card 2ad1332 Feature Feature: Add user entity access management UI (Phase 4 - Multi-entity system) 3cdc29c Feature Feature: Enhance JWT token with multi-entity context in login endpoint 9c92441 Feature Feature: Implement multi-entity user access frontend 971319a Feature Feature: Add multi-entity user access backend endpoints c0709a9 Feature Feature: Add license management fields to dashboard Create Entity modal 5abf493 Fix Remove non-existent created_at column from service_types query f8c4cb3 Feature Feature: Enhance reseller dashboard with location counts, expandable rows, and license management 3ed7ebf Feature Add diagnostic tools for UPRN count and migration runner 1babdd9 Fix Use existing street_sweeping_logs table instead of creating duplicates 9873d51 Fix Rename sweeping road_segments to sweeper_road_segments to avoid conflict b78017a Feature Add '(Coming 2026)' label to gully, gritting, and line marking system types 36dcdb9 Fix Make Reseller column condition more explicit for reseller admins d5e0ce1 Fix GlobalLayout service type check for non-entity users + Add license management f57d631
Friday, 14 November 2025 2025-11-14 Fix Prevent reseller admin 403 errors and null reference crashes in Settings 8fc80bb Fix Correct services table column name in reseller dashboard query 3632e96 Fix Dashboard views now count only ACTIVE records (exclude soft-deleted) e3db1ff Fix Prevent crashes when clearing user filter dropdowns c5f933c Fix Restrict reseller admin view to only their entities and users b3a2b4b Fix Resolve Settings redirect and reseller dashboard SQL errors d56de39 Fix Add null-safe filtering in SettingsPage to prevent crashes when clearing dropdowns 3c59f3f Feature Implement smart routing based on user type a4074bf Fix Import fetchWithAuth from correct location in SuperAdminDashboardPage 02616f0 Feature Implement view hierarchy and entity selection frontend b0e7810 Feature Implement multi-entity user architecture 7db34b3 Feature Add reseller admin user creation functionality 95bed00 Fix Entity controller now saves all fields (reseller_id, system_type, etc) 663c674 Fix Entity form not submitting reseller_id and system_type 52d75a3 Fix Update EntitySchema and remove unprofessional emojis 19b46d5 Fix Use AIOne as reseller example instead of Biffa 966d16b Feature Add Reseller and System Type Management to Settings Page 8741456 Fix Handle undefined entity in AuthContext for superadmin users 009de83 Feature Implement Phase 2: Complete Multi-Tenant Reseller Architecture 21f8e2b Feature Implement Phase 1: Multi-Tenant Reseller Architecture with System Types 89e2a5d Removed remove unnecessary files 8cdf688 Feature Add Street Sweeping Module - Phase 1: Territory Setup 43341f5 Update Initial MapSmart codebase c5f7d9b Improvement remove Column Mapping tab from Setup page 0201ccd Fix add missing SettingOutlined import and change TimePicker to 5min steps d323364 Feature replace text input with TimePicker for time window selection 311f7ac Fix handle undefined rule ID when creating new rules from suggestions 9e9b3f7 Fix improve Rule Builder modal UX with better widths and HH:MM time input 15c8001 Fix remove Space wrappers from RuleBuilder modal to fix width constraints c1bbba4 Fix improve Rule Builder modal UX with better widths and HH:MM time input 9bb9c29 Fix improve Rule Builder UX with tabs and fix suggestions display a04c8ba Fix apply SolveSmart branding and filter column mapping to jobs import 657f9c6 Feature integrate Column Mapping with Rules page and add smart rule suggestions e584930
Thursday, 13 November 2025 2025-11-13 Fix use import type for Rules page type imports 434d89b Feature implement Rules Engine for time window transformations 4144750 Fix template download authentication and improve jobs import messaging a895260 Fix template download authentication and improve jobs import messaging 6542a62 Feature add jobs template download endpoint for users without column mapping c795877 Feature implement backend endpoints for jobs import 273b85d Feature add jobs import functionality to Planning page ff26fc3 Fix import Text from Typography to fix dimension table rendering 7079f67 Fix add defensive rendering for dimensions to prevent Text constructor error ff3f64b Fix add missing authentication middleware to dimension and location routes 89cd1e8 Feature add click navigation to stat cards and use British English 847e57a Fix remove SMT mode toggle and fix dimensionId case conversion d9dac20 Fix correct TransitRule import to match schema structure ef2dfec Feature implement complete vehicle import with shifts and capacities 54f9b30 Fix remove invalid shift time fields from fleet vehicle import 3c90fea Feature add masterOnly mode to template download modal 6d1bdcf Fix pass required props to SetupTemplateDownloadModal in Setup page bc688c6 Feature add download template button to Setup import tab de6ac2a Fix remove description row from Depots sheet to fix header detection dbfad16 Fix include Depots sheet when building seeded templates with vehicles 7dfef96 Fix properly merge depots into locations for solver validation and import 8a1781c Fix add Depots sheet to master template, seed depot data, and fix vehicle depot references 4494460 Fix skip vehicles with missing required depot/class references instead of failing 8943789
Tuesday, 11 November 2025 2025-11-11 Fix add required name field to vehicle import 60d9ecb Fix use correct Prisma schema fields for VehicleClass and VehicleCostClass imports 15aac07 Feature add depot parsing support to master template import 92e6f77 Feature add commitFleetSetup to save setup entities directly to DB instead of creating scenarios 88cc285
Monday, 10 November 2025 2025-11-10 Improvement streamline master import to validate on upload, remove redundant validate button 18fdf5a Feature add fleet-specific import route aliases for Setup tab imports 16d794c Fix correct depot detail card width by removing aggressive min-width rule a1f1baf Improvement reorder Setup tabs - Setup Status first, Import Setup Data second, then alphabetical 7707ac2 Fix move Setup Status to tab within Setup page and fix styling 92c911e Feature add Setup Status page for configuration overview e487ee4 Feature implement full master template import functionality in Import Setup Data tab bbcdc89 Improvement replace Import Fleet Data tab with Import Setup Data tab 1c85049 Fix apply comprehensive SolveSmart teal branding to Setup page c860578 Fix apply SolveSmart teal branding to Actions dropdown button 850db3a Fix change Excel template tab colors from orange to teal for SolveSmart branding 005e462 Feature add template download and import functionality to Setup management tabs 26ae271 Fix improve Setup page data loading and add common dimension presets be45c63 Fix correct postcode service import in location controller 2288180 Feature add location conflict resolution UI for master imports 4988998 Feature add location conflict detection and resolution to master imports aad5dc8 Improvement update packages 55abe60 Feature add Dimensions, Locations, and Transit Rules tabs to Fleet & Setup c53ada6 Feature add API service methods for Dimensions and Locations aaba151 Feature add frontend types for Dimension and Location 4550473 Feature add Dimension and Location models with full CRUD APIs 6ba9443 Fix separate SmartSolve and ModelSmart column mappings with proper branding 73549eb Fix styling fixes 23e4d65
Tuesday, 4 November 2025 2025-11-04 Feature add comprehensive Fleet Import tab to Fleet & Setup page 77f7cae Feature add fleet import service for bulk fleet data imports c3f17aa Improvement remove column mapping from Import page 0a5e418 Fix resolve TypeScript errors in Planning.tsx 2ff2376 Fix restore fleet.ts service with correct API endpoints c0a638d Improvement consolidate fleet management into Fleet & Setup page 43dc8c8 Fix properly track backend and frontend source code 3aea3a9 Update Final mono setup fb51011