Improve L2 market parsing and data handling

This commit is contained in:
2026-08-11 22:24:36 +03:00
parent de41230b9b
commit af9cd1e92d
58 changed files with 2474 additions and 444 deletions
@@ -0,0 +1,39 @@
# Dynamic Tooltip Crop Evidence
## Acceptance Evidence
- Browser geometry: a 1920 x 1080 reference keeps an intrinsic canvas of
1920 x 1080 and renders at 3840 x 2160. The stage scroll width grows to
3888 px, so the image is not squeezed back into the panel. See
[calibration-2x.png](./calibration-2x.png).
- Browser pointer smoke: drawing on the 2x canvas creates calibration regions
and advances through all six calibration steps. The marker drag from display
`(326.6, 604)` to `(426.6, 642)` mapped to source `(288, 259)` through
`(338, 278)` and was subsequently found by anchor matching at 99.8%.
- Real tooltip fixture: the complete calibration check finished 6/6 stages and
parsed `Sword of Revolution`, quantity `1`, and `1,700,000 Adena` at 70% OCR
confidence. The third descriptive tooltip row was not passed to item parsing.
See [tooltip-diagnostics.png](./tooltip-diagnostics.png).
- The wide tooltip region is used only for the `Price :` anchor search. The
item OCR preview contains the fitted name and price rows, not the full search
band.
## Verification
- `node.exe --test`: 18 tests passed, including white/yellow pixel masks,
stopping a text run before distant UI noise, and fitting a short row whose
legacy saved width crosses the frame edge.
- `node.exe node_modules/vite/bin/vite.js build`: production build passed.
Vite reports the existing large OpenCV chunk warning.
- `git diff --check`: passed; Git only reported LF-to-CRLF conversion warnings.
## Review Notes
- PRE plan review: aligned after clarifying the single owner of the dynamic
right edge, the no-wide-OCR fallback, and legacy calibration behavior.
- POST plan review: aligned; saved screenshots and the unbounded-run regression
close the evidence and no-wide-fallback gates.
- Correctness review: no remaining findings after isolating fitted rows in a
masked composite and applying yellow pixels only to the price row.
- Maintainability review: no remaining findings after reading pixels directly
from the source canvas and simplifying the text-run control flow.