# Public QuickFIX/n parsing metadata and complete request RTT

Status: actual standalone/session/phase/raw/clock qualification passes on both
hosts. Fresh physical matrices are separate; no current peer grade or ratio
is granted by this record.

## Why this separate profile exists

The [first physical collection](RECORD_2026-10-17_dotnet_managed_net10_physical.md)
completed every original validated QuickFIX/n sample but missed report gates on
all flows. Its dictionary validation also differs from the benchmark contract,
and its RTT start excluded construction of the logical request. Its original
sources, outputs and grades remain retained diagnostics. They import no compact
result and cannot supply the corrected profile's admission.

The new `parsing-only` profile uses ordinary public SDK empty dictionaries
(`UseDataDictionary=N`) and installs original SDK message/group/header/field
metadata through public collections. Their Version remains null, disabling
original value/required dictionary checks while preserving actual SDK typed
repeating-group parsing and mandatory structural duplicate checks. Actual
public controls disable checksum/length, field order/value, user-defined-field,
latency and CompID validation. The consumer still independently checks every
canonical body value, all book levels and complete owner folds. SDK/XML bytes
are unchanged; there is no vendor source patch or private reflection.

The first v1 parsing pair completed its session but failed its final actual
settings check. The pinned SDK ignores the similarly named CheckCompID config
key (its implementation is commented out). The corrected v2 uses the actual
public Session.CheckCompID property and removes the ignored key. Both v1
outputs remain untouched; the guard prevented admission. Every v2 endpoint
now proves the actual flags, null/loaded dictionary version and group metadata.
The default validated profile remains separate and cannot acquire a fresh
headline grade. Compact identities distinguish validation/parsing profiles.

## Complete request start and diagnostic proof

Measured RTT now starts before constructing the logical SDK request and ends
after final required extraction/checks. The tick retains fully serialized/
encoded IResponder-before-first-write to first FromApp instruction. The 2 ms
diagnostic delays request construction, receive-before-callback and extraction;
its separate preparation trace binds each RTT start to actual message-ready
and wire-receive checkpoints. Ordinary runs and tick/nonowner outputs have no
preparation trace. Coherent wrong starts or missing preparation delays fail.
This supersedes the earlier measured request-start scope, not the retained
functional diagnostic entry, which preserves its original scope and checks.

## Frozen generation and actual qualification

- Source `3024702418a916e809c495ba053a0352532aa6d9`.
- 925 stripped source files; canonical bytes/modes inventory SHA-256
  `aa63969eb9e2f5a6e702bb4cd940798f6e76eab41d00a44e7faf2dac007a5bad`.
- Exact driver DLL on both hosts:
  `d23f28cf968a57ed0a2fe6c375d1319dcfb1b96293ae5dae130a09f1537defb3`.
- Original upstream SDK revision remains
  `274b491d76f7755be85452dbefead08b2a6d62bd`; exact core, factory, XML and
  dependency hashes remain the pinned canonical SDK inputs. Actual runtime
  is .NET 10.0.12. No LibHFT engine assembly is loaded by the peer.

Each host passes 96 measured-phase TCP pairs: validated/parsing-only,
inherited/first CPU, ordinary/delayed, all four flows, warmup 5/0/5, twenty
measured cycles. Eight original ordinary/delayed functional regressions also
pass. Total **208 actual TCP pairs**, **3,840 primary** and **3,840 scheduler-delay
samples**; all 120 original SDK body/wire and four typed-owner vectors stay
exact. Both hosts build with zero errors/warnings and refuse the missing-SDK
negative case without requiring a LibHFT source dependency.

The ten graded preflight captures close before warmup; IDs and actual owner
folds reset separately for warmup and measurement. All actual callback/count,
Logon/Logout, prepared-tick, measured owner, CPU mask, SDK byte and raw-stream
proof passes. Delayed measured runs contain **1,920 selected clock spans**
and **1,440 actual request-preparation spans** across both hosts. Every raw
sample equals its selected actual clock endpoints; shortened spans fail.

The SDK-free independent reader refuses **4,320 controls per host, 8,640 total**.
It covers exact SDK/dictionary/runtime/flag pins, coherent bilateral repaired-
checksum price corruption, all measured/preflight owners and counts, phase
intervals, raw truncation, wrong placement, borrowed admission and actual delayed
clock gaps. Every original input byte/mode remains unchanged. The report gate
explicitly refuses validated profiles or request construction outside RTT.
The focused report/clock/compact suite passes 189 tests without skips.

Both jobs use `host-cpu-slot wait --pool isol`, HP high priority/SCAN normal,
with actual outer budgets 8–12/13–17 and 10–13/14–17. First-CPU mode records
8/13 and 10/14. These qualification jobs allow concurrent shared work and have
no quiet or timing claim. The immutable fixed-entry bundles are prepared for
separate quiet tiny/report physical matrices with the matching net10 baseline.

## Retention and remaining gates

Both hosts retain the v2 capsule under
`~/.cache/libhft/fullbench-quickfix-n-canonical-parsing-20261017-v2` and working
output under `~/build/codex-fullbench/libhft/quickfix-n-canonical-parsing-20261017-v2`.
The failed v1 capsule/output and previous validated physical outputs remain.
Only small completion receipts were copied locally; no raw evidence is imported
into Git or an archive. Other sessions' code and earlier successful cells are
preserved. Actual physical replay, rate/delay/stability, matched .NET comparison
and remaining language/anchor/release gates still apply.
