# Artio original typed Session qualification — 2026-10-25

The new numeric-codec configuration passes its bounded original production
Session gate on HP and SCAN. Each host completes six real SDK pairs: four
twelve-cycle canonical flows plus mixed and tick changed-book controls. All
192 application and 48 administration frames pass independent cold replay.
This closes functional Session qualification only. It exports no result cell
and grants no clock, phase, timing or Stage 5 admission.

## Source and original SDK

Published source pin: `de7dfef5c44539935cf0768037df25c536d216e5`. The new public producer is
`oss/benchmarks/cpp/fixbench/tools/open_source_fix_engines/java/ArtioCanonicalSession.java`.
It uses the original generated numeric business codecs qualified by
[the writer checkpoint](RECORD_2026-10-25_artio_canonical_writer.md), with
`Session.trySend(Encoder)`. There is no reflective application extraction,
raw-text application parser, hand-built envelope or local SDK patch.

The original `uk.co.real_logic.artio.FixDictionaryImpl` from
`artio-session-codecs-0.182.jar` supplies complete Logon, TestRequest,
Heartbeat and Logout factories. The separate minimal business dictionary's
null administration factories are never installed into the Session. Actual
class-load captures bind the original Session, dictionary and numeric type
to their SDK JARs; generated encoders/decoders bind to the previously
qualified classes. All 26 original runtime files and all 32 qualified
classes remain byte-exact before/after. The two new compiled producer classes
also match between hosts.

The authenticated unchanged v10 harness supplies `ARRuntime`, thread placement
and its production TCP delegate observer. This is a new producer using that
support, not a new grade for the historical v10 producer. Functional runtime
is transient/unlogged, with real Session validation and HeartBtInt=30.
The original SDK provenance receipt retains the roster declaration
Artio 0.182 / `5d1bb3b2deed9c5865e8584d23bb37c48fde048a`; this gate binds
the authenticated artifacts and does not add a Git-to-release attestation.

## Actual Session and ownership checks

Each process acquires exactly one original Session and exchanges bilateral
TestRequest/Heartbeat probes before application work. The original Session
owns every sequence number, header timestamp, validation and Logout. Every
captured transmitted frame equals its opposite peer's received bytes, including
both Logouts; sequences are contiguous from one. The cold reader checks
BodyLength/checksum, direction, original admin versus generated application
header order, exact canonical body order, groups, values and correlation.

All application fields are read through actual generated decoders. Numeric
value/scale conversion uses checked integer arithmetic, with exactness required;
there is no floating-point conversion. The designated owner folds the full
received report or snapshot, or the tick reaction order. Cold replay folds
captured wire values independently and checks canonical owner sums against
the shared language-neutral model. The other role's sink remains zero.

Changed-book pairs use `LCOM2`, bid `9000.25000`, ask `11000.75000`, and
alternating actual first-touch sizes 7 and 6,000,000. Derived orders carry
the decoded side's price and symbol and clamp quantity to 100 or 5,000,000;
the mixed report echoes that derived order. Both parity directions and both
clamps are exercised across twelve markers. These are refusal/provenance
controls, not a different benchmark workload.

Offers that encounter backpressure are retried by the library owner outside
the delivery callback, allowing library progress. The producer serializes
and publishes with the original public Encoder API. It does not claim that
this call alone supplies a qualified prepared-tick timestamp.

## Native execution and independent refusal gates

HP uses a high-priority isolated functional lease, server CPUs 8–12 and
client 13–17. SCAN uses a normal isolated functional lease, server 10–13 and
client 14–17; unrelated shared work may coexist. Each checks CPU-slot status,
processes and memory first. Original placement verifies effective library,
framer, media-driver and background CPU assignments. These leases do not
establish a quiet physical timing window.

Both user services finish success, status zero and MainPID zero. Their cold
reviews are replayed independently after bounded collection and match exactly.
The original runtime state remains on its host; it is not collected as evidence.
Nine real malformed CLI invocations refuse before runtime startup per host.
Thirty-one corruptions of actual output refuse per host, including completed
counts, ownership/claims, transport tails and well-framed bilateral alterations
to groups, symbols, prices/scales, sizes, correlation, HeartBtInt, probes,
Logout and sequences. Those semantic controls reframe both peer captures;
they are not merely stale outer-hash tests.

The focused Session/source suite passes 174 tests with no selected skips.
The subsequent clock-preparation suite passes 232 tests and preserves these
Session/writer checks. Publication checks are in the session build logs.
The initial local test launcher omitted the required explicit benchmark roots
and stopped during collection; that setup failure remains retained. Correcting
the launcher changes no source contract, wire gate or original sample threshold.
The prior original-Session bridge and changed mixed development runs are also
retained as development-only observations.

## Bounded provenance

Native capsule: `~/.cache/libhft/fullbench-artio-canonical-session-20261025-v1`.
Native output: `~/build/codex-fullbench/libhft/artio-session-qualification-20261025-v1`.
Collected independent reviews: the sibling `artio-session-review-20261025-v1/{hp,scan}`.
Service: `codex-fullbench-artio-session-20261025-v1.service`.
Staging, qualification, reader controls, collection and review are retained as
`private/benchmarks/retained/artio_session_*_20261025.py`.

| Receipt | HP SHA-256 | SCAN SHA-256 |
|---|---|---|
| Sealed inputs | `c3fa0b8b7769fc40df7812cfe6211b96c4a24024337307f38191f3cf1c669128` | `c891869ac0734b4a104fd20177e1682825f7702e07a4f1a1c1950494a9ca8d2f` |
| Native receipt | `392721aba124622e79f18691edd4fb9e45528706c42592557d5d5c881f212997` | `26a07ac4ce26cb35d95f9a61f5f6095fe59cf1bd43c7dbbc2125362ae9805a99` |
| Cold review | `d580dcae927a71d52de7bd0d34a38ca5ac760ff64730dc9545c6b36c12f7b49c` | `558947849e5c68ae0f278531f92954bb4738248efcd9cadd050f5b30e0c4ac79` |
| Actual-output refusals | `bc3bb1de1acb0efb95d4c361c7af4e224473ba81b5c7acc3711f4d163b182818` | `1d33e559117a91521aa66621b7b48d34c864c1bccf4d3568bd267bb77389df14` |
| Collected files | `aef89f0fb38451923093598551951c9e5509bd34992dfec6f8b13565756ed211` | `1e38f1a5bb23f49aa75150ea98f0d80f17a8cfd651ce34d3471ace38900a04d6` |
| Independent reader | `4b7a67a50d9ece58386983839b16a908d42028f8fac9f6ebc6e7a727a7402913` | `4b7a67a50d9ece58386983839b16a908d42028f8fac9f6ebc6e7a727a7402913` |

## Remaining gates

A measured producer still needs complete request/reply and prepared-tick clocks,
bounded preflight capture, exact warmup/measurement phases, pacing, delay probes,
runtime generation/install qualification and fresh quiet physical DAC collection.
The old v10 timing campaign is not rerun. No admission or good result key changes
from this functional checkpoint; every wider Java/full-plan gate remains explicit.
