Skip to content

Changelog

Releases, improvements, and updates to DirectPort.

Release 25

03.03.2026 Release

Features

Autofill Timestamps from Vessel Tracking

When a voyage has vessel tracking data available, you can now automatically populate stop timestamps (arrival, departure, etc.) from the vessel's recorded positions. Open the action menu on a voyage and select "Autofill Timestamps" to review and apply the suggested times — no more manual copy-pasting from tracking logs. Autofill from uploaded documents is coming soon.

Autofill Timestamps

Copy Demurrage Calculation to Other Party

After calculating demurrage on one side of a voyage (e.g. the supplier), you can now copy that calculation to the matching terms on the other party's side with a single click. This avoids re-entering the same laytime and demurrage figures when both parties share the same terms.

Copy to Customer

Voyage Costs Report

A new Voyage Costs report is now available in the Report Creator. It shows financial items enriched with voyage context — costs, vendors, invoice numbers, load/discharge ports, B/L dates and weights — making it easy to build cost overviews across voyages.

Voyage Costs Report

Financial Inbox Improvements

  • Time filter: the financial inbox now defaults to showing items from the last 3 months, with a configurable time range selector. The direction filter has been removed in favour of clearer defaults.
  • Soft-delete & restore: inbox items can now be marked as deleted and restored if needed, keeping your inbox tidy without losing data permanently.
  • Search & navigation: the search query is now persisted in the URL, and the prev/next item navigation correctly accounts for the active filter.

Invoice Totals Row

The invoices table now shows a totals row at the bottom, giving you an at-a-glance sum of invoice amounts across the current view.

Fixes

  • Improved invoice rounding consistency: VAT and total calculations are now robust against floating-point precision issues across the frontend, invoice templates, and database triggers.
  • Fixed recurring invoice deficit-to-threshold being calculated per day instead of per operation.
  • Fixed route operation map trying to calculate a route when a stop has only one location or a location without coordinates.
  • Fixed self-billing scenario label being ambiguous when viewed from the financial inbox table.
  • Fixed error boundary not displaying errors and not forwarding them to Sentry.
  • Fixed invoice line allocation amount not being editable.
  • Fixed voyage insights cargo statistic column colours being too similar.

Other

  • Consolidated the voyage financial combined view: demurrage and low water sections are now grouped under a single accordion for clarity.
  • Refactored the demurrage calculator for improved stability and reduced re-renders.
  • Admin app adopted Mantine UI and AG Grid, replacing the previous custom table and modal components.
  • Added TypeScript type-checking to the main-app pre-commit hook.
  • Prepared template sync script for managing HTML document templates from the repository.
  • Upgraded Vite from v6 to v7.
  • Added npm dependency caching to GitHub Actions deploy workflows.
  • Purged unused vessel technical files and other dead code.
  • Admin app now includes Sentry and email monitoring widgets.

Release 24

20.02.2026 Release

Features

Invoice Line Allocation

  • New tool to allocate invoice lines to voyage financial items. Available from the invoice detail page and the financial inbox, with support for creating new financial items on the fly and overwriting amounts.

Self-Billing Invoices

  • Support for self-billing workflows: create self-billing invoices and credit notes, send them via Peppol, and see a clear "Self-Billing" badge on the invoice page.

Purchase Order Processing

  • The financial inbox now recognises and processes Purchase Orders. Approving a PO automatically creates a linked Sales Invoice with the PO number as buyer reference.

Time Charter Calculation

  • Automatic time charter cost calculation for voyages with daily-rent contracts, including off-hire day deductions. Triggered when the last stop's operation completes.

Voyage Insights Filters

  • Insights dashboard now supports custom date ranges, status filters (Completed / Active / All), weight basis selection (BL / Planned), and filtering by customer party.

External Invoice Number

  • Financial items can now store an external invoice number for invoices managed outside the system. Visible in the financial items sheet and detail form.

Location Assigned Region

  • Locations can now have a manually assigned region, independent of the auto-detected address region.

AB Number on Parties

  • Parties can now store an external AB Number reference, which also appears on generated invoice documents.

Financial Items Grid Improvements

  • Redesigned columns with voyage reference info, scope/status filters, improved status chips, and richer search.

Invoices List Improvements

  • The party column now contextually shows "Customer" or "Supplier" depending on direction. Search text persists in the URL. Self-billing invoices are labelled.

