Skip to content

Commit 32ff804

Browse files
TexasCodingclaude
andcommitted
docs: Update documentation for v3.1.13 release
- Updated CHANGELOG.md with comprehensive v3.1.13 release notes - Updated CLAUDE.md project status to v3.1.13 - Updated README.md version to v3.1.13 - Documented all fixes: event system, type annotations, stability improvements - Highlighted critical bracket order fill detection fix - Added test coverage improvements (30% to 93%) 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
1 parent 2bf4266 commit 32ff804

File tree

3 files changed

+56
-37
lines changed

3 files changed

+56
-37
lines changed

CHANGELOG.md

Lines changed: 39 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -14,37 +14,51 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1414
- Migration guides will be provided for all breaking changes
1515
- Semantic versioning (MAJOR.MINOR.PATCH) is strictly followed
1616

17-
## [Unreleased] - patching_v4 branch
17+
## [3.1.13] - 2025-08-15
1818

1919
### Fixed
20-
- **🔧 Bracket Order Fill Detection**: OrderManager now properly detects entry order fills
21-
- Fixed initialization of OrderManager with realtime client for WebSocket callbacks
22-
- Bracket orders now correctly wait for entry fills before placing protective orders
23-
- OCO (One-Cancels-Other) linking properly implemented for stop/target pairs
24-
25-
- **🔄 Circular Dependencies**: Resolved circular dependency between PositionManager and RiskManager
26-
- Made cross-references optional during initialization
27-
- Proper initialization sequence in TradingSuite
28-
29-
- **🎯 RiskManager Integration**: Fixed RiskManager position manager references
30-
- Now correctly sets both `positions` and `position_manager` attributes
31-
- Ensures all risk methods work properly with PositionManager
20+
- **🎯 Event System Data Structure Mismatches**: Fixed critical order fill detection issues
21+
- Bracket orders now properly detect fills without timing out
22+
- Event handlers now correctly handle both `order_id` and nested `order` object structures
23+
- Added backward compatibility for different event payload formats
24+
- ManagedTrade now listens to correct events (ORDER_FILLED vs ORDER_MODIFIED)
25+
26+
- **📝 Type Annotations for SignalR Connections**: Improved IDE support and type safety
27+
- Created HubConnection type alias for BaseHubConnection
28+
- Fixed market_connection and user_connection from Any to proper types
29+
- IDEs now recognize connection methods (send, on, start, stop)
30+
- Updated ProjectXRealtimeClientProtocol to match implementation
31+
32+
- **🔧 Real-time Connection Improvements**: Enhanced WebSocket stability
33+
- Added circuit breaker pattern to BatchedWebSocketHandler
34+
- Improved subscription handling with proper event waiting
35+
- Fixed asyncio deprecation warnings (get_event_loop → get_running_loop)
36+
- Better error handling and recovery mechanisms
3237

3338
### Improved
34-
- **✅ Type Safety**: Full mypy compliance with 0 errors
35-
- Added comprehensive protocol definitions for all manager interfaces
36-
- Fixed all async method return type annotations
37-
- Proper type hints for event handlers
38-
39-
- **🧪 Test Suite**: Enhanced test mocking for cross-component dependencies
40-
- Bracket order tests now properly mock all required methods
41-
- Fixed test isolation for mixin testing
39+
- **📊 Data Storage Robustness**: Major improvements to mmap_storage module
40+
- Fixed critical bug causing data overwrite on initialization
41+
- Implemented binary search for read_window (significant performance boost)
42+
- Added thread-safe operations with RLock
43+
- Fixed file corruption bug in _resize_file
44+
- Replaced print statements with proper logging
45+
46+
- **🧪 Test Coverage**: Dramatically improved client module testing
47+
- Client module coverage increased from 30% to 93%
48+
- Added 70+ comprehensive test cases across all client components
49+
- Fixed bug in _select_best_contract method
50+
- Full test coverage for base.py (100%) and trading.py (98%)
51+
52+
- **🏗️ Order and Position Management**: Enhanced tracking and stability
53+
- Improved order tracking with better event handling
54+
- More robust position manager logic
55+
- Better error recovery in order chains
56+
- Enhanced TradingSuite configuration options
4257

4358
### Documentation
44-
- Added comprehensive Features documentation to README
45-
- Updated CLAUDE.md with architectural changes
46-
- Clarified RiskManager feature flag requirements
47-
- Documented available TradingSuite features and their usage
59+
- Updated CHANGELOG.md with comprehensive v3.1.13 changes
60+
- Updated CLAUDE.md Recent Changes section
61+
- Added detailed commit messages for all fixes
4862

4963
## [3.1.12] - 2025-08-15
5064

CLAUDE.md

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
44

5-
## Project Status: v3.1.9 - Stable Production Release
5+
## Project Status: v3.1.13 - Stable Production Release
66

77
**IMPORTANT**: This project uses a fully asynchronous architecture. All APIs are async-only, optimized for high-performance futures trading.
88

@@ -300,15 +300,20 @@ async with ProjectX.from_env() as client:
300300

301301
## Recent Changes
302302

303-
### v3.1.13 - Current Development (patching_v4)
304-
- **Fixed**: Bracket order fill detection through proper WebSocket callback initialization
305-
- **Fixed**: Circular dependencies between PositionManager and RiskManager
306-
- **Fixed**: RiskManager integration now properly sets both `positions` and `position_manager` attributes
307-
- **Enhanced**: Full mypy type checking compliance with 0 errors
308-
- **Added**: Comprehensive protocol definitions for all manager interfaces
309-
- **Updated**: Test suite to properly mock cross-component dependencies
310-
311-
### v3.1.12 - Latest Release
303+
### v3.1.13 - Latest Release
304+
- **Fixed**: Event system data structure mismatches causing order fill detection failures
305+
- Bracket orders now properly detect fills without 60-second timeouts
306+
- Event handlers handle both `order_id` and nested `order` object structures
307+
- ManagedTrade correctly listens to ORDER_FILLED instead of ORDER_MODIFIED
308+
- **Fixed**: Type annotations for SignalR hub connections
309+
- Created HubConnection type alias for proper IDE support
310+
- market_connection and user_connection now have proper types instead of Any
311+
- **Improved**: Real-time connection stability with circuit breaker pattern
312+
- **Improved**: Data storage robustness with thread-safety and performance optimizations
313+
- **Enhanced**: Test coverage increased from 30% to 93% for client module
314+
- **Fixed**: Multiple asyncio deprecation warnings
315+
316+
### v3.1.12
312317
- **Enhanced**: Significantly improved `01_events_with_on.py` real-time data example
313318
- Added CSV export functionality with interactive prompts
314319
- Plotly-based candlestick chart generation

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,9 @@ A **high-performance async Python SDK** for the [ProjectX Trading Platform](http
2121

2222
This Python SDK acts as a bridge between your trading strategies and the ProjectX platform, handling all the complex API interactions, data processing, and real-time connectivity.
2323

24-
## 🚀 v3.1.11 - Stable Production Release
24+
## 🚀 v3.1.13 - Stable Production Release
2525

26-
**Latest Version**: v3.1.11 - Fixed ManagedTrade market price fetching for risk-managed trades. See [CHANGELOG.md](CHANGELOG.md) for full release history.
26+
**Latest Version**: v3.1.13 - Fixed critical event system issues affecting bracket order fill detection and improved real-time connection stability. See [CHANGELOG.md](CHANGELOG.md) for full release history.
2727

2828
### 📦 Production Stability Guarantee
2929

0 commit comments

Comments
 (0)