From 1dc8001a87e7823dfb2570676777bccab1227891 Mon Sep 17 00:00:00 2001 From: "paperclip-resolver[bot]" Date: Thu, 4 Jun 2026 11:32:39 -0400 Subject: [PATCH] feat(ev): add is_suspended/suspended_since to EVOpportunity Additive optional fields mirroring the sharp-api-go EV engine's flag-gated suspended-opportunity state (EV_SUSPENDED_STATE, sharp-api-go #789). When a live opp's sharp reference is momentarily suspended the server keeps the opp visible with is_suspended=true and the edge hidden (never a stale EV%); the opp retains its stable id and updates in-place on resume. Fields are absent from the wire unless the server flag is enabled, so this is fully backward-compatible (no version bump). Type: feat Co-Authored-By: Claude Opus 4.8 (1M context) --- src/index.ts | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/index.ts b/src/index.ts index 8d7db24..3ce6b2e 100644 --- a/src/index.ts +++ b/src/index.ts @@ -351,6 +351,15 @@ export interface EVOpportunity extends NestedRefs { team_side?: 'home' | 'away' | 'draw' | 'over' | 'under' /** Canonical contest slice ("full_game" | "1st_half" | ...) — issue #689. Wire key snake_case. */ market_segment?: string + /** + * True while this live opp's sharp reference is momentarily suspended: the bet is still + * offered but the edge is hidden (never a stale EV%). The opp keeps its stable `id`, so it + * updates in-place on resume instead of flickering. Wire key snake_case `is_suspended`. + * Optional/additive — only present when the server flag `EV_SUSPENDED_STATE` is enabled. + */ + is_suspended?: boolean + /** Unix seconds when the suspension began; present only when `is_suspended` is true. Wire key snake_case. */ + suspended_since?: number detectedAt: string }