Bug
[CPP-5028 ] - Acceptor in FlatMessage mode delivers a corrupted message when the first Logon and the next message arrive in one TCP read
[CPP-5020 ] - Session::flushSessionStorage(true) does not synchronize the session state file
[CPP-4996 ] - Reentrant send during batch preparation breaks wire order
[CPP-4989 ] - The LinkError can be dropped on certain conditions
[CPP-4981 ] - The sequence gap is not detected and processed for malformed incoming messages
[CPP-4974 ] - Possible access violation when a bad message is received and the Pluggable session storage is used
[CPP-4937 ] - Possible data race in AsyncFileBasedStorage
[CPP-4845 ] - The ResendRequest processing is not stopped when the Session::resendingBatchSize(..) is used and the FIX connection is closed
Improvement
[CPP-5021 ] - The FlatMessage::begin() should return an iterator on the actual first field
[CPP-4985 ] - Add Session::listenNetworkInterfaceAndPort()
[CPP-4976 ] - Support splitting acceptor sessions processing by different stacks in separate threads by local network interfaces
[CPP-4910 ] - Support macOS
[CPP-4904 ] - Add more details about "Dispatching Network Events" in the ExternalThread Mode
[CPP-4894 ] - Add an ability to Timestamp class to parse timestamp string without the specified format
[CPP-4893 ] - Add an ability to validate session-level fields to the Message class
[CPP-4887 ] - Add "Using Onload with the ExternalThread mode" article
[CPP-4884 ] - Message.toJson() should consider the presence of JSON symbols inside tag values
[CPP-4862 ] - Add a note that sessions with SSL encryption always use the DedicatedThreads threading model
[CPP-4850 ] - Support the MONTHYEAR type validation
[CPP-4841 ] - Add an optional sessionRejectReason parameter to the Session::sendReject(..) method
[CPP-4808 ] - Improve messaging iterator classes
[CPP-4777 ] - Prevent enabling both Session::requestOnlyMissedMessages and Session::reportNewMessagesWhileWaitingForMissedMessages
[CPP-4769 ] - Reject Logon messages received in the Established state without ResetSeqNumFlag and NextExpectedMsgSeqNum
[CPP-3473 ] - Add an ability to load scheduler settings from the XML config file
Task
[CPP-4992 ] - Add EP312 to the Engine
[CPP-4767 ] - Remove 'CME specific settings' from docs
New Feature
[CPP-4959 ] - Support Visual Studio 2026
[CPP-4870 ] - Add Dictionary::fieldType(Tag tag)
[CPP-4797 ] - Add FlatMessage::toString(char delimeter)
[CPP-4781 ] - The TypedMessagesGenerator ability to generate a namespace with tags from the given dictionary