transceiver-db/sync/history/2026-05-09-tip-verification-truth-model-and-evidence-ledger.md
2026-05-09 23:06:21 +02:00

2.5 KiB

TIP Verification Truth Model And Evidence Ledger — 2026-05-09

Scope

  • Make TIP verification explainable instead of simply green/red.
  • Preserve the difference between:
    • a true 1:1 competitor match
    • verified absence of a valid public match
    • ambiguous candidates
    • unresolved research
  • Start an append-only evidence ledger for source-backed verification decisions.

Implemented

  • Added migration sql/103-verification-evidence-and-competitor-status.sql.
  • Added product-level competitor status:
    • matched
    • no_valid_match
    • needs_research
    • ambiguous
    • unknown
  • Added no-match fields:
    • no_match_verified_at
    • no_match_reason
  • Added transceiver_verification_evidence.
    • price
    • image
    • details
    • competitor_match
    • competitor_no_match
    • artifact_quarantine
  • Scraper DB helper now records evidence for newly verified price/image/details.
  • Quarantine robot now records artifact evidence.
  • Matcher records competitor-match evidence for auto-approved matches.
  • Review API now supports protected no-valid-match marking:
    • POST /api/review/transceivers/:id/no-valid-match
  • Health API exposes active competitor-status counts.
  • Review stats expose global product competitor-status counts.

Live Deployment

  • Scraper build on Erik: passed.
  • API build on Erik: passed after TypeScript route param cast.
  • Migration applied successfully.
  • tip-api restarted and healthy.
  • tip-scraper-daemon was not restarted because scrape:pricing:naddod and scrape:pricing:qsfptek were active.

Live Backfill

  • Product status after migration:
    • matched=11198
    • needs_research=6575
  • Evidence ledger seeded:
    • price=10633
    • image=12189
    • details=16782
    • competitor_match=316

Live API Check

  • /api/health: healthy.
  • Active-product competitor status:
    • matched=11158
    • needs_research=6256
    • no_valid_match=0
    • ambiguous=0
  • Protected Review stats with Dashboard token returned:
    • matched=11198
    • needs_research_products=6575
    • no_valid_match=0
    • ambiguous=0

Operational Next Step

  • When scrape:pricing:naddod and scrape:pricing:qsfptek finish, restart tip-scraper-daemon to load the new scheduler matcher/reconcile logic.
  • Then run:
    • reconcile
    • matcher
    • Review no-valid-match workflow for products that truly have no valid public 1:1 competitor.

Training Pool

  • Added TIPLLM lessons for:
    • competitor state machine
    • evidence ledger semantics
  • training-data/tip-llm-capabilities-v1.jsonl validated successfully.