Skip to content

docs(compliance): close GAP-28 (#500) and flip GAP-30 (#533) to done#534

Merged
pedrosakuma merged 1 commit into
mainfrom
docs/close-500-533-464-compliance
Jun 22, 2026
Merged

docs(compliance): close GAP-28 (#500) and flip GAP-30 (#533) to done#534
pedrosakuma merged 1 commit into
mainfrom
docs/close-500-533-464-compliance

Conversation

@pedrosakuma

Copy link
Copy Markdown
Owner

Documentation-only follow-up from the pre-scope of the remaining open issues. No code, no codec changes.

GAP-28 / #500 — dynamic last-trade collar

The dynamic last-trade-relative collar already functions end-to-end at the gateway decode edge:
tcp.priceBandPercentLastTradePriceProviderHostRouter.LastTradePriceMantissa → the dispatcher's durable per-security _lastTradePriceBySecurity → reject outside [lastTrade·(1−pct), lastTrade·(1+pct)] with PriceExceedsCurrentPriceBand (wire 16). The engine already enforces the static band and the auction-phase TOP collar.

An engine-resident duplicate of the dynamic collar is intentionally not pursued: it would duplicate the working gateway guardrail and force a snapshot codec version bump (v6→v7) to give the engine its own persisted last-trade reference. Closes #500.

GAP-30 / #533 — ExecRestatementReason=210

ExecRestatementReason=210 (CANCEL_REMAINING_FROM_SWEEP_CROSS) is not applicable and not a schema gap. Value 210 exists only on ExecutionReport_Cancel (id=202) — it is absent from ExecutionReport_New (id=200) in schema 8.4.2 — and annotates a cancelled sweep residual. This simulator instead lets the residual rest (phase 2 emits ER_New, phase-1 IOC cancel suppressed), so no ER_Cancel is ever emitted to carry 210. Flips GAP-30 to done. Closes #533.

#464 — MassQuote

Resolved by research (no doc row change): no schema > 8.4.2 exists, MassQuote never appears in the EntryPoint changelog, and the Quote* templates (401-405) are Termo/Forward-bound (privateQuote hardcoded TRUE, mandatory daysToSettlement/fixedRate). Stays closed-as-blocked; closing comment posted on the issue.

Research/scope decisions approved by @pedrosakuma.

GAP-28 (#500): document the dynamic last-trade collar as a layered defense
fully wired at the gateway decode edge (priceBandPercent →
HostRouter.LastTradePriceMantissa → dispatcher _lastTradePriceBySecurity →
PriceExceedsCurrentPriceBand). An engine-resident duplicate is intentionally
not pursued: it would duplicate the working guardrail and force a snapshot
codec version bump for an engine-owned last-trade reference.

GAP-30 (#533): ExecRestatementReason=210 (CANCEL_REMAINING_FROM_SWEEP_CROSS)
is not applicable and not a schema gap. Value 210 exists only on
ExecutionReport_Cancel (id=202), absent from ExecutionReport_New (id=200) in
schema 8.4.2. This simulator rests the sweep residual (emits ER_New, IOC
cancel suppressed), so no ER_Cancel carries 210. Flip GAP-30 to done.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@pedrosakuma pedrosakuma marked this pull request as ready for review June 22, 2026 22:28
@pedrosakuma pedrosakuma merged commit 7addc62 into main Jun 22, 2026
7 checks passed
@pedrosakuma pedrosakuma deleted the docs/close-500-533-464-compliance branch June 22, 2026 22:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant