Skip to content

ThetaPrime v0.35.17

Choose a tag to compare

@dsharma01 dsharma01 released this 27 Aug 10:57
· 7 commits to main since this release

Download ThetaPrime-0.35.17-setup.exe

Fixed

  • /api/desktop_alerts is now exempt from the prod login gate.
  • Webhook notification config was missing its "Send Test" button; added.
  • "Close Long Legs" button label corrected to "@ EOD" (was stale "@ 15:20").

[0.35.16] — 2026-08-27

Fixed

Batches 10-11 of the 2026-08-25 systematic bug hunt (findings #45-57), closing out all 58 findings. Full suite: 1232 passed (up from 1220).

  • _run_short_reentry now reuses the parked long legs' actual units for re-entered short legs instead of recomputing sizing.qty() fresh, which could land a different lot count under capital_pct sizing days after entry — leaving the diagonal naked on mismatched lots.
  • scanner.py OI/price baselines no longer treat a genuine 0 (fresh-listed strike's previous-day OI, or a flat net_change) the same as missing/undefined — both now show their correct "Flat"/0 state instead of falling back to a misleading label.
  • storage.py decrypt/re-encrypt of pending DB files now attempts every file before raising, instead of one bad file blocking every later file in the list from being (de/re)crypted.
  • app.py _leg_token_cache now resets on a date change instead of growing unbounded for the life of the waitress process.
  • Rejected-leg reconciliation now matches the position-count change since a snapshot taken right before order placement, instead of raw broker quantity, so it can no longer mistake a coincidentally-same-sized pre-existing position for a genuine new fill.
  • storage.is_token_fresh() is now memoized per-request instead of doing 2 keyring reads twice per page load.
  • /api/margins now fetches all 3 brokers' margins concurrently instead of a slow broker blocking the others.
  • Strategy list + archived list are now computed from one directory scan instead of two.
  • run_monitor now batches one ltp() call per tick across all held legs instead of a separate round-trip per leg group.
  • Close-and-verify logic shared between _close_legs/_close_for_reentry, and the OTM strike-scan shared across PremiumTarget/GammaTarget/DeltaOtm, are now single implementations (pure refactor, no behavior change).
  • publish-release.ps1 release notes now scope to the current version's changelog section instead of the whole file, avoiding GitHub's 125000-char release-body cap as CHANGELOG.md grows.