2.1 KiB
2.1 KiB
2026-05-09 — TIP No-Valid-Match Resolver
Operator Requirement
- Continue TIP verification until source-backed work is exhausted.
- Do not invent competitor matches just to turn products green.
- Use deterministic TIP robots/scrapers only.
- Keep Erik safe; do not restart crawler daemons while active jobs are running.
- Write crawler/scraper/robot learnings into the TIPLLM training pool.
Change
Added packages/scraper/src/utils/resolve-no-valid-competitor.ts and package script:
pnpm -C packages/scraper run verify:no-valid-competitor
The resolver is dry-run by default. Applying changes requires:
NO_VALID_MATCH_APPLY=1 pnpm -C packages/scraper run verify:no-valid-competitor
The default vendor scope is Flexoptix:
NO_VALID_MATCH_VENDOR=Flexoptix
Rules
A product can be resolved as competitor_status='no_valid_match' only when:
- the product is active and not in a known artifact category
- price, image, and details are already verified
- competitor verification is still unresolved
- no other vendor has a source-backed strict candidate with the same form factor, speed, fiber, reach within max(25m, 5%), and compatible wavelength when both sides expose it
- no pending/approved equivalence above confidence
0.50already exists
The robot writes competitor_no_match evidence and then calls checkAndSetFullyVerified.
Live Result
On Erik:
- dry-run Flexoptix scope found
73candidates - apply run updated
73 73products earnedfully_verified- evidence ledger now has
73competitor_no_matchrecords
Live health after the run:
- active products:
17414 - price verified:
11523 - image verified:
12125 - details verified:
16814 - fully verified:
10831 - competitor status:
matched=11158no_valid_match=73ambiguous=0needs_research=6183
Operational Notes
tip-scraper-daemonwas not restarted because pricing jobs were active.- Restart only after active pg-boss jobs complete, then queue reconcile and matcher.
- This is the correct pattern for rare products: explicit no-match evidence beats false 1:1 matches.