Expanded File Upload Support

  • Financial document upload now accepts Excel (.xls, .xlsx) and CSV files in addition to PDF.

Prices Table Enhancements

  • New columns for Scope, Quantity config, and Project. Delete added for price versions.

Fixes

  • Fixed self-billing credit notes and invoices being sent with the wrong Peppol document type and recipient. Empty invoice lines are now correctly excluded from credit notes.
  • Fixed invoice detail page not showing a proper loading state or clear error message when an invoice cannot be found.
  • Fixed bill of lading weight changes not correctly triggering financial item recalculation for per-tonne freight.
  • Fixed vessel certificate form fields (name, type, start date, validity period) being incorrectly required; only certificate number and end date are now mandatory.
  • Fixed GMP/OVOCOM certificate matching to also match by certificate name and correctly check expiry dates.
  • Fixed invoice link icon in the financial items sheet not showing when the linked invoice has no number yet.

Other

  • Upgraded Recharts from v2 to v3.
  • Insights calculations now use financial item fields instead of legacy voyage cost fields, improving accuracy and consistency.
  • Invoice template now renders external reference fields (e.g. AB Number) for both buyer and seller.
  • Booking note template now includes GMP/OVOCOM certificate information.
  • Voyage info used for invoice generation now includes nomination key and SPO number.

Release 23

13.02.2026 Release

Features

Financial Inbox & Email Processing

  • Upload and process financial documents via AI-powered email inbox, with support for multi-invoice emails, duplicate detection via fingerprinting, and attachment linking back to specific emails.
  • Configure custom posted-at dates when posting financial inbox items, with improved filtering and focus options.
  • Configurable company name in no-reply email sender addresses per tenant preference.

Invoicing

  • Recurring invoices: full CRUD, configurable invoice lines/prices, subject templates, support for shift-priced operations with overtime hours, mixed grouping, and threshold to deficit calculation.
  • Enforce unique invoice numbers per type/direction/seller, with optional issue date limits and chronological ordering.
  • Allow creation of draft invoices without a number, while barring send/approval until one is assigned.
  • Page numbers on HTML-to-PDF invoice documents.
  • API endpoints to list and get invoices.

Voyage & Operations

  • Set voyage operator with automatic 1 vs 2 financial sheet display based on whether operator differs from customer.
  • Store voyage customer remarks (displayed on booking note).
  • Store charter actual delivery timestamps and flag vessel schedule events as off-hire.
  • Configure time charter duration properties for contracts and their vessels.
  • Semi-hidden edit for terminal operation file number in operation details.

Pricing

  • Price quantity formula support with threshold quantities.
  • Improved prices and price versions data model.

Mobile

  • Location tracking and update to Expo 54. (Limited availability)

Dashboard

  • Redesigned dashboard overview widgets.

Fixes

  • Fixed Peppol sending errors being opaque, negative amounts being rejected, and credit notes being mishandled for total-only lines.
  • Fixed approved/Peppol inbox documents being deletable when they shouldn't be, and approved filter incorrectly showing posted/paid items.
  • Fixed invoices sent via Peppol not being locked from editing/deletion.
  • Fixed received Peppol credit notes not correctly capturing CN number and original reference.
  • Fixed invoice lines: rounding showing wrong subtotal while editing, noisy inputs, and dropdowns not showing enough info.
  • Fixed non-memoized invoice hooks causing endless renders and crashes.
  • Fixed suggested invoice number not being tenant-party specific.
  • Fixed formatNumber occasional misformatting.
  • Fixed demurrage calculator crashing on cause selection and being prone to indefinite renders.
  • Fixed voyage demurrage terms copy to customer not visually reflected before saving.
  • Fixed financial inbox filters being forgotten on navigation.
  • Fixed invalid date validation in request form.
  • Fixed email processing: skip image/tiff attachments, handle progressive JPEGs, prune duplicates, and resolve invalid MIME type errors in AI API.
  • Fixed webhook secret not being verified in terminal operation process endpoint.
  • Fixed Mantine NumberInput onChange value processing issues.
  • Fixed unsafe country flag access and miscellaneous minor warnings.
  • Fixed route operation stop missing variable imports.
  • Fixed tab navigation not moving row-by-row left-to-right (switched to table-based layout).
  • Fixed supplier reference not displayed on invoice document.
  • Fixed manual Peppol ID input not working.

