Files
genshin-assistant/docs/scanner-rework-status.md
T

12 KiB

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. Detailed evidence: 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).