Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
5474 commits
Select commit Hold shift + click to select a range
cbb30a6
fix: revert mapper.py to follow standard template pattern
claude Nov 5, 2025
8feecf6
feat: add rating schemas and generate Python classes
Ansh-Dev-Nagar Dec 6, 2025
1ff8fb0
feat: add weight and dimension unit enums
Ansh-Dev-Nagar Dec 6, 2025
69eee4d
feat: add rating and cancellation proxy methods to dpd_group
Ansh-Dev-Nagar Dec 7, 2025
5caad13
feat: add rate provider for dpd_group
Ansh-Dev-Nagar Dec 7, 2025
0d6e66b
feat: add shipment cancellation provider for dpd_group
Ansh-Dev-Nagar Dec 7, 2025
313f540
feat: wire up rating and cancellation for dpd_group
Ansh-Dev-Nagar Dec 7, 2025
a9a97e8
test: add rating tests for dpd_group
Ansh-Dev-Nagar Dec 7, 2025
766b020
test: add cancellation tests to dpd_group
Ansh-Dev-Nagar Dec 7, 2025
50adff3
test: fix error response test data for dpd_group
Ansh-Dev-Nagar Dec 7, 2025
39fcb11
fix: remove incorrect karrio/__init__.py breaking dpd_group plugin re…
Ansh-Dev-Nagar Dec 8, 2025
476c128
refactor: remove old DPD Group API v1.1 implementation to restart wit…
Ansh-Dev-Nagar Dec 11, 2025
642b4c4
feat: bootstrap DPD Group carrier extension with shipping and pickup …
Ansh-Dev-Nagar Dec 11, 2025
5cad204
refactor: remove unsupported DPD META-API features
Ansh-Dev-Nagar Dec 11, 2025
a8b6f06
feat: add DPD META-API schema files from official documentation
Ansh-Dev-Nagar Dec 11, 2025
017c747
chore: configure schema generation for DPD camelCase API
Ansh-Dev-Nagar Dec 11, 2025
c5222f0
feat: generate Python schema classes for DPD META-API
Ansh-Dev-Nagar Dec 11, 2025
56b2442
feat: configure connection settings and service units
Ansh-Dev-Nagar Dec 11, 2025
c7296e1
feat: implement DPD META-API HTTP proxy
Ansh-Dev-Nagar Dec 11, 2025
0f64d3b
feat: implement provider logic
Ansh-Dev-Nagar Dec 11, 2025
6f2daeb
test: add comprehensive tests for DPD META-API integration
Ansh-Dev-Nagar Dec 11, 2025
f6cc4c1
fix: correct provider imports and enable plugin metadata
Ansh-Dev-Nagar Dec 11, 2025
97c4ed6
feat: add rate sheet service definitions
Ansh-Dev-Nagar Dec 15, 2025
241d2e2
feat: add CSV loader for rate sheet services
Ansh-Dev-Nagar Dec 15, 2025
39cb4e7
feat: add rating methods using universal provider
Ansh-Dev-Nagar Dec 15, 2025
75d1cfb
feat: add rating proxy mixin for rate sheets
Ansh-Dev-Nagar Dec 15, 2025
3de41f9
feat: register service levels in plugin metadata
Ansh-Dev-Nagar Dec 15, 2025
07785f8
feat: add RatingMixinSettings inheritance to mapper settings.py
Ansh-Dev-Nagar Dec 15, 2025
c935ad2
fix: implement Bearer token authentication with caching
Ansh-Dev-Nagar Dec 15, 2025
a99511e
fix: resolve DPD Group authentication and shipment creation issues
Ansh-Dev-Nagar Dec 15, 2025
b231705
refactor: standardize DPD Group authentication to use Proxy.authentic…
Ansh-Dev-Nagar Dec 16, 2025
2968b6b
refactor: use serializer context to pass label_format parameter
Ansh-Dev-Nagar Dec 16, 2025
07aa2ef
refactor: remove unnecessary defensive checks in shipment response pa…
Ansh-Dev-Nagar Dec 16, 2025
465e050
refactor: remove defensive .strip() calls -assume clean input
Ansh-Dev-Nagar Dec 16, 2025
de9bad9
refactor: rename account_number to customer_id and make it required
Ansh-Dev-Nagar Dec 16, 2025
2a45166
refactor: update account_number to customer_id in mappers settings too
Ansh-Dev-Nagar Dec 17, 2025
649be38
fix: convert numeric fields to strings for DPD API compatibility
Ansh-Dev-Nagar Dec 17, 2025
d8e05a3
feat: enhance error handling with code prefixes and debugList parsing
Ansh-Dev-Nagar Dec 17, 2025
e8ca02b
feat: add DPD Group carrier to auto-install requirements
Ansh-Dev-Nagar Dec 19, 2025
be1c062
Merge pull request #901 from karrioapi/claude/add-dpd-group-integrati…
danh91 Dec 24, 2025
211229b
feat: bootstrap Hermes carrier extension scaffold
Ansh-Dev-Nagar Dec 26, 2025
08c42a0
feat: add Hermes API JSON schema definitions
Ansh-Dev-Nagar Dec 26, 2025
ed29873
feat: generate Python schema classes from JSON definitions
Ansh-Dev-Nagar Dec 26, 2025
f45bf0a
fix: correct schema types to match OpenAPI specification
Ansh-Dev-Nagar Dec 26, 2025
732f226
feat: implement connection settings and utilities
Ansh-Dev-Nagar Dec 26, 2025
7f37b04
feat: implement provider logic for shipping and pickup
Ansh-Dev-Nagar Dec 28, 2025
1832494
feat: implement provider logic and tests
Ansh-Dev-Nagar Dec 28, 2025
e12d276
fix: align pickup time slots and request handling with OpenAPI spec
Ansh-Dev-Nagar Dec 28, 2025
0e04497
fix: complete plugin metadata with services, options and URLs
Ansh-Dev-Nagar Dec 28, 2025
8780957
fix: consistent address field mapping for sender and receiver
Ansh-Dev-Nagar Dec 28, 2025
048b7fd
chore: remove unused schema files for unsupported API operations
Ansh-Dev-Nagar Dec 28, 2025
20b1324
feat: add rate sheet support for service selection in UI
Ansh-Dev-Nagar Jan 1, 2026
f5b9a25
feat: enable rating capability using universal rate provider
Ansh-Dev-Nagar Jan 1, 2026
626477e
test: add rating tests with service filtering validation
Ansh-Dev-Nagar Jan 1, 2026
1474374
fix: truncate address fields to comply with Hermes API length limits
Ansh-Dev-Nagar Jan 1, 2026
4307bc3
fix: improve error handling and correct label Accept headers
Ansh-Dev-Nagar Jan 1, 2026
f3aa22c
fix: correct test module imports in Hermes tests/__init__.py
Ansh-Dev-Nagar Jan 2, 2026
36c9390
feat: apply ratesheet GraphQL enhancements and the editor
danh91 Jan 2, 2026
b34a3c7
feat: implement pickup for dhl_parcel_de
danh91 Jan 2, 2026
cf3bd15
Merge pull request #927 from karrioapi/integration/hermes
danh91 Jan 2, 2026
a4b48c9
feat: review and cleanup new integrations to match coding standard an…
danh91 Jan 3, 2026
9f4c6fd
feat: introduce carrier integration FAQ for best implementation pract…
danh91 Jan 3, 2026
16e77f5
feat: implement find helper for status and reason mapping retrieval
danh91 Jan 3, 2026
aad42d2
feat: bootstrap and implement karrio parcelone extension
danh91 Jan 3, 2026
3b60793
feat: bootstrap and implement karrio postat extension
danh91 Jan 3, 2026
2faf714
feat: rewrite parcelone integration with latest JSON REST API
danh91 Jan 8, 2026
a38788d
release: 2026.1
danh91 Jan 8, 2026
28e5d00
Merge pull request #930 from karrioapi/karrio-2026.1
danh91 Jan 8, 2026
441e148
chore: move bpost to karrio core maintained connectors
danh91 Jan 8, 2026
26273ac
fix: bellow 3 decimal items weight rouding causing invalid total pack…
danh91 Jan 15, 2026
ed5b0c9
feat: introduce computed estimated_delivery on tracker creation when …
danh91 Jan 15, 2026
de3ca91
fix: affected computed ajusted weight on all integrations
danh91 Jan 15, 2026
24ad617
fix: add missing customs field to RateRequest serializer
jacobshilitz Jan 15, 2026
c2f758d
feat: update rate requests to use exhaustive customs data when provid…
danh91 Jan 15, 2026
8b45e99
feat: add payment as well on rate and update API schemas
danh91 Jan 15, 2026
2801c53
release: 2026.1.1
danh91 Jan 15, 2026
c7acf09
Merge pull request #934 from karrioapi/karrio-patch-2026.1.1
danh91 Jan 15, 2026
393c821
feat: add icons for the new carrier integrations
danh91 Jan 8, 2026
1a276fa
feat: introduce options meta and document category unified enum
danh91 Jan 16, 2026
64c8e2a
PRD: prepare PRD for JSONField migration in favour of multiple relati…
danh91 Jan 16, 2026
474244a
feat: improve address, parcel and products templates + shipment datat…
danh91 Jan 16, 2026
8767813
fix(ups): correct an issue with shipment_origin_* values where destin…
eliottha Jan 18, 2026
f3fd298
fix(fedex): OC Status should not be considered picked up
eliottha Jan 18, 2026
b557e0e
fix(fedex): update TrackingStatus to new format
eliottha Jan 18, 2026
75a809b
chore: remove generated rest API docs
danh91 Jan 20, 2026
5eaa8ab
feat: bootstrap carrier extension structure
Ansh-Dev-Nagar Jan 3, 2026
4e9e599
feat: add API schema files based on Asendia documentation
Ansh-Dev-Nagar Jan 3, 2026
fe65346
feat: generate Python schema classes from JSON schemas
Ansh-Dev-Nagar Jan 4, 2026
0374eab
fix: correct schema types to match Asendia API documentation
Ansh-Dev-Nagar Jan 4, 2026
38a147a
feat: implement connection settings and utilities
Ansh-Dev-Nagar Jan 4, 2026
bda6f60
feat: implement service units with shipping services and options
Ansh-Dev-Nagar Jan 5, 2026
4c27a29
feat: implement API proxy for HTTP communication
Ansh-Dev-Nagar Jan 5, 2026
ef3dc53
feat: implement shipping provider with create and cancel
Ansh-Dev-Nagar Jan 5, 2026
50ec3f2
feat: implement tracking provider with status mapping
Ansh-Dev-Nagar Jan 5, 2026
60bc3cf
feat: implement manifest provider with error handling
Ansh-Dev-Nagar Jan 5, 2026
bbc5ea5
feat: configure plugin metadata with services and options
Ansh-Dev-Nagar Jan 5, 2026
d4989a6
fix: resolve provider implementation issues
Ansh-Dev-Nagar Jan 5, 2026
28fb21a
fix: update test fixtures for Asendia API authentication
Ansh-Dev-Nagar Jan 5, 2026
4e446eb
test: update tests to match Asendia API schema
Ansh-Dev-Nagar Jan 5, 2026
ddf0e97
fix: use --nice-property-names for auth_response schema
Ansh-Dev-Nagar Jan 5, 2026
5bae47f
refactor: add TrackingIncidentReason and enhance tracking events
Ansh-Dev-Nagar Jan 7, 2026
b39a247
fix: use karrio abstraction libs in shipment/create.py
Ansh-Dev-Nagar Jan 7, 2026
4a40d2a
feat: implement per-package request for multi-package shipments
Ansh-Dev-Nagar Jan 7, 2026
c2a2797
fix: enable label bundling for multi-package shipments
Ansh-Dev-Nagar Jan 20, 2026
76ed259
fix: correct tracking status mapping and add helper functions
Ansh-Dev-Nagar Jan 20, 2026
33c8a52
test: add error response tests and print statements for Asendia compl…
Ansh-Dev-Nagar Jan 20, 2026
8149484
feat: products GraphQL API + JSONField in favour of relations
danh91 Jan 20, 2026
975a18a
fix(frontend): add GLS to carrier images
eliottha Jan 20, 2026
feb7e4d
fix(fedex): update signed_by fallback for B2B shipments
eliottha Jan 21, 2026
8f91bdc
refactor: remove duplicate ConnectionConfig from utils.py
Ansh-Dev-Nagar Jan 21, 2026
b65f495
refactor: connections management for better data normalization and op…
danh91 Jan 21, 2026
7eb85f8
feat(orders): add shadcn components and isSheet prop
Ansh-Dev-Nagar Dec 10, 2025
8da3f85
fix(orders): unwrap params Promise for Next.js 15 compatibility
Ansh-Dev-Nagar Dec 10, 2025
dca264a
fix(orders): migrate header to shadcn
Ansh-Dev-Nagar Dec 10, 2025
54333f8
feat(orders): migrate header to shadcn with breadcrumb navigation
Ansh-Dev-Nagar Dec 10, 2025
351e3dd
feat(orders): migrate date and source section
Ansh-Dev-Nagar Dec 10, 2025
f1d1ac3
feat(orders): migrate order details and address sections
Ansh-Dev-Nagar Dec 10, 2025
12deca0
fix(order-menu): prevent crash during order data refetch and show spi…
Ansh-Dev-Nagar Dec 11, 2025
7fe69e2
feat: migrate options section to tailwind
Ansh-Dev-Nagar Jan 4, 2026
9e1a982
feat: migrate billing address section to tailwind
Ansh-Dev-Nagar Jan 4, 2026
be2b064
fix: align ship-to and bill-to text size and add blue color for conta…
Ansh-Dev-Nagar Jan 4, 2026
03860cb
feat: migrate metadata section to EnhancedMetadataEditor
Ansh-Dev-Nagar Jan 4, 2026
101a65c
feat: migrate shipments table to shadcn components
Ansh-Dev-Nagar Jan 4, 2026
0d8df5c
feat: complete order details page migration to tailwind
Ansh-Dev-Nagar Jan 4, 2026
5b3469c
feat: redesign order details with sidebar layout like shipments page
Ansh-Dev-Nagar Jan 4, 2026
244ac98
fix: add outline variant to order menu and improve mobile shipments s…
Ansh-Dev-Nagar Jan 4, 2026
77fcb11
feat: migrate order preview from modal to sheet
Ansh-Dev-Nagar Jan 7, 2026
f60cb23
Merge pull request #937 from karrioapi/Refactor/order-details-shadcn
danh91 Jan 21, 2026
c387bfb
feat: bootstrap Spring carrier extension
Ansh-Dev-Nagar Jan 9, 2026
021d23a
feat: add Spring API JSON schemas based on XBS API documentation
Ansh-Dev-Nagar Jan 9, 2026
b1a3ee8
feat: generate Spring carrier Python dataclasses from JSON schemas
Ansh-Dev-Nagar Jan 9, 2026
84e3508
fix: correct type inference in Spring JSON schemas
Ansh-Dev-Nagar Jan 9, 2026
eb36e1b
feat: implement Spring Settings class with API configuration
Ansh-Dev-Nagar Jan 9, 2026
8098060
feat: add Spring shipping services, options, and tracking status mapp…
Ansh-Dev-Nagar Jan 9, 2026
462bfbe
feat: implement Spring error response parser with ErrorLevel handling
Ansh-Dev-Nagar Jan 10, 2026
12516cc
feat: implement Spring OrderShipment request and response parsing
Ansh-Dev-Nagar Jan 10, 2026
3f93afb
feat: implement Spring proxy with actual API calls for shipment and t…
Ansh-Dev-Nagar Jan 11, 2026
8a780c2
feat: implement Spring VoidShipment for shipment cancellation
Ansh-Dev-Nagar Jan 11, 2026
c14c56a
feat: implement Spring TrackShipment for shipment tracking
Ansh-Dev-Nagar Jan 13, 2026
2b8783a
fix: use generated schema types in Spring cancel.py per guide
Ansh-Dev-Nagar Jan 13, 2026
842f2ea
feat: add comprehensive tests for Spring carrier integration
Ansh-Dev-Nagar Jan 13, 2026
8904fbe
fix: Spring carrier settings, cancel request cleanup, and Products se…
Ansh-Dev-Nagar Jan 13, 2026
5f5c677
fix: update tracking implementation with required event fields and va…
Ansh-Dev-Nagar Jan 13, 2026
9f9ed48
fix: configure Spring plugin metadata with standard pattern
Ansh-Dev-Nagar Jan 13, 2026
1766b6d
feat: add multi-piece shipment support
Ansh-Dev-Nagar Jan 14, 2026
a16be72
fix: use schema types in tracking_request for type safety
Ansh-Dev-Nagar Jan 14, 2026
079ab6d
fix: use lib.join() for location and remove defensive fallbacks
Ansh-Dev-Nagar Jan 14, 2026
09ce6e8
feat: add rating capability using CSV-based services
Ansh-Dev-Nagar Jan 16, 2026
61d6e5a
fix: fix uuid import for shipment reference generation
Ansh-Dev-Nagar Jan 16, 2026
d5a026d
fix: use tracking_number as shipment_identifier for cancel
Ansh-Dev-Nagar Jan 16, 2026
3ea040f
fix: update test fixtures to match shipment_identifier fix
Ansh-Dev-Nagar Jan 17, 2026
f118d2d
build: add Spring connector to requirements files
Ansh-Dev-Nagar Jan 18, 2026
c6d3755
Merge pull request #933 from karrioapi/integration/spring
danh91 Jan 21, 2026
5f10f86
Merge pull request #929 from karrioapi/integration/asendia
danh91 Jan 21, 2026
b14a656
Merge pull request #935 from eliottha/main
danh91 Jan 21, 2026
efe3c49
chore: merge patch-2026.1.2 submodules
danh91 Jan 21, 2026
04421ba
Merge branch 'karrio-patch-2026.1.2' into patch-2026.1.2
danh91 Jan 21, 2026
ff39e88
test: add the tracking tests
danh91 Jan 21, 2026
8c37d80
feat: add event injection API
danh91 Jan 21, 2026
4c93803
fix: addressHouse parsing for dhl_parcel_de
danh91 Jan 22, 2026
2f57b4d
chore: QA + migration integrity + minor fixes for release
danh91 Jan 22, 2026
ab010f7
release: 2026.1.2
danh91 Jan 22, 2026
a5d2621
Merge pull request #938 from karrioapi/karrio-patch-2026.1.2
danh91 Jan 22, 2026
5d847b1
feat: introduce automated release script and gh actionjob
danh91 Jan 22, 2026
5a235be
feat: add multi-piece shipment support
Ansh-Dev-Nagar Jan 22, 2026
e97975f
feat: add missing ratesheet service fields and reconciale migrations
danh91 Jan 22, 2026
8369c2c
feat: add tracking response schema and generated types
Ansh-Dev-Nagar Jan 22, 2026
4e7cc9f
feat: add TrackingStatus and TrackingIncidentReason enums with Hermes…
Ansh-Dev-Nagar Jan 22, 2026
33b95ef
feat: implement tracking functionality with shipment info API
Ansh-Dev-Nagar Jan 22, 2026
7c2c38f
test: add tracking unit tests
Ansh-Dev-Nagar Jan 22, 2026
ee509c3
fix: remove redundant dimension checks and refactor to single tree in…
Ansh-Dev-Nagar Jan 22, 2026
0a68e41
devx: add PRD template and updated AGENTS.md to refer to it for futur…
danh91 Jan 22, 2026
fefa853
feat: restructure dhl_parcel_de billing_number configuration per serv…
danh91 Jan 23, 2026
60fabf5
feat: generate and dump carrier integrations specs in schemas folder
danh91 Jan 23, 2026
63a9c17
refactor: clean up proxy by extracting data processing helpers to utils
Ansh-Dev-Nagar Jan 23, 2026
2a50f58
refactor: use inline headers and clean up comments
Ansh-Dev-Nagar Jan 23, 2026
a176f67
feat: Introduce tax collection service
danh91 Jan 27, 2026
cb9819b
fix: inconsistent address, parcels and products templates GraphQL sig…
danh91 Jan 27, 2026
aed2323
feat: add support for reusable global connection app for dhl_parcel_de
danh91 Jan 27, 2026
40dab87
feat: improve metafield relationship definition and augment all major…
danh91 Jan 28, 2026
fbfb1e4
chore: improve dhl_parcel_de pickup integration with live tests
danh91 Jan 28, 2026
b77de1f
feat: add missing pickup API implementation for REST+Oauth2 UPS integ…
danh91 Jan 28, 2026
8a89f8c
fix: dashboard typing issues causing build regression
danh91 Jan 28, 2026
01787b3
Merge pull request #941 from karrioapi/review/hermes
danh91 Jan 28, 2026
84d426e
feat: migrate dhl_parcel_de to use dedicated xml tracking API instead…
danh91 Jan 28, 2026
9b368f9
fix(logs): set entity_id for failed shipment actions
jacobshilitz Jan 28, 2026
870d323
feat: improve trace display in activity timeline
jacobshilitz Jan 28, 2026
57bd5a9
fix: round FedEx package dimensions to integers
jacobshilitz Jan 28, 2026
5f22b3c
Merge pull request #948 from jacobshilitz/fix/fedex-dimension-rounding
danh91 Jan 29, 2026
2025836
Merge pull request #947 from jacobshilitz/feat/improve-trace-display
danh91 Jan 29, 2026
1b63fff
Merge pull request #946 from jacobshilitz/fix/log-entity-id
danh91 Jan 29, 2026
77a6ee1
feat: end-to-end pickup management with support for recurring + optin…
danh91 Jan 29, 2026
6abf392
merge: pickup refactor
danh91 Jan 29, 2026
3c109b2
fix: Potential fix for code scanning alert no. 59: Clear-text logging…
danh91 Jan 29, 2026
5be8ccc
build(deps): bump next from 15.4.10 to 16.1.5 in /apps/web
dependabot[bot] Jan 29, 2026
0a2522c
build(deps): bump next from 15.4.10 to 16.1.5 in /packages/core
dependabot[bot] Jan 29, 2026
8d0e9f7
feat: SDK service level features, volumetric weight, and static rate …
danh91 Jan 29, 2026
832cc68
feat: rate sheet weight brackets and server-side static rate resolution
danh91 Jan 29, 2026
4d2015c
fix: post_processing closure-in-loop bug when multiple methods regist…
danh91 Jan 29, 2026
ec21c7b
feat: metafield org-aware access control
danh91 Jan 29, 2026
40ec3a3
feat: workspace config preferences and service level features GraphQL…
danh91 Jan 29, 2026
7e5eb59
feat: shipment applied_fees field for accounting
danh91 Jan 29, 2026
c1738eb
refactor: fee model as denormalized snapshot decoupled from FKs
danh91 Jan 29, 2026
bdbcebd
chore: add no-raw-SQL migration rule to AGENTS.md
danh91 Jan 29, 2026
5e51109
chore: prepare PRD for customs field managements based on metafields
danh91 Jan 29, 2026
06ef3b4
feat: enhance usage stats and Markups management
danh91 Jan 29, 2026
11f58cc
release: 2026.1.3
danh91 Jan 29, 2026
d40baee
Merge pull request #944 from karrioapi/patch-2026.1.3
danh91 Jan 30, 2026
19954ff
feat: add HTTP-only cookie authentication for JWT tokens
danh91 Jan 31, 2026
623e86e
feat: enrich carrier connectors with services CSV data and configurat…
danh91 Jan 31, 2026
8b1efe6
fix: various fixes for gateway, pickups, label creation and pricing
danh91 Jan 31, 2026
10bffe8
Merge pull request #949 from karrioapi/dependabot/npm_and_yarn/apps/w…
danh91 Jan 31, 2026
04ca23e
Merge pull request #950 from karrioapi/dependabot/npm_and_yarn/packag…
danh91 Jan 31, 2026
dcf7ac3
sec(fix): Potential fix for code scanning alert no. 60: Construction …
danh91 Jan 31, 2026
98e4442
release: 2026.1.4
danh91 Jan 31, 2026
6ada001
Delete packages/types/tsconfig.tsbuildinfo
danh91 Jan 31, 2026
3c65577
Merge pull request #952 from karrioapi/fix-drifts
danh91 Jan 31, 2026
d6d576d
fix(fedex): fix TypeError in pickup cancel response parsing when outp…
Ansh-Dev-Nagar Feb 2, 2026
816a31b
docs: add Pickup API Modernization PRD
danh91 Jan 31, 2026
7229c0c
feat: add carrier-agnostic POST /v1/pickups endpoint
danh91 Jan 31, 2026
97fac5d
feat(dashboard): update pickup scheduling to use new carrier-agnostic…
danh91 Jan 31, 2026
4501c21
docs: prepare PRD for carrier_name/carrier_id future refactoring
danh91 Jan 31, 2026
1e8fdba
feat: add pickup status tracking with lifecycle events
danh91 Feb 1, 2026
6c57646
feat(core): add pickup status filtering and carrier-agnostic scheduli…
danh91 Feb 1, 2026
2ff1378
chore: update API schemas and generated types for pickup enhancements
danh91 Feb 1, 2026
8835e98
feat(dashboard): update pickup scheduling dialog and hooks
danh91 Feb 1, 2026
cde01c5
feat(dashboard): add pickup detail sheet with activity timeline
danh91 Feb 1, 2026
d5c948b
test: extend pickup API test coverage
danh91 Feb 1, 2026
b505a31
docs: rename carrier connection architecture document
danh91 Feb 1, 2026
5c23965
docs: update changelog for 2026.1.5 pickup enhancements
danh91 Feb 1, 2026
bb53111
fix: use application/glsVersion1+json Content-Type for GLS ShipIT Far…
Ansh-Dev-Nagar Jan 31, 2026
4a060d0
fix: align shipment schemas with vendor spec and fix request building
Ansh-Dev-Nagar Jan 31, 2026
6330e69
fix: handle all GLS error response formats in on_error handler
Ansh-Dev-Nagar Jan 31, 2026
83d8282
fix: align shipment request fields with GLS ShipIT Farm API spec
Ansh-Dev-Nagar Jan 31, 2026
3097532
fix: add contact_id as top-level Settings field
Ansh-Dev-Nagar Feb 2, 2026
96e39ac
fix: use safe dict access for service_levels in dataunits.py to preve…
Ansh-Dev-Nagar Jan 28, 2026
aa76094
fix: add custom SOAP serializer with proper namespace prefixes and el…
Ansh-Dev-Nagar Jan 28, 2026
df29952
fix: improve error parsing, add service_levels metadata, and fix test…
Ansh-Dev-Nagar Jan 28, 2026
be19baf
fix: add proper JSON schemas from OpenAPI and fix schema generation
Ansh-Dev-Nagar Jan 25, 2026
9dd596c
fix: add TrackingIncidentReason enum and reason field in tracking events
Ansh-Dev-Nagar Jan 25, 2026
9cd8614
fix: add cancel_response.json schema for shipment cancellation
Ansh-Dev-Nagar Jan 26, 2026
aab76f3
fix: postAT tests regression
danh91 Feb 3, 2026
7878734
feat: add tracker detail page with activity timeline and API logs
danh91 Feb 3, 2026
fef764b
fix: prevent infinite re-render loops in list pages and filter compon…
danh91 Feb 3, 2026
05b5022
sec(fix): sandbox Jinja2 template rendering to prevent SSTI (CVE)
danh91 Feb 4, 2026
a8fc0f0
feat: sync rate sheet editor enhancements and carrier config
danh91 Feb 5, 2026
f904111
chore: prepare changelog for release
danh91 Feb 5, 2026
2371402
release: 2026.1.5
danh91 Feb 5, 2026
f43b57d
Merge pull request #953 from karrioapi/patch-2026.1.5
danh91 Feb 5, 2026
7422662
tracking: support explicit carrier_id and test_mode selection
HansDaigle Feb 23, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
11 changes: 11 additions & 0 deletions .coveragerc
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# .coveragerc to control coverage.py
[run]
branch = True
omit =
*/sdk/extensions/dicom/*

[report]
include =
*/sdk/core/*
*/sdk/extensions/*
*/sdk/vendors/*
27 changes: 27 additions & 0 deletions .cursor/rules/api.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
{
"name": "Karrio API Rules",
"description": "Rules specific to the Django API backend service in the Karrio monorepo",
"match": "apps/api/**/*.py",
"rules": [
"Follow Django's MVT (Model-View-Template) architecture pattern.",
"Use Django Rest Framework's class-based views for API endpoints.",
"Implement proper input validation using serializers and validators.",
"Use consistent error response formats across all API endpoints.",
"Document API endpoints with clear docstrings and examples.",
"Implement proper authentication and authorization checks for protected endpoints.",
"Use Django's ORM effectively with select_related and prefetch_related to optimize database queries.",
"Follow Django's QuerySet API for efficient database operations.",
"Implement proper pagination for list endpoints.",
"Use Django signals judiciously for decoupled event handling.",
"Follow the established pattern for API versioning.",
"Use appropriate HTTP status codes for different response types.",
"Maintain backward compatibility for public APIs when making changes.",
"Implement proper logging for debugging and monitoring purposes.",
"Use Django's middleware for cross-cutting concerns.",
"Follow Django's best practices for form validation and processing.",
"Use Django's built-in security features for protection against common vulnerabilities."
],
"files": [
"@file:apps/api/README.md"
]
}
18 changes: 18 additions & 0 deletions .cursor/rules/base.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{
"name": "Karrio Base Rules",
"description": "Base rules that apply to the entire karrio monorepo, ensuring consistent coding standards across all components",
"match": "**/*",
"rules": [
"You are assisting with the Karrio open source project, a multi-carrier shipping API that simplifies shipping carrier integration.",
"This is a monorepo structured with frontend apps (dashboard, web) in TypeScript/Next.js and backend services in Python.",
"The project is organized into distinct sections: apps (Next.js frontends and Django API), modules (Python core functionality submodules), packages (shared TypeScript/Node.js libraries), and connectors (carrier-specific integrations).",
"Maintain consistent code style and follow existing patterns in each file you edit.",
"Always maintain type safety in TypeScript files and use proper type annotations in Python.",
"Keep responses concise and focused on the specific task at hand.",
"Follow the project's existing naming conventions and architecture patterns.",
"When suggesting changes to code, ensure they are compatible with the rest of the codebase.",
"Prioritize clear, maintainable code over clever solutions.",
"Understand cross-dependencies between modules, connectors, and frontend applications.",
"Focus on writing testable, reusable code that adheres to the established patterns in each part of the codebase."
]
}
22 changes: 22 additions & 0 deletions .cursor/rules/connectors.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"name": "Karrio Connectors Rules",
"description": "Rules specific to carrier integration connectors in the Karrio monorepo",
"match": "modules/connectors/**/*.py",
"rules": [
"Karrio connectors implement shipping carrier integrations following a consistent pattern.",
"Each connector should implement the established interface for its carrier type.",
"Maintain a clear separation between carrier-specific logic and the common integration patterns.",
"Follow the established error handling and retry patterns for API integrations.",
"Implement proper logging for debugging and tracing carrier API interactions.",
"Use appropriate data validation for both request and response data.",
"Handle carrier API rate limits and implement backoff strategies where needed.",
"Document carrier-specific requirements and quirks in code comments.",
"Follow the existing patterns for credential management and security.",
"Implement comprehensive error mapping from carrier-specific errors to Karrio's standardized errors.",
"Use HTTP client libraries consistently within connectors following established patterns.",
"Ensure proper handling of carrier API versioning.",
"Follow established testing patterns for carrier integrations, including mock responses.",
"Implement proper request/response caching strategies where appropriate.",
"Keep carrier-specific code isolated within the connector boundary."
]
}
22 changes: 22 additions & 0 deletions .cursor/rules/data-fetching.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"name": "Karrio Data Fetching Rules",
"description": "Rules specific to data fetching patterns in frontend applications",
"match": "apps/{dashboard,web,www}/**/*.{ts,tsx}",
"rules": [
"Follow established data fetching patterns in the codebase.",
"Use custom hooks for encapsulating data fetching logic.",
"Implement proper loading, error, and success states for all data fetching operations.",
"Follow consistent patterns for API request structure and error handling.",
"Implement proper caching strategies for fetched data.",
"Use optimistic updates for mutations where appropriate.",
"Implement proper retry logic for failed requests.",
"Use suspense boundaries for loading states where applicable.",
"Follow established patterns for request cancellation.",
"Implement proper pagination logic for list data.",
"Use proper typing for API responses and request payloads.",
"Implement proper state management for form submissions.",
"Follow established patterns for authentication and authorization in API requests.",
"Use proper error handling and user feedback for failed requests.",
"Implement data prefetching where appropriate for improved user experience."
]
}
22 changes: 22 additions & 0 deletions .cursor/rules/modules.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"name": "Karrio Modules Rules",
"description": "Rules specific to the Python modules in the Karrio monorepo",
"match": "modules/**/*.py",
"rules": [
"Karrio uses a modular architecture where core functionality is divided into focused Python modules.",
"Each module should have a clear single responsibility and well-defined interfaces.",
"Follow the existing module structure and organization patterns.",
"Use relative imports within the same module and absolute imports across different modules.",
"Implement proper error handling and propagation between modules.",
"Keep modules loosely coupled to facilitate testing and maintainability.",
"Ensure each module has appropriate unit tests covering core functionality.",
"Follow the factory pattern for service creation where applicable.",
"Use dependency injection to manage module dependencies.",
"Document module interfaces thoroughly with clear usage examples.",
"Maintain backward compatibility when making changes to module interfaces.",
"Avoid circular dependencies between modules.",
"Implement clean module boundaries with well-defined public APIs.",
"Use descriptive, domain-specific naming for module components.",
"Follow the established error handling patterns for each module type."
]
}
29 changes: 29 additions & 0 deletions .cursor/rules/nextjs.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
{
"name": "Karrio Next.js Rules",
"description": "Rules specific to Next.js applications in the Karrio monorepo",
"match": "apps/{dashboard,web,www}/**/*.{tsx,ts}",
"rules": [
"Follow Next.js App Router best practices for routing and data fetching.",
"Use server components where appropriate to reduce client-side JavaScript.",
"Implement proper error boundaries and loading states for all async operations.",
"Follow the established pattern for API calls and data fetching.",
"Use Next.js Image component for optimized image loading.",
"Implement proper SEO practices using Next.js metadata API.",
"Follow the project's established component structure for pages and layouts.",
"Use the shared UI components from the packages/ui directory when possible.",
"Implement responsive designs using Tailwind CSS with a mobile-first approach.",
"Follow accessibility best practices for all UI components.",
"Minimize 'use client' directives, using them only when necessary for Web API access.",
"Prefer server-side data fetching over client-side fetching where appropriate.",
"Use error.tsx and global-error.tsx for graceful error handling.",
"Implement proper dynamic loading for non-critical components.",
"Follow React best practices for memoization and performance optimization.",
"Keep components focused and maintainable.",
"Implement proper form validation using established patterns.",
"Optimize for Core Web Vitals metrics (LCP, CLS, FID)."
],
"files": [
"@file:apps/dashboard/package.json",
"@file:apps/web/package.json"
]
}
26 changes: 26 additions & 0 deletions .cursor/rules/project-context.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
{
"name": "Karrio Project Context",
"description": "Provides context about the Karrio project structure and key documentation",
"match": "**/*",
"rules": [
"Karrio is a multi-carrier shipping API that simplifies shipping carrier integration.",
"The monorepo structure consists of frontend apps (Next.js), backend API (Python/Django), and shared packages.",
"Key components of the architecture include:",
"- apps/: Contains frontend applications (dashboard, web, www) and the Django API backend",
"- modules/: Core Python functionality divided into focused submodules",
"- modules/connectors/: Carrier-specific integrations following a common pattern",
"- packages/: Shared TypeScript/Node.js libraries used across frontend applications",
"- schemas/: API schema definitions",
"- plugins/: Extensions and plugin implementations",
"Refer to the README.md for project overview and getting started information.",
"Follow the established architecture patterns and best practices documented in the codebase.",
"Understand the cross-cutting concerns and relationships between different parts of the system.",
"Maintain consistency with the existing codebase when making changes."
],
"files": [
"@file:README.md",
"@file:CHANGELOG.md",
"@file:apps/api/README.md",
"@file:turbo.json"
]
}
24 changes: 24 additions & 0 deletions .cursor/rules/python.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
{
"name": "Karrio Python Rules",
"description": "Rules specific to Python files in the Karrio monorepo, particularly for modules and connectors",
"match": "**/*.py",
"rules": [
"Follow PEP 8 style guidelines for Python code.",
"Use type hints for function parameters and return values using Python's typing module.",
"Document functions and classes with clear docstrings following the existing pattern.",
"Use proper exception handling with specific exception types; avoid bare except clauses.",
"Maintain consistent error handling patterns across the codebase.",
"Follow RESTful API design principles for API endpoints.",
"Use descriptive variable and function names that clearly indicate their purpose.",
"Keep functions focused on a single responsibility following SOLID principles.",
"Ensure new code has appropriate test coverage.",
"Follow existing patterns for dependency injection and configuration management.",
"Maintain backward compatibility for public APIs when making changes.",
"When working with modules, follow the established submodule pattern and respect module boundaries.",
"Understand the dependencies between modules and avoid creating circular dependencies.",
"For carrier connectors, follow the established interface patterns to maintain consistency across integrations.",
"Prefer composition over inheritance where appropriate.",
"Use Python 3.8+ features appropriately, including walrus operator, dataclasses, and improved typing.",
"For Django code, follow Django's best practices for models, views, and ORM usage."
]
}
29 changes: 29 additions & 0 deletions .cursor/rules/shared-packages.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
{
"name": "Karrio Shared Packages Rules",
"description": "Rules specific to shared packages in the Karrio monorepo",
"match": "packages/**/*.{ts,tsx}",
"rules": [
"Design shared components and utilities for reusability across multiple applications.",
"Provide comprehensive TypeScript types for all exported functions and components.",
"Document public APIs with clear examples and usage patterns.",
"Follow semantic versioning principles when making changes to shared packages.",
"Ensure backward compatibility or provide clear migration paths for breaking changes.",
"Implement proper unit tests for all shared functionality.",
"Keep shared components focused and avoid app-specific logic in shared packages.",
"Minimize external dependencies in shared packages.",
"Use consistent naming and organization patterns across shared packages.",
"Document any side effects or special considerations for shared utilities.",
"Follow established folder structure patterns: components/, hooks/, utils/, types/, etc.",
"Implement proper prop validation for React components.",
"Create custom hooks for reusable logic following the 'use' prefix convention.",
"Export types and interfaces for consumers to use.",
"Ensure components are responsive and accessible by default.",
"Implement proper memoization for expensive operations.",
"Use code splitting techniques for larger packages.",
"Follow established patterns for context providers and state management."
],
"files": [
"@file:packages/ui/package.json",
"@file:packages/core/package.json"
]
}
26 changes: 26 additions & 0 deletions .cursor/rules/typescript.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
{
"name": "Karrio TypeScript Rules",
"description": "Rules specific to TypeScript files in the Karrio monorepo",
"match": "**/*.{ts,tsx}",
"rules": [
"Follow TypeScript best practices with strict type checking.",
"Use proper type annotations and avoid using 'any' type when possible.",
"Prefer interfaces over types for object definitions.",
"Use explicit return types for functions, especially public APIs.",
"Prefer functional components with hooks in React code.",
"Use functional, declarative programming patterns.",
"For Next.js components, follow Next.js app router patterns where applicable.",
"Use named exports instead of default exports where possible.",
"Use async/await for asynchronous operations instead of Promises with then/catch.",
"Maintain consistent error handling patterns across the codebase.",
"Use destructuring for props in React components.",
"Follow the project's existing component structure and naming conventions.",
"Use descriptive variable names with auxiliary verbs (e.g., isLoading, hasError).",
"Use Tailwind classes according to the project's established pattern.",
"Implement proper error boundaries for React components.",
"For state management, follow the existing patterns in the codebase.",
"Minimize the use of any third-party state management solutions unless already established in the project.",
"Place static content and interfaces at the end of files.",
"Write reusable, testable utility functions."
]
}
6 changes: 6 additions & 0 deletions .cursorignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Exception: Allow specific .env files for development
!.env.local
!.env.sample
!**/.env.local
!**/.env.sample
!**/docker/.env
51 changes: 51 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# https://editorconfig.org/

root = true

[*]
indent_style = space
indent_size = 4
insert_final_newline = true
trim_trailing_whitespace = true
end_of_line = lf
charset = utf-8

# Docstrings and comments use max_line_length = 79
[*.py]
max_line_length = 119

# Use 2 spaces for the HTML files
[*.html]
indent_size = 2

# The JSON files contain newlines inconsistently
[*.json]
indent_size = 2
insert_final_newline = ignore

[**.{ts,json,js,tsx}]
end_of_line = crlf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
indent_style = space
indent_size = 2

# Minified JavaScript files shouldn't be changed
[**.min.js]
indent_style = ignore
insert_final_newline = ignore

# Makefiles always use tabs for indentation
[Makefile]
indent_style = tab

# Batch files use tabs for indentation
[*.bat]
indent_style = tab

[docs/**.txt]
max_line_length = 79

[*.yml]
indent_size = 2
Loading