Other

  • Adopted edge_post for more concise and secure database-to-edge function executions.
  • Improved processTerminalOperation with tenant filtering, correct grouping prefill, and refined recurring invoice logic.
  • Reduced unnecessary UI renders across invoice and financial components.
  • Improved email service process endpoint logging.
  • Re-enabled production build minification.
  • Various visual refinements to overview pages, sidebar, financial items, and invoice templates.
  • Corrected FR charter party terms T&C.
  • Import Supabase JS from npm instead of esm.sh to reduce availability issues.

Release 21

11.12.2025 Release

Features

Financial & Invoicing

  • Financial Inbox: Introduced a financial inbox to view and record received Peppol documents directly in the database.
  • Peppol Integration: Added dedicated Peppol configuration for parties with validation support.
  • Invoice Attachments: Added ability to manage attachments on invoices, send them via Peppol, and preview incoming invoice PDF attachments.
  • Invoice Management: Implemented the ability to clone invoices and preview invoices before finalizing.

Voyage & Operations

  • Route Operations: Redesigned the route operations interface, featuring a new section for terminal operation timestamps.
  • Waterlevels: Added a map view for waterlevels with an optimized fetching strategy.

API & Integrations

  • Webhooks: Implemented webhook support for external integrations.
  • Endpoints: Expanded API support to list, get, and update voyages and financial items.

Fixes

  • Fixed Peppol attachments not being included when sending invoices.
  • Fixed invalid processing of 0% tax rates during Peppol transmission.
  • Fixed incorrect validation for Belgian (BE) VAT numbers.
  • Fixed voyage details being prefilled too eagerly when creating a new invoice.
  • Fixed validation errors and display regressions in the redesigned route operations view.
  • Fixed invalid primaryColor themes in tenant configurations.

Other

  • Reduced unnecessary rendering and fetching to improve performance within the voyage form.
  • Added an activity overview to the admin application.
  • Moved order export endpoints and improved tracking service typings.
  • Added French and German Charter Party templates and included a booking note under templates.
  • Added support for tenant logo links and enabled tenant configuration usage across all tenants.
  • Updated OpenAPI specifications to include integrations and resolved scalar errors.
  • Hardened Peppol endpoints for more robust access control.

Release 20

26.11.2025 Release

Features

Financial & Invoicing

  • Added support for sending invoices via Peppol.
  • Implemented multi-currency support within the financial module.
  • Added ability to create credit notes directly from invoices and auto-generate numbers based on the last known record.
  • Introduced management for financial items, item types, posting rules, and budgets under projects. Added ability to edit financial items and apply them to both sides of a voyage.
  • Enabled manual addition of expenditure invoices and credit notes, and the ability to invoice one or more voyages.
  • Reworked invoice templates, including support for multilingual invoices, payment details, and drag-and-drop line reordering.
  • Added a financial view for voyages (default combined view) and expense vs. income breakdown per project.
  • Added a mock flow for invoicing terminal operations.

Voyage & Operations

  • Added new vessel statistics features.
  • Added ability to attach a Project ID to a voyage.
  • Added creatable cargo type inputs and the ability to inspect events.
  • Allowed document uploads under specific operations.
  • Updated voyage map to show routes even when timeframe information is missing.
  • Added seconds display to event timestamps.

Other Features

  • Added ability to view party details directly from the party input field.
  • Added support for managing metadata on financial items.

Fixes

Voyage & Operations

  • Fixed a crash when attaching a pre-existing captain with a code.
  • Fixed an issue where financial items disappeared when linking a voyage to a project.
  • Fixed the inability to deselect all parties/vessels in voyage insights.
  • Fixed an issue where voyage timeline updates disappeared from the user view.
  • Fixed duplicate trigger invocations on existing voyage upserts.
  • Fixed synchronization issues between voyage data and cache flushing.
  • Fixed an issue where modifying demurrage details depopulated the voyage form.
  • Fixed validation problems with contract inputs.
  • Fixed "Select All" functionality not respecting active filters.

