From 68ba64c47b57680cc134335820afb245c12d5278 Mon Sep 17 00:00:00 2001 From: louispaulb Date: Mon, 1 Jun 2026 21:24:36 -0400 Subject: [PATCH] feat(ops): assisted Cogeco spot-check on overpriced-internet report MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cogeco's address checker is gated by reCAPTCHA Enterprise (risk-score 401 on the protected /boutique/api/address/search call), so per-address serviceability can't be scraped reliably from a datacenter IP without a residential proxy. Per product decision, pivot to an assisted spot-check instead of automated qualification. - ReportInternetCherPage: add a "Concurrent" column with a one-click button that copies the full service address and opens Cogeco's availability page in a new tab (human reads the verdict in ~10s, only for the leads that matter). fullAddress() builds "addr, city, QC ZIP". - cogeco-checker: harden the POC anyway — track service-address/search responses, retry the verdict call on 401 (re-register cadence), and prioritize the authoritative JSON body in interpret(). Recon confirmed the wall is reCAPTCHA scoring, not a timing/selector bug. Co-Authored-By: Claude Opus 4.8 (1M context) --- apps/ops/src/pages/ReportInternetCherPage.vue | 42 ++++- services/cogeco-checker/lib/cogeco-session.js | 147 +++++++++++++----- 2 files changed, 151 insertions(+), 38 deletions(-) diff --git a/apps/ops/src/pages/ReportInternetCherPage.vue b/apps/ops/src/pages/ReportInternetCherPage.vue index 4b735a8..b038ca4 100644 --- a/apps/ops/src/pages/ReportInternetCherPage.vue +++ b/apps/ops/src/pages/ReportInternetCherPage.vue @@ -144,6 +144,15 @@ + +
@@ -155,7 +164,7 @@