Files
l2-market-parser/docs/goals/dynamic-tooltip-crop/EVIDENCE.md
T

2.0 KiB

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.
  • 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.
  • 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.