Repository navigation
Add Lane Flip Watch for reported fast-lane gaps - #169
Merged
Merged
Conversation
…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>
Compare Ready Lane, SENTRI, and Ready pedestrian with general from the existing CBP snapshots, and show how often the faster lane was reported slower over the last 30 days. 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>
Lanes Closed and N/A can keep a lane object with no open-lane count. A missing count is not zero, and those statuses are not a comparison or a flip. Co-authored-by: Sebastian Becerra <sbc1-code@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Lane Flip Watch compares retained CBP Ready/SENTRI values with general passenger, and Ready pedestrian with general pedestrian, in the existing BorderPulse shell. Both source clocks remain visible. Fresh retrieval alone does not establish current or simultaneous lane conditions.
The hour strip shows counts and percentages of retained fetches, with actual archive/per-lane dates and stale/missing states. Repeated fetches may contain the same underlying CBP report; they are not independent reports, days, probabilities or forecasts. There is no “usually” or “never slower” conclusion. Eligibility and non-simultaneity cautions travel with copied, native-shared and WhatsApp text in EN/ES.
The refreshed artifact contains 3,024 retained normalized snapshots, from 2026-10-04T04:07:32.650Z through 2026-11-03T03:37:39.520Z, across 27 crossing URLs. Raw historical responses were unavailable; earlier duplicate-row omissions remain explicitly disclosed. Coverage refresh does not reconstruct those lost values.
Button prop and optional SEO-field JSDoc contracts are annotation-only. Their parsed runtime syntax trees match the reviewed code; no runtime behavior, dependency or gate changed.
Integration state
Current head:
9a20e3aa056773e03a797dbdd645d83546669256. Intended order: #168 → #170 → #169. #168 contains task-start main baseline99fa2255; #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
npm testpassed on this exact commit: 257 unit checks and 474 desktop/mobile browser navigations. Entry JS 61.75/62 KiB; CSS 19.92/20 KiB. Budgets are unchanged.npm test: 257 unit checks and 474 browser navigations. CI entry JS 61.78/62 KiB, CSS 19.92/20 KiB; audit 0 high/critical, 1 moderate. Budgets and gates are unchanged.tsc --noEmit -p jsconfig.jsonreports 155 diagnostics. All 155 normalized diagnostics are present on untouched main (216 diagnostics). No compiler exclusions or checks were weakened.Final verification of remaining limits
Exact comparison: base
99fa225589b1abf33145284076184e0097f9eb60has 216 configured TypeScript diagnostics; final stack9a20e3aa056773e03a797dbdd645d83546669256has 155. Comparing full multiline diagnostic text, file and TS code as a multiset, ignoring only shifted line/column positions, gives 0 added and 61 removed. Compiler settings are unchanged. These remaining diagnostics are evidenced legacy debt, not an introduced stack regression.Fresh base/final audit vulnerability objects are identical. The reproducible underlying moderate advisory is Vite GHSA-8g5g-mxqh-grgj, affecting Vite 6.4.4 development-server file-denial handling. Local npm reports Vite and its React plugin as two affected package records for that one advisory; CI emitted one moderate aggregate entry.
npm audit --omit=dev --jsonreports zero vulnerabilities. Dependencies, lockfile and Vite server config are unchanged. The verified publisher builds staticdistassets and specific API functions rather than running a Vite development server; the snapshot rewrites do not add a development file server. This stack introduces no identified production exposure to that advisory. The existing risk of separately exposing a vulnerable development server remains development-tool maintenance; no unrelated upgrade was performed.The repository's documented verification path in
.github/workflows/verify.ymland the refresh runbook is locked install, production build andnpm test, including static MDX/CSS-parser/metadata, audit, bundle and browser gates. Those checks are not represented as a clean ESLint/typecheck result. No documented standalone ESLint substitute or pinned ESLint toolchain was found. Relevant available checks were rerun: CSS-parser and metadata gates passed;audit:recommendationspassed 36 overall and 246 daily checks with zero out-of-hours results. All three unchanged exact-head remote CI runs remain successful.No source/dependency correction was required for this verification follow-up. No new technical release blocker was identified under the existing gates; explicit production approval and actual post-release public verification remain outstanding. No merge or deployment occurred.
Historical artifacts
Original Cursor artifact links are preserved below. They predate the current preparation head and do not establish current-head behavior or QC.
Lane Flip Watch index, English, desktop
Lane Flip Watch index, English, mobile
Lane Flip Watch index, Spanish, desktop
Lane Flip Watch index, Spanish, mobile
Otay Mesa lane comparison, English, desktop
Otay Mesa lane comparison, English, mobile
Otay Mesa lane comparison, Spanish, desktop
Otay Mesa lane comparison, Spanish, mobile