# Managed physical DAC controller qualification — 2026-10-11

This qualifies controller changes for the next .NET Pure/Native, QuickFIX/n,
FIX Antenna and Philadelphia-fast physical matrices. It supplies no new
physical timings or Stage 5 pass. The preceding four-engine physical results
remain in [their original record](RECORD_2026-10-11_canonical_physical_dac.md).

## Changes and checks

The .NET Native, .NET Pure and QuickFIX/n controllers now use the selected host directly
when invoked there. Their shared command/copy helpers take an optional explicit
host, independent of the shared module's rig selection. Commands retain literal
shell quoting; rsync preserves original binary bytes and file modes. Calls from
another host retain SSH and propagate the original copy failure.

These three controllers and the shared Rust/Philadelphia pair runner
use bounded, read-only polling of the actual physical TX counters. Each read is
retained. No traffic is injected; counters that never advance still fail the
physical gate. The shared runner retains the new grading dependency alongside
its other decision sources.

The shared qualifier refuses an explicit false `fixture_pass` or
`comparison_fixture_aligned` marker from either role. Twelve negative controls
cover both fields, both roles, and boolean/string false values. Existing missing
marker behavior for older Rust receipts is unchanged; no historical row is
regraded.

Seven focused suites pass **139 checks, zero skips**, including actual Bash and
binary rsync operations. These are lightweight local controller checks without
a build or benchmark. Available memory and existing Java processes were checked
before invocation. The initial invocation had no parent directory for pytest's
temporary root: 68 checks passed and 71 fixture setups errored. Its complete log
is retained; creating the session build directory fixed that invocation issue.

HP's high-priority shared test job was queued behind another session's quiet
build. Only this session's verified wait process, PID 1651895, was cancelled
before the local check. The first cancellation check refused because HP lacked
`rg`; the successful retry used `grep` after verifying ownership and command.
Both attempts and the original queued-job log are retained.

The subsequent source inventory found that .NET Pure has its own controller;
it does not use the shared Rust/Philadelphia pair runner. The follow-up applies
the same transport and counter handling to that actual controller. All **26
follow-up checks pass, zero skips**, including 15 selected-host cases across
.NET Native, .NET Pure and QuickFIX/n plus the comparison receipt checks.
[The separate follow-up receipt](evidence/managed-dac-controller-20261011/qualification-pure.json)
binds these inputs without replacing the original 139-check receipt.

## Remaining installation and runs

`~/install-fullbench-stage5-next.sh` checks all staged hashes on both hosts before
installation, then uses a shared CPU slot (high priority on HP), waits if busy,
and requests the user's sudo authentication inside the lease. Its exact bytes
and readonly staged checks are retained. It installs these five fixed payloads:
.NET Pure, .NET Native, foreground QuickFIX/n, FIX Antenna, and
**Philadelphia-fast**.

After the user's completion message, the independent readonly check still
finds these five root payloads absent on HP and SCAN. The fixed installers'
`--check` validates staged inputs and any existing destination; its success
alone does not establish installation. Runtime-root presence checks are
therefore retained separately. The exact new-script execution/output has been
requested. Fresh strict tiny admission and the full physical reports await
verified installation and the required host CPU leases.

All receipts and the 157-file controller input fingerprint are in
[the qualification receipt](evidence/managed-dac-controller-20261011/qualification.json).
Engine/framework sources, immutable runtime pins, historical grades, microbench
rows and host services are unchanged. Fixture, rate/stability, standalone export
and release gates remain open.
