Reference hygiene: enrolled references are now card-localized (tight crops)
Decision (Kris + agent): index references must be the CARD, not the scene — background robustness is the…
Misaligned-scan rescue deployed (no app change needed)
Kris's field report: ignoring the align guide (card far from the reticle) made scans miss. Root cause: the app sends its reticle crop…
Live-enroll incident + fix (same evening): cross-photo noise, resolved
Kris's first real session exposed a defect: same-session sleeved photos cross-match at 15-25 spurious ORB inliers…
LIVE ENROLL SHIPPED (Phase 3, gated) — the flywheel is closed
Cardvision now learns in near-real-time from confirmed scans. Deployed to the Tower fleet tonight:
How it works: /train-capt…
Phase 1 SHIPPED + a Phase 3 requirement
Phase 1 is live end to end: PR #337 merged (main a08b249), OTA on runtime 1.3.6, /train-capture live on Tower. Committed scans now accumulate in…
Server side is LIVE on Tower: /train-capture deployed (agg.py + all 3 lb confs), smoke-tested — bad token 403 via public URL, stores + per-card counts survive restart, test rows cleaned. Scan…
Phase 1 built (capture + label) — mobile committed, Tower deploy staged
Mobile (branch feature/496-cardvision-training-capture, commit 9b8fc70): at commit
(Buy / inventory batch /…
Chosen capture approach: dual-send (fast small match + quiet full-res training upload)
Refines the Phase 1 capture design. Instead of persisting the /identify bytes (which are
already…
Two clarifications: Railway topology + capture quality
Where this runs (Railway vs Unraid). Cardvision runs on the Unraid box (RTX 3090), not Railway. For a cardvision scan the phone…
Resolved: this does not need TCGplayer Infinity. tcgcsv already has all of it.
Checked tcgcsv (the free/keyless mirror Gambit already syncs, category 86 / group 24522 'Steel Requiem', 3…
Confirmed via live TCGplayer Infinity — the card is real, priced, and the gap is a precise, enumerable set.
`GET https://infinite-api.tcgplayer.com/product/675710/details/?source=infinite-con…
Correction to the root cause above — I had this partly wrong.
I originally wrote that Gambit's catalog was behind CardVision and needed the missing Gundam products ingested. A live Scrydex…
Fixed and deployed to production (PR #333, master 72e78c8). The badge used listings.length (number of grouped inventory rows) instead of summing qty_available, so 1+4+1 copies read as '3…
Fixed and deployed to production (PR #333, master 72e78c8).
Root cause: /public/card was asked only for a TCGplayer product id, which carries no vendor identity, so it returned every tenant's…