6.6 KiB
Artifact Evaluation And Offline Validation - 2026-07-10
Historical pre-live snapshot. The deferred live work described here was completed later on 2026-07-10; see NATIVE_SCANNER_LIVE_ACCEPTANCE_2026-07-10.md.
This report records the implementation of the five post-ingestion phases. No live Genshin smoke test was run during this work. Existing native scan results were used as the only real Artifact input.
Implemented Phases
1. Deterministic Artifact evaluation
src/lib/artifactEvaluation.tsimplementsroll-efficiency-v1.- The score measures legal substat roll-tier efficiency from
0-100; it does not pretend to be universal character or build value. - Main stat validity, extraction confidence, roll legality, and build fit stay separate.
- Clean results become
evaluated; uncertain extraction remainsreview; inconsistent or incomplete clean data becomesunknowninstead of receiving a fabricated score. - Locked and equipped state do not change Artifact quality.
2. Inventory and detail integration
- Native
scan-results.jsonentries now carry a versioned value evaluation, score, reason codes, legal roll counts, and per-substat efficiency. - Legacy saved results are evaluated on load without requiring a rescan.
- The scan result rail shows compact roll-efficiency values.
- Inventory adds evaluated/open filters and roll-value sorting.
- Artifact detail shows score reasons, roll breakdown, and the explicit
Build-Fit offenboundary. - Review results never receive a normal quality score.
3. Offline packaged-app verification
- Electron was upgraded from 33 to
43.1.0because the old runtime was listed by the production dependency audit. - Deprecated
NativeImage.getBitmap()calls were migrated totoBitmap(). electron-builder,@electron/asar, and repeatable package scripts were added.npm run package:offline-checkbuilds the C# helper, renderer, Electron main process, and an unpacked Windows app without launching it.scripts/verify-packaged-app.mjsverifies the executable, ASAR entries, relative renderer assets, current runtime signature, preload, helper, IK lists, and matching IK version.- Packaged helper and IK lookup now use only
process.resourcesPathby default; repository paths remain development-only and cannot mask missing packaged resources. - The unpacked app passed
27/27project/package checks. Runtime launch and Genshin interaction remain deliberately deferred to the next live session.
4. Offline repeatability replay
npm run scan:native:replay -- --run-dir=<saved-run> --repeats=5evaluates a savedscan-results.jsonrepeatedly and compares deterministic SHA-256 payload hashes.- It writes
outputs/native-replay/<run>/native-replay-report.jsonand fails if a clean parsed Artifact cannot be evaluated. - The replay never focuses, captures, clicks, scrolls, or starts Genshin.
| Saved run | Repeats | Results | Evaluated | Review | Unknown | Projection | Deterministic |
|---|---|---|---|---|---|---|---|
20260709-223006 |
5 | 20 | 20 | 0 | 0 | 20 complete | yes |
20260709-223041 |
5 | 50 | 49 | 1 historical review | 0 | 49 complete | yes |
20260709-223441 |
5 | 100 | 100 | 0 | 0 | 9 available, 91 complete | yes |
The 100-result run produced a score range of 76.1-92.5 with average 84.3.
This is roll-tier efficiency, not build fit.
5. Upgrade projection
- Under-leveled, unambiguously identified 5-star Artifacts with four known legal substats receive deterministic worst/middle/best roll-efficiency bounds up to +20.
- The calculation uses remaining +4 steps and legal rarity-specific roll tiers.
- Three-substat, 4-star, ambiguous-rarity, review, incomplete, or illegal data disables projection.
- +20 Artifacts are marked complete and do not show invented future rolls.
- Every visible projection states that target substat and roll tier are random and that the result is not guaranteed.
Static Evidence
npm run lint: passednpm test: passed,262/262tests in40/40filesnpm run build: passednpm run eval:26/26exact cases,77/77fieldsnpm run scan:assessment:test: passednpm run package:verify:27/27checks passednpm audit:0vulnerabilitiesnpm audit --omit=dev:0vulnerabilitiesgit diff --check: passed; only the known line-ending warnings may be shown
Additional Non-Live Runtime Evidence
The current source build was started once through the normal non-elevated dev runtime without calling capture, preflight, probe, click, scroll, or scan endpoints. It proved the following boundaries without sending Genshin input:
/healthreported the current runtime signature, one main window, and all four registered hotkeys./scanner/statusfoundGenshinImpact, reportedisElevated: false, and reached the C# helper while the native scanner remainedidle.- IK data
6.7.0loaded as valid with 61 Artifact sets and 289 pieces; weapons, characters, and materials remainedcatalog_only. - Four OCR workers warmed successfully in
212 ms. - The saved 100-result run loaded through the runtime and legacy
deferredvalues were enriched toevaluatedwithout rewriting the source run. - A valid native PNG crop loaded successfully. An outside path, a JSON file,
and a traversal path were all blocked with HTTP
409. - The runtime was then shut down through
/dev/shutdown; no stale Electron process or port listener remained.
npm run scan:native:validate:saved now validates the newest complete
20/50/100 evidence set in one read-only command. It checks run contracts, PNG
containment, non-persistence, review-log provenance, five-repeat determinism,
scores, and projection boundaries. The current evidence set passed with zero
issues.
npm run acceptance:offline is the durable umbrella gate for work that does
not require Genshin input. It runs lint, all unit tests, OCR eval, assessment
self-test, saved native evidence validation, a fresh helper/app package build,
27 package checks, full and production dependency audits, and
git diff --check. The current run passed every step and writes its machine-
readable report under outputs/offline-acceptance/.
Deliberately Not Claimed Yet
- No packaged executable was launched.
- No live Smart Capture or native scan was started.
- No later-session 20/50/100 live repeatability claim was added.
- No Inventory Kamera parity or 3-artifacts/second end-to-end claim was added.
- Build-fit scoring and account recommendations remain separate later work.
The required live and visual checks are listed in TOMORROW_LIVE_TEST_PLAN_2026-07-10.md.