Financial & Invoicing

  • Fixed account code duplication issues across tenants.
  • Fixed calculation errors where invoice lines with no tax resulted in no total calculation.
  • Fixed correct handling of negative invoice lines.
  • Fixed VAT inheritance issues on financial items and prevented deletion of non-draft invoices.
  • Fixed misrepresented VAT numbers on invoice templates.
  • Fixed data inheritance and formatting inconsistencies in the invoice module.
  • Fixed issues where customer party and voyage references were not filling in on invoices.
  • Fixed voyage cost cache updates after adding new extra costs.
  • Fixed financial flow synchronization issues.

General

  • Fixed Cloudmailin gasoil tenant matching to rely on slug instead of name.
  • Fixed missing properties in the barging solutions service definition.
  • Fixed dashboard navigation issues.
  • Fixed missing fullcalendar package dependency.
  • Fixed API options preflight rejection.

Other

Documentation

  • Revised dashboard documentation to maintain a professional tone.
  • Added comprehensive documentation for the Voyage Planning module.
  • Added developer documentation on release procedures.

User Interface & UX

  • Adjusted invoice line precision to 3 decimals.
  • Configured financial sheet items to open on row press.
  • Improved sidebar visibility and navigation for the voyage module.
  • Resolved dark mode inconsistencies.
  • Improved dashboard and topbar UI design.
  • Clarified "unsaved changes" UX on voyage forms.

Chore & Refactor

  • Purged deprecated financial-service elements and stale voyage inspection features.
  • Refactored voyage insights visuals.
  • Improved environment switching flow for the mobile app.

Release 19

10.10.2025 Release

Features

Voyages & Tracking

  • Vessel Track Playback Controls: Users can now adjust playback speed and direction when reviewing historical vessel movements, enhancing voyage analysis.
  • Improved Voyage Details (Partner Portal): Voyage display now separates loading and discharge stops, with clearer layout and navigation icons.
  • Track Voyage Button: Completed partner requests now include a "Track Voyage" button, improving visibility into voyage progress.
  • Conditional Navigation: Partner proposal details intelligently adjust navigation for completed requests, preventing dead-end flows.

API & Integrations

  • Master Data Endpoints: New API routes for core master data (e.g., parties, vessels, products, etc.), allowing external integrations to query up-to-date datasets.
  • Token Management: Added dedicated API tokens view for self-service token lifecycle management.
  • Reference: Published OpenAPI 3.0 compatible spec on Scalar portal for easy onboarding.
  • DB Tokens & API Identity: Added user_id for token-based permission inheritance.

Help & Documentation

  • Help Portal Expansion: New help portal structure with sidebar guides and improved visuals across module introductions.
  • Mobile App Development Docs: Expanded documentation covering environment configuration and NativeWind setup.

Fixes

Financials

  • Fixed base freight cost formula missing in financial sheets.
  • Fixed missing stop type display in voyage financial demurrage rows.
  • Fixed dashboard not loading correctly when no orders are present.

Voyages

  • Fixed voyage details not filled in when viewing voyage after creation.
  • Fixed planned transferred weight prefill issue when two loadings existed.
  • Fixed API edge case where a missing location caused route operation failure.
  • Fixed mobile voyage stops not loading in correct sequence for captains.
  • Fixed infinite loading loop on vessel details when vessel selection was null.
  • Fixed seed data allowing null profile names in DB migration.

Other

  • Centralized tenant configuration logic using new getUseTenantConfig() utility, simplifying tenant-aware UI logic across layouts and sidebars.
  • Refactored VoyageDocuments component to use VoyageStopWithOperation type, improving data structure clarity and stop sorting.
  • Reorganized API service resource endpoints for clearer separation and maintainability.
  • Enhanced role permission feedback with alert UI for administrators.

Release 18

25.09.2025 Release

Features

Contracts

  • Mark contracts as Signed with clear status badges (ACTIVE, EXPIRED, SENT, PENDING) and inline alert + action to mark signed.
  • Improved ContractInput details (header, grouped effective dates + hire rate, emphasized key data).
  • Charter-party terms UI refined; fixed visibility so relevant contracts appear for vessels and parties.
  • Entity-based file organization for contracts; uploaded files stored under the contract's entity folder.
  • Zod validation added to contract form; multi-vessel selection via VesselsMultiInput.
  • Contract service endpoints refactored with centralized error handling and more informative errors.

