Skip to content

fix(umdf): encode administrative halt/resume with official SecurityStatus_3 semantics (#583) - #589

Merged
pedrosakuma merged 2 commits into
mainfrom
fix/583-halt-resume-security-status
Jul 27, 2026
Merged

fix(umdf): encode administrative halt/resume with official SecurityStatus_3 semantics (#583)#589
pedrosakuma merged 2 commits into
mainfrom
fix/583-halt-resume-security-status

Conversation

@pedrosakuma

Copy link
Copy Markdown
Owner

Summary

  • replace proprietary halt/resume securityTradingEvent bytes with the official UMDF enum values and force halted instruments to publish FORBIDDEN
  • publish the current SecurityStatus_3 state on snapshot/recovery using the current per-security RptSeq watermark without advancing incremental sequencing
  • extend wire/core tests to pin halt, resume, and recovery semantics

Acceptance criteria

  • halt publishes securityTradingStatus=FORBIDDEN with securityTradingEvent=SECURITY_STATUS_CHANGE
  • resume publishes the restored phase with securityTradingEvent=SECURITY_REJOINS_SECURITY_GROUP_STATUS
  • no out-of-domain securityTradingEvent bytes are emitted
  • snapshot/recovery publishes current SecurityStatus_3, including FORBIDDEN while halted
  • per-security RptSeq and snapshot packet sequencing invariants remain intact
  • vendored schema bindings and files under schemas/ remain unchanged

Validation

  • dotnet build SbeB3Exchange.slnx
  • dotnet test tests/B3.Umdf.WireEncoder.Tests/B3.Umdf.WireEncoder.Tests.csproj
  • dotnet test tests/B3.Exchange.Core.Tests/B3.Exchange.Core.Tests.csproj
  • dotnet test tests/B3.Exchange.Matching.Tests/B3.Exchange.Matching.Tests.csproj
  • git diff --stat -- schemas/

Closes #583

pedrosakuma and others added 2 commits July 27, 2026 22:43
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…acket

PublishFor now always emits the book snapshot packet(s) plus a
standalone SecurityStatus_3 recovery packet per instrument (issue
#583). ChannelDispatcherStartupEpochTests asserted the pre-existing
single-packet count; update it to 2 to match the new, correct
behavior. Confirmed CI failure was this stale assertion, not a
regression in the fix itself (dispatcher wiring, sequencing, and
buffer-reuse were independently reviewed and confirmed correct).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@pedrosakuma
pedrosakuma merged commit 36ee32f into main Jul 27, 2026
7 checks passed
@pedrosakuma
pedrosakuma deleted the fix/583-halt-resume-security-status branch July 27, 2026 23:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fix(umdf): encode administrative halt with official SecurityStatus_3 semantics

1 participant