4.9 KiB
4.9 KiB
2026-05-09 — TIP Open Competitor Closure + Product Gap Probing
Competitor Status Closure
Added competitor_ambiguous as an evidence type via sql/104-verification-evidence-ambiguous.sql.
Added packages/scraper/src/utils/resolve-open-competitor-status.ts.
Runbook:
pnpm -C packages/scraper run verify:open-competitor-status
OPEN_COMPETITOR_APPLY=1 pnpm -C packages/scraper run verify:open-competitor-status
Live result:
- dry-run found
365fully populated products still inneeds_research - apply wrote:
364ambiguous1no_valid_match1newlyfully_verified
- evidence ledger:
364competitor_ambiguous1competitor_no_match
- fully populated products still in competitor
needs_research:0
Scheduler guard:
maintenance:find-equivalencesnow preserves deliberateambiguousstates instead of resetting them toneeds_research- built on Erik successfully
- restarted
tip-scraper-daemononly after the pg-boss active queue was empty
Live health after closure:
- active products:
17305 - price verified:
11414 - image verified:
12016 - details verified:
16705 - fully verified:
10449 - competitor status:
matched=10775no_valid_match=74ambiguous=556needs_research=5900
Interpretation:
needs_researchno longer contains fully populated products ready for competitor-only resolution.- Remaining
needs_researchrows are product-data gaps first.
Product Gap Probing
Catalog Details
- hardened
verify:catalog:detailsto write detail evidence - live result:
113catalog-derived rows updated,0fully verified earned - active Health did not move, so those rows are not currently improving the active dashboard base
GAO Tek
- ran
scrape:gaotek:details - checked remaining
64rows - result:
0updated,64skipped,0errors - interpretation: remaining GAO pages lack deterministic public detail evidence
GBICS
- added
scrape:gbics - patched
gbics.tsto pass product URLs into DB upsert/detail verification - live run found
758products and0prices - active gap remains
64 price / 64 image / 64 detailsof135 - interpretation: discovery works, but active rows and scraped identifiers need alias/dedupe hardening; price selector also needs repair
T&S Communication
- added
scrape:tscom - patched
tscom.tsto pass product URLs into DB upsert/detail verification - live run found
109unique products and0prices - active gap remains
82 price / 82 image / 49 detailsof82 - interpretation: discovery works, but row matching and price selectors need hardening
10Gtek / SFPcables
- live run found
110products and wrote6prices - active 10Gtek gap remains
126 price / 131 image / 25 detailsof175 - interpretation: parser works partially; remaining rows need alias/source-page repair
Next Real Work
- Build alias/dedupe resolvers for GBICS, T&S, and 10Gtek similar to FS.com numeric SKU alias cleanup.
- Repair GBICS/T&S price selectors against current page HTML.
- For OEM vendors such as Cisco/Juniper, add explicit non-public-price states instead of pretending OEM list prices exist.
Follow-Up: Artifact Quarantine + Reconcile Guard
GBICS/T&S artifact quarantine was expanded and applied live.
Result:
93additional non-transceiver artifacts quarantined withartifact_quarantineevidence- GBICS active base moved from
135rows with64/64/64price/image/details gaps to88rows with17/17/17gaps - T&S Communication active base moved from
82rows with82/82/49price/image/details gaps to36rows with36/36/6gaps - 10Gtek current active gap remains
175rows with126/131/25price/image/details gaps
Important regression found:
maintenance:reconcile-verificationreset explicit competitor research states back toneeds_research- fixed scheduler guard so reconcile preserves both
no_valid_matchandambiguous - deployed to Erik, built successfully, and restarted
tip-scraper-daemononly after pg-boss active queue was empty
Restore run:
- dry-run found
615fully product-verified rows that had fallen back into competitorneeds_research - apply wrote:
74no_valid_match541ambiguous74newly/restoredfully_verified
- live evidence ledger now includes:
74competitor_no_matchfromverify:open-competitor-status555competitor_ambiguousfromverify:open-competitor-status93artifact_quarantinefromverify:quarantine:non-transceivers109artifact_quarantinefromverify:fs:sku-aliases
Verification after a fresh reconcile test:
- health status: healthy
- active products:
17212 - price verified:
11414 - image verified:
12016 - details verified:
16702 - fully verified:
10449 - competitor status:
matched=10775no_valid_match=74ambiguous=556needs_research=5807
- fully product-verified rows still in competitor
needs_research:0