Skip to content

Changelog

Shipped, not promised.

21 tagged releases since Sep 8, 2026, each applied to production with its migrations and a rollback path. The product changes every week; this page is generated from the release ledger, so it cannot drift.

  1. v1.0.20

    rolling out

    Chassis gets its full toolkit — Chassis Availability (live TRAC, CCM and DCLI pool stock) and MT-Return Chassis (where an empty pool chassis can go back today, scheduled with change alerts) arrive, Chassis Reservation books live at CCM and by emailed release request at DCLI, and all three speak one Pool › Region › Depot vocabulary (API callers send depot).

    • Chassis reservation · Pool on every booking — Pool › Region › Depot, depot field, DCLI page as pool
    • Chassis availability · Pool on every check — DCLI page as pool, depot field, Pool › Region › Depot form
    • Empty return — chassis · Dashboard on the pool — Pool › Region, remembered pool, depot history
    • Empty return — chassis · Pool on every check — all FlexiVan pools, all DCLI pages
    • Chassis pools · One provider → pool → region → depot hierarchy
    • Chassis reservation · One depot per reservation — form layout and API contract
    • Chassis reservation · DCLI books by region page, location and depot
    • Chassis reservation · V2 phase 8 — settle and cancel DCLI release requests
  2. v1.0.19

    Tracing goes live — progress, in-app notifications and a dispatcher report with dollars at stake — and Chassis Inquiry becomes Chassis Provider Lookup, now taking ten chassis at once with live updates.

    • Chassis provider lookup · Look up to ten chassis from one paste box
    • Chassis provider lookup · Live push for lookups over the per-user stream
    • Tracing · Dollars at stake, unit notes and the morning brief
    • Tracing · Auto-retire finished units
    • Tracing · Deferred INSTANT for API callers, progress and run changes on GET
    • Tracing · Recipient default, idempotency, endsAt and per-group durations
    • Tracing · Login-hold gate before the rail and carrier logins
    • Tracing · The dispatcher's report — board, next action, calendar note, links
  3. v1.0.18

    A dependency release: Next 16.4, React 19.3, Prisma 7.10, Sentry 11, BullMQ 6 and ioredis 6, clearing the security audit from 184 findings (1 critical, 75 high) to one dev-only high with no published fix.

  4. v1.0.17

    The System Monitor now samples the server every five minutes and emails a weekly system report with the newest database backup attached, and it gains queue controls, a Database card, vulnerability-audited packages and new health checks.

    • System monitor · Attach the newest database backup to the weekly report
    • System monitor · Retry one failed job, and keep the scroll position on queue switches
    • System monitor · Queue actions — retry all, remove, clean, pause, promote, drain, drift keys
    • System monitor · Reconcile schedulers from the Queues card
    • System monitor · Alarm on one-shot queue failures and a Redis that can lose jobs
    • System monitor · Scheduler detail, queue selector, health-check history and job search
    • System monitor · Add a Redis tools menu to the Queue statistics card
    • System monitor · Lay the Database card's digests out as ranked lists
  5. v1.0.16

    Parse DO now reads MAERSK import work orders and OEC reefer sizes, and Download J1 gets a CSX driver picker, BN licence matching by last four digits and a form without the dwell switch.

    • J1 gate records · Drop Calculate dwell from the dashboard form
    • DO parsing · Parse MAERSK import work orders
    • J1 gate records · Pick the CSX driver on one line and clean the licence
    • J1 gate records · Resolve BN's masked licence to a mirrored driver by last 4
  6. v1.0.15

    Parse DO now takes uploaded PDFs directly (many at once, with the layout detected and the form prefilled), can re-parse and schedule from the form, and reads MAGID import and EUSU export delivery orders.

    • DO parsing · Parse MAGID import DOs
    • DO parsing · Pick the shipment type first, then a customer it can parse
    • DO parsing · Parse EUSU export DOs, both of EUSU's layouts
    • DO parsing · Per-row warnings — what a parser assumed, and a layout mismatch (PARSE-DO-V2 Phase 6)
    • DO parsing · Schedule from the form and edit a schedule (PARSE-DO-V2 Phase 5)
    • DO parsing · Detect the DO layout on upload and prefill the form (PARSE-DO-V2 Phase 4)
    • DO parsing · Show, download and re-parse the stored DO (PARSE-DO-V2 Phase 3)
    • DO parsing · Upload many DO PDFs from the create form (PARSE-DO-V2 Phase 2)
  7. v1.0.14

    The dashboard moves onto Next.js Cache Components: every page now ships a prerendered shell (sidebar, header, the page's heading, and for help manuals, four create forms, the landing page and the sign-in card the content itself), so a page load paints at once instead of waiting for the session. Tracing requests gain a title, every operator manual gains an admin-only Technical section, Next is bumped past three critical RCE advisories, and the lib/actions layer stops being reachable as server actions.

    • Dashboard · Stream the dashboard shell and drop the instant opt-outs
    • Enable Cache Components + Partial Prefetching (Phase 8b)
    • Dashboard · Enable typedRoutes with checked hrefs at the source
    • Tracing · Give import and export requests a title
    • Help · Admin-only Technical section in the import tracing manual
  8. v1.0.13

    The EDT/LDT calculator becomes a full dashboard module — a stop can be a map pin, a yard-to-yard leg is priced from measured lane history instead of a straight-line guess, and the driver's remaining hours are reported beside the answer — while five more modules gain operator manuals and a rail-billing email outcome can no longer be lost to a write race.

    • EDT / LDT · Rebuild the form with pins, inline hints and re-run (EDT-LDT-V2 Phase 5)
    • EDT / LDT · Make the calculator a full dashboard module (EDT-LDT-V2 Phase 4)
    • EDT / LDT · Resolve the truck and judge the driver's hours (EDT-LDT-V2 Phase 3)
    • EDT / LDT · Measure lane transit from the visit mirror (EDT-LDT-V2 Phase 2)
    • EDT / LDT · Accept a stop as a coordinate pin (EDT-LDT-V2 Phase 1)
  9. v1.0.12

    The three Motive pages gain live answers about a truck's day: Locate on Drivers and Vehicles, a stored Central-Time location trail with a nightly fleet pull, "who is inside this yard right now" cross-checked against the fleet's live GPS, sync-run History dialogs and admin-only Auto Sync across all three — and the geofence wait-time write, silently broken since 2026-08-06, is fixed.

    • Geofences · Cross-check Inside now against the fleet's live positions (V2.1)
    • Geofences · The tenth operator manual (V2 Phase 6)
    • Geofences · A sync-run History dialog, with the precompute on it (V2 Phase 5)
    • Geofences · Show the Motive id, and search by it (V2 Phase 4)
    • Geofences · Answer "who is inside this yard right now" (V2 Phase 3)
    • Geofences · Make a failing nightly precompute visible (V2 Phase 2)
    • Vehicles · The sync-run History dialog — two kinds of run, one read
    • Vehicles · The nightly fleet pull — a third scheduler, events only
  10. v1.0.11

    CN import tracing now reads the year-less "1st Storage Date" cell and derives the last free day from it, so a notified container at an Illinois ramp reports GROUNDED with its LFD instead of PENDING with none.

  11. v1.0.10

    Admins can now scope the nightly portal Auto test to chosen portals — the sweep, its digest and the run record all say "N of M" — and read an admin-only Portal Login Checker manual from the header, while the auth caches no longer stampede the database on a cold start.

    • Help · Gate the Portal Login Checker manual to admins (V2 D9 revised)
    • Portal login checker · Choose the Auto test's portals in the modal (V2 Phase 3)
    • Portal login checker · Scope the sweep and its digest (V2 Phase 2)
    • Portal login checker · Plan the Auto test over a scope (V2 Phase 1)
    • Portal login checker · Persist the Auto test scope (V2 Phase 0)
  12. v1.0.9

    Dispatchers can now book several chassis out of one pool at once — right away, or armed for a release moment with retries until every line is booked — edit the schedule, read each line's attempt history, see every chassis held by yard, force-book a short pool and have Neo read the queued TRAC order back until it is released or expires, and cancel a booking from any surface, the release # cleared at TRAC and shown as cancelled everywhere.

    • Chassis reservation · Dashboard — force-book cadence, Status checks card, cancel booking on every surface, CANCELLED pill, runs Kind column (V3 Phase 5)
    • Chassis reservation · Cancel a booking — PATCH CANCEL, cancel job on the booking worker, CANCEL execution, NEWLY_CANCELLED report (V3 Phase 4)
    • Chassis reservation · Status checks — statusCheckEvery, status queue/worker, arming, PATCH STATUS_CHECK, read-back (V3 Phase 3)
    • Chassis reservation · BookingOrderId column, execution kind, TRAC client split, status/cancel cores (V3 Phase 2)
    • Chassis reservation · Rename bookWhenInventoryUnavailable → forceBook, persisted alias (V3 Phase 1)
    • Chassis reservation · TRAC status/cancel rules, force-book seam, fixtures (V3 Phase 0)
    • Chassis reservation · BookWhenInventoryUnavailable — inventory hold before booking (V2 Phase 8)
    • Chassis reservation · Blame support — row flag, whole-run blame, delegates + specs (V2 Phase 6)
  13. v1.0.8

    Operators can now flag a wrong result and get it triaged (Blames + the in-app notification bell), read a manual for every module from inside the dashboard, and run the container empty-return checker at full parity with tracing — many containers per carrier, scheduled with watched fields and a daily digest, editable, re-checkable, with CMA back on its eContainer Hub login — while the J1 gate-receipt download takes a whole batch per yard and a login that fails no longer hammers the carrier.

    • Empty return · Blame support — row + whole-run blames on the report (Phase 6)
    • Empty return · Login backoff, browser-demand cap, ZIM single-flight refresh (Phase 5)
    • Empty return · Edit page, check again, notify panel, history, row actions (Phase 4)
    • Empty return · Create form V2 — one carrier, many containers, both modes (Phase 3)
    • Empty return · PUT cronExpr, PATCH RETRACE, GET notify + history, condition flags (Phase 2)
    • Empty return · WatchFields + DAILY_DIGEST for container notifications (Phase 1)
    • Empty return · Schema + queue groundwork for container V2 (Phase 0)
    • Empty return · Rebuild the CMA handler on the eContainer Hub login
  14. v1.0.7

    CN login rebuilt as pure HTTP so it works cold on the VPS, COSCO routed through a proxy exit, and HTTP/3 switched off at the Caddy edge.

  15. v1.0.6

    Plain-language tracing schedules on Central Time, a Chrome-only slimmer image, and CMA/APL rail billing switched off pending re-onboarding.

    • Dashboard · Listing section boundaries + pure list-where seam for both tracing twins
    • Dashboard · "notify me" — prefill the recipients box with the operator's email
    • Dashboard · Cadence sentence on every tracing surface, toast in CT
    • Dashboard · Plain-language schedule builder for both tracing twins
    • Queue · Pure schedule seam — spec ↔ cron ↔ sentence (cron-schedule.ts)
    • Queue · Evaluate request-driven cron schedules in Central Time
    • Tracing import · Read the CSX reference from BOL # before Load #
  16. v1.0.5

    Portal logins - Fix the issues of CN and ONE and schedule checkup added

    • Portal login checker · Auto test — scheduled nightly sweep with an admin digest
  17. v1.0.4

    CN portal login works again — the track app moved its JWT to a new localStorage key

    • Dashboard · Hide unbuilt "soon" nav entries for launch
  18. v1.0.3

    Trust it unattended (LAUNCH-PLAN-V1 Phase 2): the readiness probe now proves the workers consume, a schedule that keeps failing emails someone, logins cost a quarter of the memory, and the client IP can no longer be forged. Also carries the intermittent-503 fix and diagnose.sh, which landed on master after v1.0.2 was tagged.

    • Notifications · The "schedule is dying" notice — N consecutive FAILED runs → email
    • Health · Prove worker liveness in ?deep=1 via the self-test queue
    • Deploy · Add diagnose.sh, the long-form stack diagnosis for the VM
  19. v1.0.2

    Made the release tag knowable: this ledger, the tooling that keeps it honest, two status checks, and the running build on the dashboard. Also the first release carrying the hardened Caddy edge.

    • Dashboard · Show which build the process is running
    • Deploy · Status.sh and release-status.ps1, the two release checks
    • Release · Gate release.ps1 on the tag's RELEASES.md entry
    • Release · Pnpm release:notes, the ledger-entry draft generator
    • Deploy · Harden the production Caddy edge, document load balancing
  20. v1.0.1

    Launch hardening: production error reporting works again, the two SSRF allow-lists cover rail billing, and the last committed secret is gone.

  21. v1.0.0

    The first containerized release for tenant the tenant: the image, the smoke stack and the production compose templates from DEPLOY-PLAN-V1 Part A, over the whole application as it stood on 2026-09-08.

Get started

Give your dispatchers their day back.

A thirty-minute walkthrough on your own Chicago lanes and carriers. We will show a live trace on one of your ramps, a scheduled watchlist and the dashboard your team would open every morning.