v2.0.0.4 #1266
marketcalls
announced in
Announcements
v2.0.0.4
#1266
Replies: 1 comment
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Version 2.0.0.4 Released
Date: 16th Apr 2026
Feature Release: Exchange-Aware /python Strategies, Event-Driven Dashboard, Compound Rate Limits, Structured Error Logging & Broker Fixes
This is a feature release featuring 41 commits (excluding auto-builds) from 6 contributors, focused on making /python strategy hosting exchange-aware with per-strategy holiday calendars, replacing polling with event-driven SocketIO refresh across trading pages, adding structured JSON error logging, sandbox performance optimization, compound rate limit support, and broker-specific fixes for Motilal, Groww, Zebu, Flattrade, and Definedge.
Highlights
"10 per second;40 per minute"), matching broker-specific API limits like Flattrade's order rate.log/errors.jsonlwith timestamped JSON entries containing full traceback, logger name, source file:line, and Flask request context for every ERROR+ event.asyncio.run()crashes in Docker.New Features
Exchange-Aware /python Strategy Hosting
is_within_schedule_timeintersects user's schedule with the exchange's effective session windowOPENALGO_STRATEGY_EXCHANGEenv var injected into every strategy subprocessexchange=NSEon first load — zero migration requiredstrategies/RESOURCE_LIMITS.md) documenting per-strategy memory, FD, CPU, and log capsEvent-Driven Dashboard Refresh
ORDER_BOOK_EVENTSasOrderEventType[]and wire intouseOrderEventRefreshStructured Error Logging
log/errors.jsonl— structured JSON Lines, ERROR+ only, with timestamp, module, source file:line, traceback, and Flask request contexttraceback.print_exc()withlogger.exception()across REST API, brokers, and websocket_proxyCompound Rate Limits
.envvalidation (e.g.,ORDER_RATE_LIMIT="10 per second;40 per minute").sample.envand rate-limiting documentation with compound syntax examplesSandbox Performance
Bug Fixes
get_open_positionexchange match in Groww smart orders (fix: correct get_open_position exchange match in Groww smart orders #1255)logs_sessionfor non-banned IPs in SecurityMiddleware (fix: clean up logs_session for non-banned IPs in SecurityMiddleware #1256)/chartworks on LinuxHEALTH_DATABASE_URLto.sample.envandinstall-multi.shBroker Fixes
asyncio.run()crash in Docker/python Strategy Fixes
OPENALGO_API_KEY,STRATEGY_ID,STRATEGY_NAME) into strategy subprocess (fix: Inject documented env vars (OPENALGO_API_KEY, STRATEGY_ID, etc.) into strategy subprocess #1247).envinheritance for strategies and fixOPENALGO_API_KEYreferences/python/guidewith exchange-aware scheduling, env vars, and updated sample strategyFrontend Enhancements
Documentation
strategies/RESOURCE_LIMITS.md) — per-strategy memory, FD, CPU, process, and log limits with realistic usage numbers and server sizing tablestrategies/README.md— exchange-aware gating, env var precedence (HOST_SERVERvsOPENALGO_HOST), worked examples (14-Apr-2026, Sunday Muhurat), troubleshooting, and migration notesCLAUDE.mdwith architectural context for Claude CodeSecurity
Contributors
Special thanks to all contributors who made this release possible:
Upgrade
For existing /python strategies trading MCX or CRYPTO: open each strategy → Schedule → pick the correct exchange from the new dropdown → Save. NSE strategies need no changes.
Links
This discussion was created from the release v2.0.0.4.
All reactions