Commit 69105cb
feat(ev): add is_suspended/suspended_since to EVOpportunity (#13)
## What
Adds two additive, optional fields to the `EVOpportunity` interface:
- `is_suspended?: boolean` — true while a live opp's sharp reference is
momentarily suspended
- `suspended_since?: number` — unix seconds the suspension began
(present only when suspended)
## Why
Mirrors the server-side flag-gated suspended-opportunity state shipped
in **sharp-api-go #789** (`EV_SUSPENDED_STATE`). When Pinnacle (the
sharp ref) suspends a live market, the engine now keeps the opp
**visible-but-suspended** with the same stable `id` and the **edge
hidden** (never a stale EV%), instead of dropping it and re-adding on
resume — eliminating live EV flicker. SDK consumers need the field to
render the suspended state (greyed / EV hidden) and to keep the row in
place across resume.
## Safety / compatibility
- Purely **additive optional** fields — mirrors the
`team_side`/`market_segment` precedent (snake_case wire keys,
passthrough).
- **Inert until the server flag flips:** the fields are absent from the
wire unless `EV_SUSPENDED_STATE=1` on the API. Today (flag off) the wire
is byte-identical, so this is fully backward-compatible. No version
bump.
- `typecheck` + `build` pass.
Type: feat
Co-authored-by: paperclip-resolver[bot] <paperclip-resolver[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>1 parent 6315e50 commit 69105cb
1 file changed
Lines changed: 9 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
351 | 351 | | |
352 | 352 | | |
353 | 353 | | |
| 354 | + | |
| 355 | + | |
| 356 | + | |
| 357 | + | |
| 358 | + | |
| 359 | + | |
| 360 | + | |
| 361 | + | |
| 362 | + | |
354 | 363 | | |
355 | 364 | | |
356 | 365 | | |
| |||
0 commit comments