203 lines
12 KiB
Markdown
203 lines
12 KiB
Markdown
# 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).
|