# Scanner Rework Status Updated: 2026-07-11 after the 2,211-Artifact full-inventory acceptance, review-gate correction, strict game-process targeting, and the offline-tested Build-Fit evidence-ranking checkpoint Short current-state entry point: [CURRENT_STATUS.md](CURRENT_STATUS.md). Detailed evidence: [NATIVE_SCANNER_LIVE_ACCEPTANCE_2026-07-10.md](NATIVE_SCANNER_LIVE_ACCEPTANCE_2026-07-10.md). ## Was Es Kann - Der native Artifact-Scanner setzt das 2.400-Slot-Inventar begrenzt an den Anfang, erfasst ein validiertes 4x8-Grid ueber mehrere Seiten und streamt jeden Crop direkt in vier begrenzte OCR-/Parse-/Evaluierungsworker. - Genshin-HWND, Stop-Signale und Input-Erfolg werden vor jedem relevanten Wheel-, Klick- und Capture-Schritt geprueft. Fokusverlust refokussiert nicht. - Die frische Live-Kette `5/20/50/100` bestand mit 0 Review, 0 Fehlern und 0 Store-Writes. Der 100er `20260710-102547` erreichte 4,37 Captures/s und 3,15 verarbeitete Results/s. - Gespeicherte Runs werden auf exakte Jobs/PNGs/Results, Sequenzen, Pfade, Click-Events, Seitenwiederholung, PNG-Hashes und Replay-Determinismus geprueft. - Inventory zeigt Native- und Store-Zeilen mit getrennten Signalen fuer Extraktion, Review, IK, Roll-Efficiency, Promotion und spaeteren Build-Fit. - Die unpacked App ist aus `%TEMP%` live gestartet. Renderer, Preload, IPC, paketierter C#-Helper und IK 6.7.0 funktionierten; der paketierte 5er `20260710-103736` bestand ohne Persistenz. ## Was Zuletzt Gemacht Wurde - Capture-Quellenklassifizierung schliesst die eigene App trotz `Genshin` im Titel aus. - Dev-Cleanup beendet nur echte Repo-Vite/Electron/Helper-Prozesse und nicht mehr den Codex-CUA-Node. - Native Runs starten immer mit einem begrenzten Top-Reset und pruefen den Foreground vor jedem Input/Capture. Reset-Pacing senkte die Live-Zeit von 50,7 s auf rund 1,7 s. - Der Smoke-Gate prueft exakte Counts, Dateivertraege, Reviewrate, Non-Persistence und bestaetigten Stop-Cleanup. - Run-Aufloesung waehlt nur den neuesten vollstaendigen Run; gestoppte oder unprozessierte Runs ersetzen die Inventory-Evidenz nicht. - Packaged Pfade verwenden `resourcesPath`, Vite relative Assets und eine verifizierte Runtime-Signatur. - Elevation wird sowohl im Runtime- als auch im Helper-Guard korrekt angezeigt. - Inventory-Layout und Promotion-Duplikatstatus wurden im finalen Paket visuell korrigiert und abgenommen. - Der aktuelle Renderer-Stand setzt den Scanumfang standardmaessig auf die erkannte Besitzanzahl und bietet optional ein Artifact- oder Reihenlimit. Die linke Hauptflaeche uebernimmt den Lauf-Fortschritt; die separate Fortschrittskarte entfaellt und die Ergebnisleiste startet sitzungsleer. - Der bestehende gebundene Wheel-Top-Reset bleibt Produktionsstandard. Ein `B`-Reopen mit Artifact-Tab ist nur eine spaeter live zu benchmarkende Alternative, nicht Teil des aktuellen Produktionspfads. - Ein realer Settings-UI-Lauf mit Artifact-Limit 5 bestand Genshin-, Detail- und Grid-Preflight. Ziel/Capture/Processing/Parsing endeten bei 5/5, Review/Fehler bei 0, `persist=false`; die sitzungsgebundene Ergebnisleiste zeigte alle 5 Resultate. - Der paketierte Settings-UI-Reihenlauf `20260710-180851` loeste eine Reihe ueber das erkannte 8-Spalten-Raster zu Ziel 8 auf. Capture, Processing und Parsing endeten bei 8/8, Review/Fehler bei 0 und der Top-Reset bei 1.715 ms. Zwei Fokusverlust-Versuche blockierten vorher korrekt mit 0 Klicks. - Der paketierte Streaming-Lauf `20260710-201614` startete Processing beim ersten verfuegbaren Run-Verzeichnis. Noch waehrend Capture `running` war, zeigte die Session-Rail bereits 11 ausgewertete Ergebnisse. Final waren Capture/Processing/Parsing/Evaluation 20/20, Review/Fehler/Store-Writes 0; alle Sequenzen 1-20 waren eindeutig und chronologisch sichtbar. - Die Scanner-Hierarchie nutzt jetzt mehr Breite fuer die sitzungsgebundenen Ergebnisse als fuer Guide/Capture. Scanbereitschaft und Live-Auswertung sind kompakte Statusleisten statt verschachtelter Karten. - Scanumfang, Aufnahmequelle und manuelle Werkzeuge liegen in einem fokusgefangenen `Scanoptionen`-Modal und verschieben den Arbeitsbereich nicht mehr. Collection-Pipeline-Details im Inventory liegen ebenfalls in einem Modal; Diagnose-Import/-Export ist standardmaessig eingeklappt. - Der frisch paketierte UI-Lauf `20260710-214406` bestaetigte die neue Hierarchie erneut live: 20/20 Capture, Processing, Parsing und Evaluation, 0 Review/Fehler/Store-Writes, bis zu 9 sichtbare Ergebniszeilen und 12 bereits ausgewertete Resultate waehrend Capture noch lief. Der erste Startversuch blockierte korrekt an der doppelten Detailkarten-Pruefung; nach stabiler Detailkarte lief derselbe begrenzte Pfad durch. - `build-fit-contract-v1` trennt gesourcte Character-/Zielregeln, Set-Pfade, Main-Stat-Prioritaeten, Substat-Gewichte, Gesamtziele, Konflikte und Profil-Ablaufdaten von OCR und Roll-Efficiency. Unsichere oder nicht kanonische Scanergebnisse blockieren; V1 gibt absichtlich noch keinen Fit-Score aus. - Reale lokale Account-Snapshots rufen den alten Demo-Scorer nicht mehr auf. Der getrennte `build-fit-evidence-ranking-v1` liest stattdessen nur den neuesten vollstaendigen nativen Run und kann bis zu drei read-only Profilvorschlaege ausgeben. - Der score-freie Fuenfer-Verifier prueft genau einen Eintrag pro Slot, vollstaendige Set-Formen, verschachtelte OCR-/Review-Gates, Konflikte und optional gesourcte Gesamtwerte. Fehlender Nicht-Artifact-Kontext bleibt `pending` und wird nicht geraten. - Der Profil-Corpus umfasst Furina Off-field/Solo Hydro C0-C1, Neuvillette Charged Attack, Raiden Off-field Hyperbloom und Nahida Off-field Deepwood. Jede Regel ist quellen-/versions-/ablaufgebunden, gegen reale IK-6.7.0-Keys geprueft und durch Golden plus adversarial Fixture abgesichert. - Die sichtbare Regelabdeckung kombiniert nur Set-Form, Main-Stat-Prioritaet und dokumentierte Substat-Praesenz. Roll-Efficiency, Rollhoehe und OCR- Confidence sind keine Rankinggewichte; Charakterbesitz, Team, Waffe und Rotation werden nicht geraten. Furinas ER-Kontext ist nur explizit und sitzungsgebunden bestaetigbar. - Der reale Vollinventar-Lauf `20260710-223233` nahm den OCR-Besitzwert 2.211, erfasste exakt 2.211 Karten auf 70 Seiten mit 4,24/s und schrieb nichts in den Store. Die aktuelle paketierte Reprozessierung erreichte 2.211/2.211, 136 Review (6,15%), 0 Fehler und 0 Writes; der Saved-Run-Validator meldet `issues=0`. - Der erste Parse desselben Laufs wurde bei 490 Review (22,16%) korrekt nicht akzeptiert. 360 widerspruechliche `+0`-Main-Values werden jetzt nur dann aus der kanonischen 5-Sterne-Tabelle repariert, wenn vier Anfangs-Substats die Seltenheit strukturell beweisen; Drei-Substat-Faelle bleiben Review. - Der Review-Corpus-Exporter priorisiert jetzt nur noch Kandidaten mit abrufbarem lokalem Crop und gibt sichere Capture-/Run-Referenzen statt lokaler Pfade aus. Der Snippet-Preparer blockiert OCR-only Kandidaten ohne visuelle Evidenz. Ein read-only Export der aktuellen 177 Eintraege fand drei abrufbare, bereits bestaetigte `native-review-approved` Faelle; keine neue Label-Promotion wurde vorgenommen. - Native Helper und PowerShell-Fallback akzeptieren nur noch die exakten Prozessnamen `GenshinImpact` oder `YuanShen`. Bei geschlossenem Spiel bestand der Package-Smoke mit `genshinFound=false`, HWND 0 und leerem Zielprozess. ## Was Noch Nicht - Roll-Efficiency ist weiterhin kein Build-Fit. Die offline getestete Builds- Oberflaeche ist keine Optimizer- oder DPS-Aussage und wurde noch nicht als frischer paketierter Renderer-Fall live abgenommen. - Weapons, Materials und Character Details bleiben ausserhalb des aktiven Scanner-Scope. - Andere Aufloesungen, Seitenverhaeltnisse und UI-Sprachen haben noch kein live validiertes Profil. - Batch-Review/-Promotion und automatische Store-Persistenz bleiben aus. - Der absichtlich schreibende Review-/Promotion-Pfad wurde nicht live ausgefuehrt; er bleibt zustimmungspflichtige separate QA. ## Wo Es Noch Probleme Macht - Die fruehere `1,77/s`-Zahl ist nur der historische serielle 100er-Smoke: Capture/Reset und danach Batch-Processing wurden addiert. Sie darf nicht als aktuelle Streaming-End-to-End-Rate gelesen werden. Der dry Streaming-20er `20260711-090019` lief 20/20 mit 0 Review/Fehlern/Writes, lieferte das erste Ergebnis vor Capture-Ende, mass `4,43 Capture/s` und beobachtet `2,39/s` vom Startrequest bis zur Result-Reconciliation. Der gemeinsame Clock-Contract ist jetzt persistiert: der aktuelle 50er `20260711-154827` bestand mit 50/50 Capture/Parse/Results, 0 Review/Fehler/Writes und `28.022 ms` Request-to-Reconciliation (`~1,78/s`). Der 3/s-Gesamtclaim bleibt offen. - Neue OCR-Zustaende koennen weiterhin Review ausloesen; das ist ein sicherer Fallback, kein Grund die Plausibilitaetsgates zu lockern. - Der Renderer hat weiter einen nicht-blockierenden ~630-kB-Chunk. - Die neuen Live-Artifacts waren alle +20, deshalb entstand kein neuer echter Under-Level-Projektionsfall. - Ohne plausiblen OCR-Wert fuer die aktuelle Besitzanzahl blockiert der Full-Inventory-Lauf absichtlich; Kapazitaet darf das Ziel nicht ersetzen und der native Helper erkennt das Listenende noch nicht verlaesslich selbst. ## Was Noch Verbesserungsfaehig Ist 1. Die Builds-Oberflaeche hat nun eine gebaute Renderer-Abnahme fuer frisches Englisch, Deutsch-Umschaltung, Kontext, Fokus und Overflow bestanden. Ein elevated Paket-Start bleibt nur fuer einen gesonderten Runtime/UAC-Claim offen; der frische native 50er-Smoke bestand als Scanner-Release-Gate. 2. Profilquellen vor Ablauf erneuern und jedes weitere Profil wieder mit Golden-/adversarial Fixtures absichern. 3. Neue Review-Faelle nur nach visueller Crop-Bestaetigung in Parser-Corpus oder Lernregeln uebernehmen. Die historische 136er-Population ist bereits auditiert; der eine unvollstaendige Crop bleibt bewusst `Review`. 4. Result-Klarheit und explizite Mutation-QA weiter staerken. 5. Erst nach eigenen Quellen fuer Charakterbesitz, Team, Waffe und Rotation eine breitere Optimizer- oder Empfehlungsphase erwägen. ## Aktueller Nachweis - `npm run acceptance:offline`: PASS - `npm test`: 446/446 in 72 Dateien - `npm run acceptance:offline`: final PASS nach Lokalisierung, lokaler Loeschung, Timing, Korpus und UI-Acceptance-Runner; Package-Verifier 27/27 - Build-Fit-Ranker/Kontext/Profile: offline PASS; gebaute Renderer-UI PASS, aber kein elevated Paket- oder neuer nativer Live-Claim - `npm run package:verify`: 27/27 - `npm audit` und `npm audit --omit=dev`: 0 Findings - Dev live: 5/20/50/100 PASS - Settings UI live: Artifact-Limit 5, 5/5 Capture/Processing/Parsing, 0 Review/Fehler, `persist=false`, Ergebnisleiste 5 PASS - Packaged Settings UI live: Reihenlimit 1 -> Ziel 8, 8/8 Capture/Processing/Parsing, 0 Review/Fehler, `persist=false` PASS - Packaged Settings UI streaming: Artifact-Limit 20, maximal 11 Live-Resultate waehrend Capture, final 20/20, 0 Review/Fehler/Writes PASS - Packaged UI-Dichteabnahme `20260710-214406`: maximal 9 sichtbare Resultate und 12 Evaluierungen waehrend Capture, final 20/20, 0 Review/Fehler/Writes; Ergebnisflaeche 634 px bei 1304x821 ohne Dokument-Overflow PASS - Packaged Full Inventory `20260710-223233`: OCR-Ziel/Capture/Results 2.211/2.211, 70 Seiten, 4,24 Capture/s, aktueller Package-Reprocess 2.211/2.211 mit 136 Review (6,15%), 0 Fehler/Writes; Saved-Run-Validator 2.075 evaluated, 0 unknown, `issues=0` PASS - Packaged No-Genshin Safety: `genshinFound=false`, HWND 0, leerer Zielprozess, keine Capture-Quelle und 0 Renderer-Fehler PASS - Packaged live: Start/Bridge/Resources/Inventory und nativer 5er PASS - Finale visuelle Evidenz: `outputs/ui-qa/final-scan.png`, `outputs/ui-qa/final-scan-settings.png`, `outputs/ui-qa/final-inventory.png` und die weiteren `final-*.png`-Ansichten unter `outputs/ui-qa/`. sowie `outputs/packaged-live/streaming-ui-20-results-view.png` (temporäre lokale Dateien zum Abnahmezeitpunkt; bei der angeforderten Workspace-Bereinigung am 2026-07-11 entfernt).