Chart geometry bugs live in the browser, and the browser is usually on a different machine from whoever is debugging it — so "it passes in my headless run" keeps being said about a chart that is unusable on someone's screen. This session spent hours on that gap: a screenshot showed the crosshair reading 22:42 while the snap label read 22:58, sixteen bars apart on a 1m chart, and no headless run reproduced it at any viewport, any device pixel ratio, before or after a resize, or across ten scripted gestures. Opening the chart with ?diag=1 makes every snap post what the client computed — the cursor's time, price and x, the snapped time and price, how many bars are held, the first and last of them, and the chart width — which the server logs as SNAPDBG. ?diag=0 turns it off; the setting is remembered. Throttled to about one report a second, and off by default, so it costs nothing when unused. Kept as a permanent facility rather than scaffolding to delete: this will not be the last geometry puzzle, and the endpoint takes whatever fields SnapReport declares. Documented in AGENTS.md alongside the note about where things run. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
457 KiB
2408x1421px
457 KiB
2408x1421px