This release adds 2 notable features for engineering teams evaluating rollout.
✓ No known CVEs patched in this version
Topics
+9 more
Affected surfaces
Summary
AI summaryDaemon thread enforces stop‑loss and take‑profit checks every 2 seconds regardless of browser state.
Changes in this release
| Type | Severity | Summary | CVE |
|---|---|---|---|
| Feature | Low |
Market-hours gating skips broker calls outside regular trading hours (9:30–16:00 ET). Market-hours gating skips broker calls outside regular trading hours (9:30–16:00 ET). Source: granite4.1:30b@2026-05-29-audit Confidence: low |
— |
| Feature | Low |
At market open, a sweep checks all positions for overnight gap protection. At market open, a sweep checks all positions for overnight gap protection. Source: granite4.1:30b@2026-05-29-audit Confidence: low |
— |
| Bugfix | High |
Stop loss and take profit checks now run independently of browser state every 2 seconds. Stop loss and take profit checks now run independently of browser state every 2 seconds. Source: llm_adapter@2026-05-29 Confidence: high |
— |
Full changelog
Critical: stops no longer depend on the browser being open
Before this release, check_stop_loss() and check_take_profit() ran only inside the /api/position HTTP handler — so stops only checked when the browser was actively polling. A closed tab, throttled background tab, sleeping laptop, or brief network blip silently disabled stop protection. The whole "your stops live locally, off the broker book" promise relied on the browser being awake.
The fix
A daemon thread spawned at server start that calls:
trading_engine.process_pending_orders()
trading_engine.check_stop_loss()
trading_engine.check_take_profit()
every 2 seconds, unconditionally, for as long as the server is up. Browser state no longer matters to stop enforcement.
Market-hours gating
The loop ticks at 2s cadence 24/7 (it's cheap) but skips broker calls outside RTH (9:30–16:00 ET) since a market sell can't fill on a closed market. Open/close transitions log a single line each — no log spam.
Overnight gap protection: at the 9:30 open, the very first tick sweeps every position immediately. If your underlying gapped through your SL overnight, it fires within 2 seconds of the bell — not whenever the browser happens to reconnect.
Upgrade
Pull main, restart the platform. If you carry positions overnight or trust stops to fire while you're away from the screen, you want this release.
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About calesthio/OptionsCanvas
All releases →Beta — feedback welcome: [email protected]