Document scanner product roadmap and Gitea workflow
This commit is contained in:
@@ -62,11 +62,14 @@ flowchart LR
|
||||
| `src/features/scan/hooks/scanViewScanActions.ts` | Manual scan and visible-grid scan orchestration |
|
||||
| `src/features/scan/hooks/scanViewEntryActions.ts` | Guided auto-entry choreography for visible inventory, direct inventory, and IK-style fallback paths |
|
||||
| `src/features/scan/hooks/useScanGoodInterop.ts` | Scan-page GOOD import/export actions against renderer repository ports |
|
||||
| `src/features/inventory/*` | Planned scanned-artifact inventory, compact result list/grid, filters, and artifact detail views |
|
||||
| `src/lib/artifactOcrParser.ts` | Converts OCR output into a parsed artifact candidate with confidence and notes |
|
||||
| `src/lib/fuzzyMatch.ts` | Generic fuzzy string matching for OCR text against known game data |
|
||||
| `src/lib/genshinLookup.ts` | Pure lookup and validation API for generated Genshin data |
|
||||
| `src/lib/autoScanEntry.ts` | Pure entry-mode planning and auto-scan preflight validation |
|
||||
| `src/lib/cardReadyGate.ts` | Detail/page fingerprint readiness gate for scan timing |
|
||||
| `src/lib/artifactEvaluation.ts` | Planned deterministic artifact value evaluation with score reasons and review-safe output |
|
||||
| `src/lib/upgradeProjection.ts` | Planned best/middle/worst upgrade projection for under-leveled artifacts |
|
||||
| `src/lib/scoring.ts` | Recommendation and build scoring logic |
|
||||
| `src/lib/demoData.ts` | Temporary local demo snapshot |
|
||||
| `src/data/genshinGameData.json` | Generated local dictionary of characters, artifact sets, slots, and stats |
|
||||
@@ -116,6 +119,9 @@ sequenceDiagram
|
||||
| OCR crops | Electron main | Electron main | Details modal, parser |
|
||||
| Game dictionary | `genshin-db` generated JSON | `src/data/genshinGameData.json` | OCR parser |
|
||||
| Parsed artifact candidate | OCR parser | Renderer domain logic | Result panel, future local DB |
|
||||
| Scan result entry | Scan loop and parser/evaluator | Renderer domain logic | Live scan rail, artifact inventory, summary |
|
||||
| Artifact evaluation | Deterministic evaluator | `src/lib` | Result pills, inventory sort/filter, detail reasons |
|
||||
| Upgrade projection | Projection helper | `src/lib` | Artifact detail view only |
|
||||
| Review samples | User action in Scan UI | Electron userData `review-samples.jsonl` | Future regression tests and OCR training |
|
||||
| Stored artifacts | Manual/automatic scans | Electron userData `artifact-store.json` (dedupe by content signature) | Future triage, recommendations, SQLite migration |
|
||||
| Recommendations | Scoring module | Renderer domain logic | Triage and builds views |
|
||||
@@ -173,6 +179,58 @@ Auto-scan artifact captures also bypass Electron source-list enumeration and use
|
||||
the GDI capture helper directly once the selected source/Genshin state has been
|
||||
preflighted. Manual captures and source refresh still use `desktopCapturer`.
|
||||
|
||||
## Scan Results And Inventory UX
|
||||
|
||||
The next product surface is documented in
|
||||
[scanner-results-inventory-roadmap.md](scanner-results-inventory-roadmap.md).
|
||||
Architecture rules:
|
||||
|
||||
- The active scan view is an operator surface, not the full evaluator. It should
|
||||
show the screenshot/preview, the right-side live result rail, Stop/status
|
||||
controls, and review access.
|
||||
- The live result rail receives completed artifact results only. Intermediate
|
||||
OCR/debug stats stay in diagnostics or detail.
|
||||
- A scan result row preserves extraction status and artifact value status as
|
||||
separate data even when the UI shows one compact pill.
|
||||
- The artifact inventory view owns browsing, filtering, sorting, and opening
|
||||
detail.
|
||||
- The artifact detail view owns screenshot/crop inspection, OCR confidence,
|
||||
parser notes, value score reasons, and upgrade projection.
|
||||
- Upgrade projection is a local deterministic/probabilistic helper, never a
|
||||
claim that an artifact will roll a specific way.
|
||||
|
||||
Planned result flow:
|
||||
|
||||
```mermaid
|
||||
flowchart LR
|
||||
ScanLoop["Scan loop"]
|
||||
Parsed["Parsed artifact"]
|
||||
ReviewGate["Extraction confidence / review gate"]
|
||||
Value["Artifact value evaluator"]
|
||||
Store["Artifact store"]
|
||||
Rail["Live result rail"]
|
||||
Inventory["Artifact inventory"]
|
||||
Detail["Artifact detail"]
|
||||
|
||||
ScanLoop --> Parsed
|
||||
Parsed --> ReviewGate
|
||||
ReviewGate --> Value
|
||||
Value --> Store
|
||||
Value --> Rail
|
||||
Store --> Inventory
|
||||
Rail --> Detail
|
||||
Inventory --> Detail
|
||||
```
|
||||
|
||||
Future queue refactor:
|
||||
|
||||
- One capture/game-control worker may click, scroll, focus, and poll failsafes.
|
||||
- OCR/parse/evaluation may process bounded queued screenshot/crop jobs.
|
||||
- Queueing must preserve stop behavior, duplicate handling, review decisions,
|
||||
and the existing read-only safety boundary.
|
||||
- The queue refactor is secondary to content extraction and result/inventory
|
||||
contracts while current scan speed remains acceptable.
|
||||
|
||||
## Security And Safety
|
||||
|
||||
| Area | Policy |
|
||||
@@ -198,3 +256,5 @@ The app keeps a Tesseract.js worker pool, can use the Inventory-Kamera
|
||||
`genshin_fast_09_04_21.traineddata` path for comparison, and reports capture,
|
||||
OCR, card-ready, scroll-ready, active-scan, and projected-100 timings. A default
|
||||
engine change requires a same-capture benchmark and a qualified live soak result.
|
||||
For the next product phase, performance work should not displace extraction
|
||||
quality, result clarity, or review safety unless evidence shows a regression.
|
||||
|
||||
Reference in New Issue
Block a user