The first screenshot request of each batch pays extra browser-session
cleanup time in TradeSnap (~16s total), which the 15s client timeout
misclassified as a failure while the capture actually succeeded.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Gate opening fills on Hyperliquid's dir field (Open Long/Short) instead of
start_position == 0, so adds to an existing position are no longer dropped
- Replace the fixed 500ms aggregation window with a 3s per-fill debounce
(generation counter) so late fills of the same oid are not truncated
- Carry real start_pos/end_pos on PositionTradeEvent and distinguish
Open vs Increase actions
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>