Skip to content

Keep reported CBP waits when duplicate port rows co-occur - #170

Merged
sbc1-code merged 7 commits into
mainfrom
cursor/ysleta-reported-lane-merge-d19d
Nov 3, 2026
Merged

sbc1-code merged 7 commits into
mainfrom
cursor/ysleta-reported-lane-merge-d19d

Conversation

@sbc1-code

@sbc1-code sbc1-code commented Nov 2, 2026 •

Copy link
Copy Markdown
Owner

The recorded Nov 2 CBP fixture contains both Ysleta rows: one has Ready/SENTRI/pedestrian/commercial waits while the duplicate is pending. Evidence-based lane merging preserves usable numeric reports, including zero; explicit Closed/N/A status outranks pending. Missing values remain missing, and a blank Closed/N/A booth count remains null.

The San Ysidro main-row path now uses the same status-aware primary scalar normalization. A retained numeric value on Closed/N/A/Pending does not become a current wait or a “good” status. Those contradictory-number cases are hypothetical robustness fixtures, not a claimed feed incident. PedWest and CBX never supply the main crossing's waits.

Each contributing lane retains its original update clock and originating row date/time when duplicate rows differ. Recorded duplicate pairs, reversed order, zero, unavailable statuses and source clocks are covered. The new parser applies when the collector/API next runs released code; this PR does not reconstruct lost historical raw data.

Integration state

Current head: af88d8665a251559bdd753426597c64ae5b2c0af. Intended order: #168 → #170 → #169. #168 contains task-start main baseline 99fa2255; #170 includes prepared #168; #169 includes prepared #170, so #169 is the full combined candidate. PR bases remain main. Later PR diffs include earlier fixes until integration proceeds in order.

Conflicts are resolved in the pushed branches, preserving both endpoint regression groups and N/A expectations, both sitemap imports, all reviewed documentation and current-main data. Subsequent main updates observed during testing changed feed data only and were not overwritten. Source guards, freshness/missing/zero states, native branding, keyboard/focus, reduced motion and share cautions remain intact.

Original feature work is by Cursor; Codex authored the correction and preparation commits. Review/preparation only: production approval is still pending. No shared-main merge, formal approval review, auto-merge, publisher rerun or production deployment was performed.

Current-head validation

  • Local Node 24 API-mode production build and full npm test passed on this exact commit: 244 unit checks and 418 desktop/mobile browser navigations. Entry JS 61.56/62 KiB; CSS 19.85/20 KiB. Budgets are unchanged.
  • Exact-head remote CI 41576481432 passed on Node 22 with a locked install, production build and full npm test: 244 unit checks and 418 browser navigations. CI entry JS 61.58/62 KiB, CSS 19.85/20 KiB; audit 0 high/critical, 1 moderate. Budgets and gates are unchanged.
  • Checks cover all prepared Fix the deploy test, add a Spanish home, and refresh the no-JS snapshot #168 journeys plus recorded duplicate CBP rows, reversed order, San Ysidro hypothetical retained-number cases, status normalization, actual zero, independent lane source clocks and source dates. Combined desktop/mobile screenshots were captured and inspected locally. Browser share APIs were mocked; no message was sent.
  • Local audit gate passed with 0 high/critical and 2 moderate advisories. Scoped manual security delta review found no new input sink, executable behavior, dependency or permission change beyond the reviewed fixes. A formal automated security scan is not claimed.
  • Typecheck remains ungreen: configured tsc --noEmit -p jsconfig.json reports 216 diagnostics. Untouched main also has 216 diagnostics; the candidate retains the same legacy categories, with an inferred metadata-message variation. No compiler exclusions or checks were weakened.
  • Lint unavailable: an ESLint config exists, but no lint script or pinned ESLint/plugins are supplied in the manifest/lockfile/installed tree. No packages were added to manufacture a lint pass.
  • All 394 installed package versions match the lockfile. Local Vite preview does not execute Vercel functions: the API-mode no-JS fixture emulates bundled fallback, while actual handler timing/cache/error/host behavior is tested separately.
  • No hosted preview was found for this SHA during the read-only check. No manual preview deployment or access change was attempted. Current production API freshness remains unverified from this cloud environment; Pages/collector success is not treated as Vercel recovery. Issue [ops] Vercel daily publication failing #171 remains open.

Historical artifacts

Original Cursor artifact links are preserved below. They predate the current preparation head and do not establish current-head behavior or QC.

Ysleta standard lane has no reported minute
Ysleta Ready Lane shows the reported 50 minutes
Ysleta detail lists the reported lanes
Otay Mesa detail includes the reported commercial and FAST lanes

Open in Web Open in Cursor 

cursoragent and others added 5 commits November 2, 2026 06:58
…snapshot.

A late map focus callback could take the search field and fail the Pages test. /es/ is the indexable Spanish home. On Vercel the no-JS snapshot frame uses the cached CBP fetch instead of the last full site build.

Co-authored-by: Sebastian Becerra <sbc1-code@users.noreply.github.com>
Ysleta's closed standard lane was dropped, so the empty Update Pending row outranked the row that reported Ready, SENTRI, and pedestrian waits. Keep those minutes, and keep Lanes Closed and N/A on the lane instead of storing a blank.

Co-authored-by: Sebastian Becerra <sbc1-code@users.noreply.github.com>
@sbc1-code
sbc1-code merged commit 7a47287 into main Nov 3, 2026
1 check 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.

2 participants