Skip to content

Commit 03d6dc0

Browse files
danh91HansDaigleAnsh-Dev-Nagar
authored
[patch] 2026.1.12 (#969)
* docs: add Return Shipment API PRD and rename bundled returns PRD Rename RETURNS_SUPPORT.md to SHIPPING_RETURN_LABEL_SUPPORT.md to clarify its scope (return labels bundled with outbound shipment creation). Add new RETURN_SHIPMENT_API.md PRD for standalone return label creation with is_return flag, dedicated Mapper/Proxy methods, and address auto-swap. * feat: add return shipment support to SDK core - add is_return flag to ShipmentRequest model - add create_return_shipment flow to interface with address auto-swap - add return shipment mapper and proxy abstract methods - add SDK-level return shipment unit test * feat: add return shipment support to server layer - add is_return field to Shipment model with migration - update serializers and datatypes for return shipment flow - add return shipment filtering support - update GraphQL types and inputs for return shipment data - add server-level return shipment tests * feat: add return shipment scaffolding to CLI templates * feat: add return shipment fields to TypeScript GraphQL types * feat: add return shipment support for DHL Parcel DE - implement standalone return via /returns/v1/orders API - add returns_request and returns_response schemas - add return_shipment provider with request/response handling - register mapper and proxy methods for return shipment flow - add return shipment tests with request/response fixtures * feat: add return shipment support for Canada Post - implement standalone return via /authorizedreturn API - add return_shipment provider with authreturn-v2 XML schema - register mapper and proxy methods for return shipment flow - add return shipment tests with request/response/error fixtures * feat: add return shipment support for UPS - implement return wrapper delegating to shipment API with ReturnService - default to ups_return_3_attempt (code 5) when no return type specified - register mapper and proxy methods for return shipment flow - add return shipment tests with request/response fixtures * feat: add return shipment support for FedEx - implement return wrapper delegating to shipment API with returnShipmentDetail - force PRINT_RETURN_LABEL return type via fedex_return_shipment option - register mapper and proxy methods for return shipment flow - add return shipment tests with request/response fixtures * feat: add return shipment support for USPS - implement return wrapper delegating to label API with returnLabel=true - add usps_return_receipt to CUSTOM_OPTIONS to prevent duplicate extra service - fix option name resolution bug in shipment request builder - register mapper and proxy methods for return shipment flow - add return shipment tests with request/response fixtures * fix: resolve mypy variable redefinition errors in return shipment interface * fix: add is_return field to server test fixtures * feat: add return shipment support for Asendia * feat: add return shipment support for Australia Post * feat: add return shipment support for bpost * feat: add return shipment support for DHL Express * feat: add return shipment support for DHL Poland * feat: add return shipment support for DPD Meta * feat: add return shipment support for GLS * feat: add return shipment support for Hermes * feat: add return shipment support for Landmark Global * feat: add return shipment support for MyDHL * feat: add return shipment support for Purolator * feat: add return shipment support for Spring * feat: add return shipment support for USPS International * docs: add Karrio MCP Server PRD * fix: add missing Info type annotations for strawberry GraphQL resolvers * fix: add missing Info type annotations for admin and graph utility resolvers * fix: add missing Info type annotations for insiders and platform GraphQL resolvers * feat: add X-Request-ID middleware and propagation to all operations * feat: add request_id filters and keyword search support * feat: expose request_id as first-class GraphQL field and filter * test: add request_id tests and update test fixtures * feat: update schemas and TypeScript types for request_id * feat: display request_id in entity detail views and devtools * chore: clean up tests and code to match AGENTS.md conventions * docs: add X-Request-ID implementation PRD * chore: update ee/platform submodule for request_id schema * chore: update generated files and add pricing migration * fix(canadapost): use recipient country for international rating (#968) * fix(canadapost): use recipient country for international rating * test(canadapost): use generic dummy data for intl country-code regression * docs(canadapost): clarify format_ca_postal_code normalization * fix(landmark): add User-Agent header to all Landmark API requests Landmark's API rejects requests without a User-Agent header, returning "invalid username/password" errors. This was silently breaking all background tracking fetches, shipment creation, and cancellation calls. * feat: bootstrap SmartKargo carrier extension * feat: add SmartKargo API schemas * feat: generate Python data classes from schemas * feat: add carrier units, settings, and connection utilities * feat: implement API proxy and error handling * feat: implement SmartKargo rate/quotation API * feat: implement SmartKargo shipment creation * feat: implement SmartKargo tracking and error handling * fix: align SmartKargo rate and shipment with standard Karrio patterns * feat: implement shipment cancellation * feat: fix SmartKargo quotation API endpoint and required issueDate field * test: update tests with API responses * fix: correct label API format parameter and test imports * feat: add vendor folder with API documentation * fix: align shipment void with OpenAPI specification * fix: add uuid fallback for required reference field & add issueDate fallback * feat: make account_number and account_id required fields * fix: default to EST service type when none specified in SmartKargo rate requests * fix: unwrap array-wrapped SmartKargo booking response and fix ratesheets key access in dataunits * fix: simplify SmartKargo proxy to use labelUrl from booking response * feat: switch SmartKargo rate and shipment to per-package request pattern * fix: fix multi-piece cancel and move proxy helpers to utils * test: update SmartKargo tests to FAQ-standard assertListEqual pattern * chore: merge SmartKargo integration and Canada Post intl fix with cleanup - Merge PR #956 (SmartKargo carrier integration) and PR #968 (Canada Post intl rating fix) - Fix bare Exception catch in utils.py to use specific (ValueError, TypeError) - Enable services/options in plugin metadata (were commented out) - Add website and status fields to plugin metadata - Remove duplicate TrackingIncidentReason mapping - Clean up trailing whitespace in mapper.py * docs: update CHANGELOG for 2026.1.12 release * chore: add smartkargo to SDK and build requirements * chore: update generated files and add SmartKargo to order shipments query Add request_id and selected_rate_carrier to GET_ORDERS shipments sub-query and regenerate all types to fix dashboard build. * docs: add no-auto-commit and no-AI-co-author rules to AGENTS.md * fix: bulk tracker webhook notifications, landmark proxy cleanup, and changelog update - Dispatch webhook notifications for trackers changed via bulk_update - Remove hardcoded User-Agent headers from Landmark proxy requests - Add smartkargo carrier image mapping to base.ts - Update CHANGELOG for 2026.1.12 release * feat: enhance health view task breakdown with detailed execution table - Increase task executions query from 100 to 1000 - Add expandable task rows showing individual executions - Show status, queued time, duration, retries, and error details - Add status filter tabs (all/complete/error/executing) - Display last run time and avg duration per task name * fix: use full datetime format in tracing view to match events view * release: 2026.1.12 --------- Co-authored-by: Hans Daigle <HansDaigle@users.noreply.github.com> Co-authored-by: Ansh Dev Nagar <anshdevnagar@gmail.com>
1 parent 162cba8 commit 03d6dc0

302 files changed

Lines changed: 18008 additions & 528 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

AGENTS.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -609,6 +609,8 @@ try {
609609

610610
## Commit & Pull Request Guidelines
611611

612+
- **Never commit without explicit user permission** — always ask before creating a commit
613+
- **Never add AI co-author lines** (e.g., `Co-Authored-By: Claude ...`) to commit messages
612614
- Format: `type: summary` (e.g., `fix:`, `feat:`, `chore:`)
613615
- Reference issues: `refs #123` or `fixes #123`
614616
- Keep commits focused and atomic

CHANGELOG.md

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,38 @@
1+
# Karrio 2026.1.12
2+
3+
## Changes
4+
5+
### Feat
6+
7+
- feat: add SmartKargo carrier integration (rating, shipment, tracking, labels)
8+
- feat: add return shipment support to SDK core and server layer
9+
- feat: add return shipment support for UPS, FedEx, Canada Post, DHL Express, DHL Parcel DE, USPS, and more
10+
- feat: add return shipment fields to TypeScript GraphQL types
11+
- feat: add X-Request-ID middleware and propagation to all operations
12+
- feat: expose request_id as first-class GraphQL field and filter
13+
- feat: display request_id in entity detail views and devtools
14+
15+
### Fix
16+
17+
- fix(canadapost): use recipient country code for international rating
18+
- fix(landmark): remove hardcoded User-Agent headers from proxy requests
19+
- fix: add missing Info type annotations for strawberry GraphQL resolvers
20+
- fix: dispatch webhook notifications for bulk-updated trackers
21+
22+
### Chore
23+
24+
- chore: update generated files and add pricing migration
25+
- chore: clean up tests and code to match AGENTS.md conventions
26+
- chore: add smartkargo carrier image mapping
27+
28+
### Docs
29+
30+
- docs: add X-Request-ID implementation PRD
31+
- docs: add Return Shipment API PRD
32+
- docs: add Karrio MCP Server PRD
33+
34+
---
35+
136
# Karrio 2026.1.11
237

338
## Changes
@@ -22,7 +57,7 @@
2257
- fix: show exact page counts instead of "of many" in devtools pagination
2358
- fix: resolve duplicate TaskExecution records causing stuck executing status
2459
- fix: use icontains for meta and metadata value filters on markups
25-
- fix: port rate sheet editor layout improvements and bug fixes
60+
- fix: port rate sheet editor layout improvements and bug fixes
2661

2762
### Perf
2863

PRDs/KARRIO_MCP_SERVER.md

Lines changed: 1099 additions & 0 deletions
Large diffs are not rendered by default.

PRDs/RETURN_SHIPMENT_API.md

Lines changed: 1148 additions & 0 deletions
Large diffs are not rendered by default.
File renamed without changes.

PRDs/X_REQUEST_ID_IMPLEMENTATION.md

Lines changed: 1021 additions & 0 deletions
Large diffs are not rendered by default.

apps/api/karrio/server/VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
2026.1.11
1+
2026.1.12

apps/api/karrio/server/settings/base.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -297,6 +297,7 @@
297297
"corsheaders.middleware.CorsMiddleware",
298298
"django.middleware.common.CommonMiddleware",
299299
"django.middleware.csrf.CsrfViewMiddleware",
300+
"karrio.server.core.middleware.RequestIDMiddleware",
300301
"karrio.server.core.authentication.AuthenticationMiddleware",
301302
"karrio.server.core.authentication.TwoFactorAuthenticationMiddleware",
302303
"django.contrib.messages.middleware.MessageMiddleware",

apps/dashboard/next-env.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/// <reference types="next" />
22
/// <reference types="next/image-types/global" />
3-
import "./.next/types/routes.d.ts";
3+
import "./.next/dev/types/routes.d.ts";
44

55
// NOTE: This file should not be edited
66
// see https://nextjs.org/docs/app/api-reference/config/typescript for more information.
Lines changed: 26 additions & 0 deletions
Loading

0 commit comments

Comments
 (0)