Skip to content

Show CBP report times separately from data fetches - #128

Merged
sbc1-code merged 6 commits into
mainfrom
fix/cbp-report-time-labels
Oct 12, 2026
Merged

sbc1-code merged 6 commits into
mainfrom
fix/cbp-report-time-labels

Conversation

@sbc1-code

@sbc1-code sbc1-code commented Oct 12, 2026 •

Copy link
Copy Markdown
Owner

Summary

  • Display each CBP lane's original report time on primary cards and lane rows, including an explicit missing-time state.
  • Label snapshot retrieval as fetched time rather than Live, and pass actual fetched_at to every crossing detail card.
  • Preserve clock/timezone text exactly. No inferred source dates, ages, midnight rollover or DST occurrence; collector, identity, availability and history logic are unchanged.

Evidence

On October 12, a fresh public response contained Nogales DeConcini's 90-minute standard wait reported as At 11:00 pm MST. Both the CBP source and BorderPulse preserved that text, but the UI hid it while allowing a fresh-fetch Live badge.

Verification

  • Final head: b879d3f; independently reviewed application and final test changes with no remaining blocker. A dark-mode contrast issue found during review was fixed.
  • Full PR release gate passed: https://github.com/sbc1-code/borderpulse/actions/runs/38273337205
  • Full push release gate passed: https://github.com/sbc1-code/borderpulse/actions/runs/38273332050
  • Both include 404 desktop/mobile route navigations plus EN/ES synthetic-feed journeys: raw per-lane clocks, missing source times, zero/pending/closed waits, drawer/detail/Back, manual refresh/tab return, stale snapshot/cache retention/recovery, dark contrast and mobile wrapping. External ad and analytics traffic is intercepted.
  • Unit/data/metadata checks, dependency audit (0 high/critical; 8 existing moderate), and bundle budgets passed.
  • Browser fixture response waits are bounded; abandoned synthetic 503 bodies are not awaited. A whole-fixture deadline fails closed instead of hanging.
  • Local production build and non-browser gates passed. Local Chromium is restricted by the execution sandbox; browser verification above ran in GitHub CI.
  • PR verification uses the static build. The existing production publisher separately builds the API-enabled artifact and runs the same complete release gate before upload.

Publication is authorized and verified below. Hreflang, legacy Pages queue, and data-dependent walk-or-drive inventory remain separate backlog.

Production verification — October 12, 2026, 16:01 UTC

  • Squash merge: 031d17612fb99cc00018d32ec0b8f4b519ae9540.
  • Production publisher succeeded: https://github.com/sbc1-code/borderpulse/actions/runs/38273740411
  • The API-enabled prebuilt artifact passed the full release gate before upload, including 404 route navigations and both desktop/mobile report-time journeys.
  • https://borderpulse.com/data/publication.json returned that exact commit, prepared at 15:56:07 UTC, with 42 crossings and the 15:52:42 UTC bundled CBP snapshot.
  • The public detail route returned 200 with its correct canonical. Its deployed entry /assets/index-DZyLS83Q.js contains the raw EN/ES CBP report labels, explicit missing-time labels, fetch-specific freshness labels, and compiled live API enabled. The detail chunk contains the new EN/ES lane-report heading.
  • The public live endpoint returned 200 at 16:01:26 UTC with 42 crossings and canonical San Ysidro port 250401. Nogales DeConcini still supplied its raw At 11:00 pm MST report text; no report date or numerical source age was inferred.
  • Production verification used HTTP/source inspection; it did not execute advertising or analytics scripts. Browser behavior was verified against the exact prebuilt artifact in the production gate with external requests intercepted.

@sbc1-code
sbc1-code marked this pull request as ready for review October 12, 2026 15:55
@sbc1-code
sbc1-code merged commit 031d176 into main Oct 12, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant