# Artio 0.182: local FIX flows and separate FIXP exchange

This is diagnostic evidence, not a Stage 5 latency result. The Artio source
checkout was clean at upstream tag `0.182`, commit
`5d1bb3b2deed9c5865e8584d23bb37c48fde048a`. The benchmark adapter was
built with `-Partio -Dartio.version=0.182` and an out-of-tree
`LIBHFT_BUILD_ROOT`. Its `fixbench.jar` SHA-256 was
`5c191b3147719b0038cf192995d7761a237501d304d6854779810135132cbe56`.

## Four FIX flows

The [local artifact](evidence/artio-0182-local-20260930/results.tsv)
contains separate-process localhost runs of `nos_er`, `md`, `md_nos_er`, and
`tick_to_trade`, each with five warmups, 20 measured samples, one run, and
100/s offered throughput. Both processes exited zero in all four flows. The
two peers each retained the FIX messages they received; their
`contract-dump.txt` files combine those observations in canonical order.
`tools/audit-fix-contract` passed all four. The retained evidence includes
the raw samples, CSV summaries, manifests, FIX dumps, and process logs under
`evidence/artio-0182-local-20260930/`.
Artio's large Aeron runtime state files are kept only in the local archive
at `~/archive/libhft/fullbench/artio-0182-local-20260930/` on BEELINK2; they
are not benchmark measurements.

## FIXP Binary EntryPoint interoperability

The [raw FIXP transcript](evidence/artio-0182-fixp-interop-20260930/gradle-fixp-transcript.log)
is separate from the FIX latency runs. It comes from the pinned upstream
`BinaryEntryPointSystemTest.shouldExchangeBusinessMessage` with
`-Dfix.core.debug=FIX_TEST`. The test's raw socket/SBE client exchanges these
messages with the Artio Binary EntryPoint acceptor:

| Direction | Message | Checked detail |
|---|---|---|
| Client → Artio | Negotiate | session ID 123, version 1 |
| Artio → Client | NegotiateResponse | same session and version |
| Client → Artio | Establish | session setup |
| Artio → Client | EstablishAck | session established |
| Client → Artio | NewOrderSingle | client order ID 1 |
| Artio → Client | ExecutionReport_New | client order ID 1, status NEW |
| Client → Artio | Terminate | reason FINISHED |
| Artio → Client | Terminate | reason FINISHED |

The [JUnit result](evidence/artio-0182-fixp-interop-20260930/test-result.xml)
records one success, zero failures, zero errors, and zero skips. This proves
the raw client and Artio acceptor agree on this Binary EntryPoint session and
business exchange. Both components come from the Artio upstream tree; it does
not establish interoperability with a separate vendor implementation.

The command was:

```sh
./gradlew --no-daemon --max-workers=8 -Dfix.core.debug=FIX_TEST \
  -I /home/yann/build/codex-fullbench/libhft/artio-build-root.gradle \
  :artio-binary-entrypoint-system-tests:test \
  --tests uk.co.real_logic.artio.system_tests.BinaryEntryPointSystemTest.shouldExchangeBusinessMessage \
  --rerun-tasks
```

The [Gradle init script](evidence/artio-0182-fixp-interop-20260930/build-root.gradle)
redirected every build output to the session build root and supplied generated
codec classes to the test compile/runtime classpaths. The upstream source
tree remained clean. SHA-256 of the transcript is
`7c1718e9aff79ba6f1953871fed7aaa2eb290c03b67a9b8392f59afe83d3f04c`.

The physical DAC report remains required before Artio can be `S5 pass`.
