docs(compliance): close GAP-28 (#500) and flip GAP-30 (#533) to done#534
Merged
Conversation
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>
This was referenced Jun 22, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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.priceBandPercent→LastTradePriceProvider→HostRouter.LastTradePriceMantissa→ the dispatcher's durable per-security_lastTradePriceBySecurity→ reject outside[lastTrade·(1−pct), lastTrade·(1+pct)]withPriceExceedsCurrentPriceBand(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 onExecutionReport_Cancel(id=202) — it is absent fromExecutionReport_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 todone. Closes #533.#464 — MassQuote
Resolved by research (no doc row change): no schema > 8.4.2 exists,
MassQuotenever appears in the EntryPoint changelog, and theQuote*templates (401-405) are Termo/Forward-bound (privateQuotehardcoded TRUE, mandatorydaysToSettlement/fixedRate). Stays closed-as-blocked; closing comment posted on the issue.Research/scope decisions approved by @pedrosakuma.