# Stripped native harness verification — 2026-10-02

This verifies part of the [benchmark export migration](PLAN_BENCHMARK_EXPORT.md).
It adds no Stage 5 timing grade or public release qualification. The physical
campaign's fixture, rate, delay, stability and deployment gates remain open.

## Source and build boundary

`bench/common/native-build.mk` supports development and stripped source layouts.
Development retains the existing compiler policy and `bench/` output prefix;
a stripped archive does not load an enclosing checkout's toolchain. Its native
outputs go under `LIBHFT_BUILD_ROOT/cpp/`; explicit `BINDIR` remains supported.
Engine targets delegate to `LIBHFT_CPP_SOURCE`, passing the actual harness
fixture/header paths, and fail on a missing source Makefile or include tree.
Plain TCP floor, extraction and framework checks require no engine checkout.

HP compiled the manifest-selected stripped source, without `.git` or `engine/`,
using GCC 14.2.1 and a high-priority `isol` lease on CPUs 8–17. The shared pool
was occupied by another session. These are build/functional checks and do not
assert a quiet timing environment. Each generation used fresh source, result
and out-of-tree build directories. Both receipts confirm unchanged frozen
source and zero skips.

| Generation | Source revision | Outcome |
|---|---|---|
| `c6b04b388aae` | `69872b2b9c420c8eaf287e759c7e54f5e94f6b27` | Framework, extraction and mock checks passed; optional loopback failed |
| `7fcc90a6f544` | `3bc9261042199c10d7994af97ea4a4a0fefa0ed6` | All native build and functional checks passed |

The retained [failed receipt](data/benchmark_export_native_20261002/hp/c6b04b388aae/manifest.json)
and [passing receipt](data/benchmark_export_native_20261002/hp/7fcc90a6f544/manifest.json)
include per-command log hashes, compiler, affinity, controller/source hashes
and six binary hashes. Source manifests enumerate 690 and 691 materialized
files respectively. These selections still contain outstanding public scrub
and SDK dependencies; they are diagnostic capsules, not admitted exports.

## Loopback failure and correction

The first real socket check used two sessions at 500 sends/s each, 4 KiB
requested send buffers and QUICKACK off. Its assertion failed before buffered
stdout was flushed. A separate unbuffered replay initially used the wrong cwd
and failed the test's source-file guard; that invocation error is retained.
The corrected replay used the original source cwd and binary, with one test
process: it completed 17 and 18 of the 20 measured frames, with three and two
`EAGAIN`-shed offers respectively. The driver correctly failed the rows.

The test verifies framing, option propagation and startup bounds. Its
functional load is now 50 sends/s per socket, retaining the same tiny buffers,
QUICKACK setting, three warmup plus twenty measured frames and exact bilateral
23-frame assertions. Failure output is flushed and the server's captured
diagnostic is printed before assertion. Production driver code, admission and
mock backpressure checks are unchanged. The fresh generation passes both
session counts and the bounded connect/accept negative checks.

All originals remain retained: command logs, source/controller manifests,
queue wrappers/journals and both replay logs. The committed `SHA256SUMS` files
seal the imports here; they are not represented as original host-created seals.
Original reports are under HP's `~/archive/libhft/benchmark-export-native-hp-*`.
Frozen inputs are under `~/.cache/libhft/benchmark-export-native-20261002-*`;
build outputs are under `~/build/codex-fullbench/libhft/export-native-hp-*`.

## Portable documentation and remaining gates

The public scenario view is generated from the maintained normative sections
of `docs/bench/CONTRACT_SCENARIOS.md`, excluding its dated coverage section and
adapting module path prefixes. `tools/sync-benchmark-scenario-doc --check`
detects drift. Full-session runbook, methodology and evidence guidance now live
under `bench/docs/`; the microbench owner owns `bench/docs/MICROBENCH.md`.
Historical load/native site notes were preserved under `internal/bench/`.

All 55 helper/archive/build-path/clock/llfix checks pass, without skips. Readiness
at this checkpoint selects 692 files (9.4 MB), with 603 scrub findings in 102
files, 115 textual escapes and **zero dead documentation links**. New public
documents and native Makefiles have zero scrub findings. Full standalone engine
builds, native runtime loading, source-pin admission, portable host configuration,
licence review and release qualification remain pending.

## Concurrent-main integration

Rebase also integrated another session's portable runbook/scenario summary,
explicit language-input guidance and Rust/.NET defaults. Its original scenario
summary is retained as `bench/docs/SCENARIO_OVERVIEW.md`; the public runbook
retains its execution and publication policy. Rust binding/source settings and
the C++ engine-only default path remain documented. The native common fragment
preserves optional engine includes and explicit output overrides while avoiding
an unrelated enclosing compiler policy.

All 19 native build/test inputs match the passing frozen generation byte for
byte after integration. All 55 helper checks and the scenario-view drift check
pass again, without skips. Integrated readiness selects 695 files (9.4 MB),
with 568 scrub findings in 89 files, 96 textual escapes and zero dead links.
The earlier counts above remain the pre-integration checkpoint; neither
inventory constitutes public release admission.
