Skip to content

calesthio/OptionsCanvas

v0.1.10 Feature

This release adds 2 notable features for engineering teams evaluating rollout.

Published 6d Self-Hosted
✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →

✓ No known CVEs patched in this version

Topics

0dte algorithmic-trading alpaca charting day-trading fintech
+9 more
flask lightweight-charts local-first options options-trading python self-hosted trading-platform vanilla-js

Affected surfaces

breaking_upgrade

Summary

AI summary

Daemon thread enforces stop‑loss and take‑profit checks every 2 seconds regardless of browser state.

Changes in this release

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

Track calesthio/OptionsCanvas

Get notified when new releases ship.

Sign up free

About calesthio/OptionsCanvas

All releases →

Related context

Related tools

Earlier breaking changes

  • v0.1.1 External scripts must read and include the CSRF token in X-CSRF-Token header for POST/PUT/PATCH/DELETE calls.

Beta — feedback welcome: [email protected]