transceiver-db/sync/history/2026-05-10-tip-manual-review-queue-closure.md
2026-05-10 10:23:07 +02:00

71 lines
2.0 KiB
Markdown

# TIP Manual Review Queue Closure
Date: 2026-05-10 UTC
Owner: Codex
## Summary
The dashboard still showed `Review 13374` after research resolution was complete.
This was a real workflow issue: the product research queues were closed, but stale equivalence candidates still appeared as manual review work.
## Diagnosis
Live DB state before cleanup:
- `pending=13374`
- `approved=1987`
- `auto_approved=33464`
- `rejected=148382`
The `13374` pending rows belonged to only `506` Flexoptix products.
Their product-level competitor states were already terminal:
- `13323` pending rows had Flexoptix `competitor_status=matched`
- `51` pending rows had Flexoptix `competitor_status=ambiguous`
Therefore these rows were stale review debt, not actionable manual work.
## Implemented
- Added `sql/107-close-stale-manual-review-queue.sql`
- closes stale pending equivalences when product-level competitor research is already terminal
- writes explicit automated reject reasons
- Hardened `maintenance:find-equivalences`
- only creates pending candidates for Flexoptix products with `competitor_status IN ('unknown','needs_research')`
- terminal states (`matched`, `no_valid_match`, `ambiguous`) cannot recreate manual-review debt
- Hardened Review API
- pending badge/listing only counts genuinely actionable pending rows
- stale candidates for terminal product states are not shown as manual work
## Live Deployment
- Migration applied on Erik:
- `UPDATE 13374`
- API build passed.
- Scraper build passed.
- `tip-api` restarted.
- `tip-scraper-daemon` restarted.
## Final Review State
- `approved=1987`
- `auto_approved=33464`
- `rejected=161756`
- `pending=0`
## Final Health Still Intact
- `research_resolved=16236`
- `total=16236`
- `research_resolved_pct=100`
- price/image/details/competitor `needs_research=0`
## Training Pool
Added two TIPLLM examples to `training-data/tip-llm-capabilities-v1.jsonl`:
- stale manual review queue closure rule
- review badge zero-count rule