From 27efbe6bb396e007fef95dad68661a02ddb9791b Mon Sep 17 00:00:00 2001 From: Hagernesh Date: Fri, 10 Jul 2026 09:14:49 +0000 Subject: [PATCH 1/2] fix(warehouses): drop truncated UUID columns and duplicate GRN buttons Queue tables showed "Booking ID" / "Customer ID" as dimmed 8-char UUID hashes next to the human-readable Booking Ref and Customer Name - unusable columns that forced extra horizontal scrolling. Removed across all six tables (eligible, received, ready-to-load, loaded/dispatch, import unloaded, import train detail). The GRN document button also rendered twice per row (inside the Booking Ref cell and again in the GRN column) in four tables - kept the GRN column only. Co-Authored-By: Claude Opus 4.8 (1M context) --- .../warehouses/ReceiveInventoryModal.tsx | 68 ++----------------- 1 file changed, 4 insertions(+), 64 deletions(-) diff --git a/apps/edr-freight-web/backoffice/src/components/warehouses/ReceiveInventoryModal.tsx b/apps/edr-freight-web/backoffice/src/components/warehouses/ReceiveInventoryModal.tsx index ff8dc0abd..8e39ea53e 100644 --- a/apps/edr-freight-web/backoffice/src/components/warehouses/ReceiveInventoryModal.tsx +++ b/apps/edr-freight-web/backoffice/src/components/warehouses/ReceiveInventoryModal.tsx @@ -1043,8 +1043,6 @@ function EligibleTab({ /> Booking Ref - Booking ID - Customer ID Customer Name Origin Destination @@ -1077,12 +1075,6 @@ function EligibleTab({ {r.reference} - - {r.id.slice(0, 8)}… - - - {r.customerId ? `${r.customerId.slice(0, 8)}…` : '—'} - {r.customer ?? '—'} {r.origin ?? '—'} {r.destination ?? '—'} @@ -1329,8 +1321,6 @@ function ExportReceivedTab({ enabled, onChanged }: { enabled: boolean; onChanged Booking Ref GRN - Booking ID - Customer ID Customer Name Container / Cargo Items Cargo Type @@ -1355,20 +1345,11 @@ function ExportReceivedTab({ enabled, onChanged }: { enabled: boolean; onChanged /> - - {r.bookingReference ?? '—'} - - + {r.bookingReference ?? '—'} - - {r.bookingId ? `${r.bookingId.slice(0, 8)}…` : '—'} - - - {r.customerId ? `${r.customerId.slice(0, 8)}…` : '—'} - {r.customerName ?? '—'} {r.containerNumber ?? '—'} {r.cargoType ?? '—'} @@ -1558,8 +1539,6 @@ function ReadyToLoadTab({ enabled, onChanged }: { enabled: boolean; onChanged?: Booking Ref GRN - Booking ID - Customer ID Customer Name Container # Cargo Type @@ -1580,20 +1559,11 @@ function ReadyToLoadTab({ enabled, onChanged }: { enabled: boolean; onChanged?: /> - - {r.bookingReference ?? '—'} - - + {r.bookingReference ?? '—'} - - {r.bookingId ? `${r.bookingId.slice(0, 8)}…` : '—'} - - - {r.customerId ? `${r.customerId.slice(0, 8)}…` : '—'} - {r.customerName ?? '—'} {r.containerNumber ?? '—'} {r.cargoType ?? '—'} @@ -1735,8 +1705,6 @@ function LoadedExportTab({ )} Booking Ref GRN - Booking ID - Customer ID Customer Name Container # Cargo Type @@ -1758,20 +1726,11 @@ function LoadedExportTab({ )} - - {r.bookingReference ?? '—'} - - + {r.bookingReference ?? '—'} - - {r.bookingId ? `${r.bookingId.slice(0, 8)}…` : '—'} - - - {r.customerId ? `${r.customerId.slice(0, 8)}…` : '—'} - {r.customerName ?? '—'} {r.containerNumber ?? '—'} {r.cargoType ?? '—'} @@ -1891,9 +1850,7 @@ function ImportTrainDetailTable({ Wagon - Booking ID Booking Ref - Customer ID Customer Name Container # Cargo Type @@ -1927,15 +1884,9 @@ function ImportTrainDetailTable({ {it.sequenceNo ? `#${it.sequenceNo}` : '-'} {it.wagonNumber ?? ''} - - {it.bookingId.slice(0, 8)}… - {it.bookingReference ?? '—'} - - {it.customerId ? `${it.customerId.slice(0, 8)}…` : '—'} - {it.customerName ?? '—'} {it.containerNumber ?? '—'} {it.cargoType ?? '—'} @@ -2384,10 +2335,8 @@ function ImportUnloadedQueueTab({ enabled }: { enabled: boolean }) { onChange={() => (allSelected ? unselectAll() : selectAll())} /> - Booking ID Booking Ref GRN - Customer ID Customer Name Arrival Time Container # @@ -2412,20 +2361,11 @@ function ImportUnloadedQueueTab({ enabled }: { enabled: boolean }) { /> - {r.bookingId ? `${r.bookingId.slice(0, 8)}…` : '—'} - - - - {r.bookingReference ?? '—'} - - + {r.bookingReference ?? '—'} - - {r.customerId ? `${r.customerId.slice(0, 8)}…` : '—'} - {r.customerName ?? '—'} {formatDate(r.arrivalTime)} {r.containerNumber ?? '—'} From 9e30c0c07128357c06ff4f86f0a1ea4941b52f24 Mon Sep 17 00:00:00 2001 From: Hagernesh Date: Fri, 10 Jul 2026 09:22:23 +0000 Subject: [PATCH 2/2] ci: replace actions/checkout with plain git on self-hosted runners Runners on this network intermittently time out downloading the action tarball from codeload.github.com (HttpClient 100s limit, 3 attempts, job dead before the first step). git fetch talks to github.com directly and needs no action download at all. - detect-changes: fetch --depth 2 (keeps the HEAD~1 diff working) - deploy: fetch --depth 1 - token passed via env for the fetch, then scrubbed from .git/config so it doesn't persist in the runner workspace; git clean keeps checkout@v4's clean-workspace behaviour Co-Authored-By: Claude Opus 4.8 (1M context) --- .github/workflows/deploy.yml | 37 ++++++++++++++++++++++++++++++------ 1 file changed, 31 insertions(+), 6 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 62530611c..5e1f46ad0 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -17,10 +17,23 @@ jobs: outputs: matrix: ${{ steps.filter.outputs.matrix }} steps: - - name: Checkout - uses: actions/checkout@v4 - with: - fetch-depth: 2 + # Plain git instead of actions/checkout: self-hosted runners on this + # network intermittently time out downloading action tarballs from + # codeload.github.com (100s HttpClient limit x3 = dead job). git fetch + # talks to github.com directly and needs no action download at all. + - name: Checkout (plain git, depth 2) + env: + GH_TOKEN: ${{ github.token }} + run: | + set -euo pipefail + git init -q . + git remote remove origin 2>/dev/null || true + git remote add origin "https://x-access-token:${GH_TOKEN}@github.com/${{ github.repository }}.git" + git fetch -q --depth 2 origin "${{ github.sha }}" + git checkout -q --force "${{ github.sha }}" + git clean -ffdq + # Don't leave the token in .git/config on the persistent runner workspace. + git remote set-url origin "https://github.com/${{ github.repository }}.git" - name: Determine changed services id: filter @@ -103,8 +116,20 @@ jobs: COMPOSE_DOCKER_CLI_BUILD: "1" steps: - - name: Checkout - uses: actions/checkout@v4 + # Same rationale as detect-changes: no action download on this network. + - name: Checkout (plain git) + env: + GH_TOKEN: ${{ github.token }} + run: | + set -euo pipefail + git init -q . + git remote remove origin 2>/dev/null || true + git remote add origin "https://x-access-token:${GH_TOKEN}@github.com/${{ github.repository }}.git" + git fetch -q --depth 1 origin "${{ github.sha }}" + git checkout -q --force "${{ github.sha }}" + git clean -ffdq + # Don't leave the token in .git/config on the persistent runner workspace. + git remote set-url origin "https://github.com/${{ github.repository }}.git" - name: Resolve project and build env file run: |