All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
- Track the inspection API's renamed submission answers:
answerswith afieldper entry, replacingcustom_field_valueswithcustom_field. Both older spellings are still accepted by the API, and the SDK forwards whichever is given without rewriting it.
1.4.0 - 2026-09-12
- Inspection Forms and Inspections services, including form reads, typed-answer submission, inspection retrieval/listing, and vehicle inspection history.
- Caller-supplied idempotency headers and direct-array inspection examples, with compatibility preserved against 1.3.0 and earlier baselines.
- Updated the locked Postman inventory to all 270 requests and the disposable contract seed to include published inspection forms.
- Test the explicitly locked Fleet-Ops implementation using the canonical package-overlay, migration, cache-clear, and worker-reload sequence before fixture seeding.
1.3.0 - 2026-09-10
- First-class Trailers service and resource, covering creation, retrieval, queries, updates, deletion, tracking, vehicle attachment and detachment, and connection history.
vehicles->listVehicleTrailers()and EquipmentattachEquipment()/detachEquipment()actions.
- Updated the locked Postman contract and executable PHP catalog from 241 to 264 requests, including all trailer and equipment scenarios.
- Trailer scenarios reuse the canonical Device and Equipment methods; vehicle trailer listings belong to VehicleService.
- Updated the disposable Fleetbase stack and package pins to include the Trailers API.
- Contract tests now use canonical placeholder names for legacy envelopes when scenario URLs spell the same identifier differently.
- Restored the complete PHP example catalog required by the website's Postman submodule update.
- Pinned the validated Xdebug coverage driver and retried delayed GitHub merge metadata so release validation and automatic release detection remain reliable.
1.2.0 - 2026-09-06
- Fleet membership methods for the endpoints Fleet-Ops added in the public Fleet resource expansion:
assignDriverToFleet,assignVehicleToFleet,removeDriverFromFleet, andremoveVehicleFromFleet.
- Synced the locked contract to Postman
9b59bef, which grows the collection from 220 to 241 requests. - Contract requests that exercise a scenario on an existing endpoint now resolve to that endpoint's method instead of generating one of their own. A request such as
Create an Order with Empty RelationshipsdocumentscreateOrder, andExpand a VehicledocumentsretrieveVehiclewith itswithparameter, rather than adding a method that only a contract test would ever call.
- Repeated query parameters are no longer collapsed to their last value when the contract manifest is generated, so
?with[]=vendor&with[]=driverkeeps both values. - A request that inlines its query string in
urlno longer records that query twice.
1.1.2 - 2026-09-03
- Added positional path identifiers and direct body, query, and multipart arrays to all 220 generated methods while preserving the complete published 1.1.0 envelope and named-argument surface.
- Updated the generated catalog and public examples to hide internal transport envelopes and execute the documented ergonomic calls.
1.1.1 - 2026-09-03
- Disposable-stack CI that executes all 220 locked Postman requests through their exact PHP SDK methods.
- Automatic validation and publication when a semantic
release/branch is merged intomain. - A machine-readable PHP example catalog keyed by stable Postman request IDs for the public API reference.
- Normalized order dispatch calls so
dispatch($orderId),dispatchOrder($orderId), and the legacy parameter-array form use the same officialPATCHendpoint. - Corrected the order destination action to use the HTTP verb defined by the official API contract.
1.1.0 - 2026-08-31
- PHP 8.0 through 8.5 compatibility and PSR-18/PSR-7 transport injection.
- Typed SDK exception hierarchy, defensive list-response hydration, deterministic contract/API snapshots, hermetic tests, and modern repository guidance.
- Relicensed unreleased 1.1.0 code to
AGPL-3.0-or-later; released 1.0.x tags remain MIT licensed. - Preserved the 1.0.x facade while rebuilding request, response, resource, and service internals.
- Modernized Composer dependencies and development tooling.
- Tracked Composer dependencies under
vendor/and reliance on.env.testfor unit tests.
- Empty API keys are rejected.
setApiKey()retains host, namespace, version, debug, and injected transport configuration.- Tracking-status resources resolve with the correct spelling.
- Legacy resource lifecycle hooks execute in the documented order and retain caller options.
- Order services can access the transport, and QR/signature subject paths are generated correctly.
- HTTP status, malformed JSON, empty body, transport, and Fleetbase error responses are handled consistently without leaking credentials.
1.0.3 - 2022-05-25
- Additional order resource actions.
1.0.2 - 2022-01-03
- Latest baseline whose public API is explicitly preserved by 1.1.0.