# Actual QuickFIX/n prepared-wire, callback and extraction clock qualification

The [actual public Session consumer](RECORD_2026-10-17_quickfix_n_canonical_session.md)
now has a deliberately delayed functional clock diagnostic. Both hosts pass
**48 actual ordinary/probe TCP pairs and 576 independent corruption controls**,
without skips. This proves the selected actual SDK boundaries, not a benchmark
or report timing profile. There is no warmup/pacer/scheduler-delay/raw report
stream, physical/rate/stability admission or current .NET peer comparison.

## Actual same-process clocks

RTT starts immediately before public Session.SendToTarget, after the logical
SDK message object is prepared and before SDK header/encoding/serialization
and actual transport write. It ends after the final required typed extraction,
canonical validation and complete owner fold. Mixed retains the complete
V/W/D/8 path, including full-book work and reactive order creation.

The tick's public IResponder receives the SDK's fully serialized message;
selected byte encoding completes before its clock stamps immediately before
the first actual Socket.Send. It ends at the first instruction of public
IApplication.FromApp entry for the returned D, before header lookup, required
extraction or owner folding. No ER is emitted in tick. Both endpoints are the
same owner's process-local Stopwatch.GetTimestamp clock, converted through
integer Int128 arithmetic to nanoseconds; no remote/wall-clock subtraction is
used. The public Parser's completed receive checkpoints precede Session.Next's
actual parsing/dictionary/sequence work and callback delivery.

`FIXBENCH_QFN_CLOCK_PROBE_NS=2000000` inserts two deliberate bounded delays:
after actual complete receive and before SDK callback delivery, then after
callback entry and before required extraction. Every owner trace records actual
start, wire-ready, callback, extraction-start/end, selected endpoint and exact
sample difference. RTT includes the final extraction delay; tick selects callback
entry and excludes it. SDK parse and the receive-to-callback delay are included
in both. Ordinary zero-probe runs write no trace or diagnostic clock sample.
The diagnostic cannot silently become a normal measurement profile.

## Actual standalone qualification

Each host builds the complete 918-file stripped source, with no enclosing Git,
engine or private tree. SDK 10.0.112 / runtime .NET 10.0.12 produce zero warnings/
errors, two MSBuild jobs and no build server/shared compilation. Exact original
SDK core/FIX44 factory, dictionary/dependencies and provenance hashes match the
previous qualified source. No SDK is rebuilt or patched. Only D's omitted
required tag 60 remains relaxed through its public dictionary API. No LibHFT
engine library/source is required or loaded; shared microbench APIs stay unchanged.

Per host, twelve ordinary pairs and twelve 2 ms probe pairs cover all four flows,
three repeats and twelve actual cycles. Every original SDK body/value/order,
complete owner sink/fold, actual callback count, Logon/sequence/Heartbeat 30,
bilateral Logout and declared CPU budget passes. Only ten unmeasured cycles
are captured, then streams close; the final two cycles use full callback/count/
owner proof. Each host also passes its rebuilt 120 original SDK wire/body and
four complete owner vectors, with independent framing/checksum/header proof.

HP holds high-priority `isol`, SCAN normal `isol`, after checking slot/process
and free disk. HP foreground masks are 8–12/13–17; SCAN 10–13/14–17. These are
full inherited budgets with no first-CPU placement or timing isolation claim.
Each source/SDK/runtime input remains unchanged before/after qualification.

## Independent endpoint and corruption refusal

Every actual pair runs the separately qualified cold reader. Ordinary pairs
pass ten independent controls each; probe pairs pass fourteen. This is 288
controls per host, **576 total**, without new sockets or SDK execution during
replay. In addition to the previous provider/CPU/owner/callback/SDK/runtime/
required-field/capture/timing and coherently repaired deepest-price controls,
probe controls reject a shortened pre-parse endpoint, missing receive delay,
missing extraction delay and incomplete actual sample count. All precise
ordered checkpoints and selected sample differences match independently.
Across both hosts, 288 owner diagnostic spans prove the delayed boundaries.
Non-owner traces have zero records. Original artifact bytes/modes remain
unchanged; temporary Python corruption copies are removed at exit.

## Immutable source and next gates

- Source: `eb643275e35d9e8c3d9ba86be8f65398fc3274a1`.
- Source inventory SHA-256: `2074e672bb47af9558ee7824dac418ec20a29a09532f8fee3a87e727bb28c099`.
- Driver DLL, identical on both hosts: `eb2c6890a3e62dd05d757a11257cf4757532dceca8d73b4a82c151c4516dc4b3`.
- Original upstream SDK source: `274b491d76f7755be85452dbefead08b2a6d62bd`.
- QuickFix.dll: `c5eb951904c4254f4292c7a9fc797d76c9c310294dd8896e753291a372a9b680`.
- QuickFix.FIX44.dll: `2075a0ac710cead239e357e7835ef3353c7ec12a3964e749143062b5edce20f0`.
- FIX44.xml: `a8111ec59d33053b45be975bbb7d6d1e9f2b6f4a160d832853fa0d8c627ea434`.
- Microsoft.Extensions.Logging.Abstractions.dll: `bb853130f5afaf335be7858d661f8212ec653835100f5a4e3aa2c66a4d4f685d`.
- Microsoft.Extensions.DependencyInjection.Abstractions.dll: `67fa4325000db017dc0c35829b416f024f042d24efb868bcf17a895ee6500a93`.
- provenance.json: `54ea06378f659e7e7ad53b3f270e3b6a4fb2bad7a866d6d8dfd4c5709ea9224a`.

Export closure/scrub findings remain zero, without whole-harness release
admission. Both hosts retain:

- `~/.cache/libhft/fullbench-quickfix-n-canonical-clock-20261017-v1`
- `~/build/codex-fullbench/libhft/quickfix-n-canonical-clock-20261017-v1`

Only this summary enters Git/website records. Original functional captures,
traces, products and logs stay on the hosts. Complete benchmark phase reset,
pre-warmup owner proof, pacing and raw scheduler-delay/primary streams, guarded
report output, physical matrices/rate/stability and a separately qualified
matched .NET 10 LibHFT baseline remain required. Existing .NET 8 first-CPU
results, old QuickFIX/n diagnostics and prior failed setup receipts stay intact.