Voyages

  • Nomination date added end-to-end: DB column + migration, types, query hooks, initial values, and DateInput in forms.
  • Share Voyage: send to captain by short ID (6-char max, validation, success/error feedback).
  • Mobile voyage cards show cargo type yearly ID as badge; detail views pick the best timestamp per stop; numbers formatted for weights.
  • Voyage stops: display arrival at waiting area (UI + translations).
  • Captain inputs: show recent captains per vessel, grouped "Recently used / Other", display short IDs, improved fetching via API.

Incidents

  • File attachments for voyage incidents: upload, list, download, remove with size formatting and notifications.
  • Storage paths include incident ID; incident entity auto-created via trigger + FK to entities.
  • Timeline components refactored with forward refs to work with accordions; incident event shows attachment count.

Documents & Templates

  • Universal Booking Note template with tenant branding (logo_url, tenant config) and safer tenant access in transforms.
  • Document upload pipeline supports useEntityIdInPath for dynamic paths; HTML preview closes on click outside.
  • Mobile: show only documents shared with/by captain.

Tracking

  • Historical replay of vessel movements with export of tracking history.
  • When multiple sources present, pick most recent position.
  • Ignore empty track positions to avoid bad traces.
  • Responsive sidebar & mobile nav: collapsible categories, tenant-specific colors/logos/shades, active-state logic, terminal/vessel selectors in drawer.
  • MobileHeader introduced; MobileNavDrawer in main layout; multiple screens re-flowed with Mantine Flex/Box and unified media queries.
  • Voyage form/map layout: fixed map height, route-operations map scaling corrected; core flows viable on mobile.

Comments

  • Comments Drawer/section added across Voyage, Request, and Master Data details; ordering tuned to show comments before events where relevant.

Data Grids

  • Alphabetical comparator for nested fields (e.g., vessel.name) across grids; integrated via utility + cellRendererParams.

Branding / Tenant Config

  • Tenants table extended with logo_url and config; used in templates, terminal-operation transforms, and UI header.

Improvements

  • Contract UI polish across components; clearer charter-party terms.
  • Voyage detail/layout simplifications; header buttons consolidated (Events, Share).
  • Person-in-Charge input now autocomplete with DB-backed profiles and deduped dataset.
  • Vessel pages: filter by dimensions + user-selectable extra columns.
  • Developer experience: global Supabase headers in dev to skip ngrok warning; media-query constants added; many lint/format cleanups.

Fixes

Financials

  • Fixed transport invoice not including demurrage and water-level cost.
  • Fixed freight cost summary not including per-stop demurrage; demurrage now shown per stop in voyage financials.

Contracts

  • Fixed contracts not visible in charter-party terms (vessel/party views).
  • Fixed contract inputs not showing selected value and not allowing deselect.

Documents

  • Fixed documents added to a draft voyage not appearing after publish; fixed "shared by captain" display logic under RLS.
  • Fixed URI placeholder replacement to be more generic; removed stray logo placeholders.

Tracking & Regions

  • Fixed empty position filtering; corrected misdefined region polylines; restored region manager modal missing functionality.

UI / Grids

  • Fixed vessels grid extra columns not hidden as intended; fixed overflow + missing React key warnings.
  • Fixed voyage financial tabs overflow; resolved multiple minor visual issues.
  • Fixed header min-width causing layout squeeze.

Data & Forms

  • Replaced country code fields with CountrySelect to avoid user errors; map on Create Location updates with Mapbox address pick.
  • Stabilized E2E tests (country code handling, invitation counts).
  • Fixed vessel validation compartments count schema issue.
  • Eliminated duplicate "person in charge" dataset entries.

CORS / Networking

  • Added ngrok-skip-browser-warning to allowed headers; resolved ngrok header-related CORS issue.

Other

  • Error handling standardization across services (documents, contracts, onboarding, partners, tracking, insights, financials, email, data-feed, mobile). Introduced ErrorHandler utility, DpFunctionError type, clearer context-rich messages, consistent response formatting, and improved logging.
  • Sentry integrated in mobile app; OTA deployment guides added; EAS update scripts for test/staging/prod.
  • MGO gasoil price fetch: corrected request headers (removed problematic Content-Type, added UA/Accept).
  • Dropzone 10 MB limit; react-mapbox-gl updated to v8.
  • Database migrations: voyages.nomination_date, incidents-entities FK + trigger, additional vessel spec columns.
  • Seeds updated for tenant branding and Booking Note template.