# Java pre-warmup capture and compact result admission

## Implemented

The LibHFT Java and Philadelphia-fast canonical consumers now run a distinct
ten-cycle functional phase before the requested warmup. Each direction closes
its capture file at the ten-cycle limit. Full live frame accounting, prepared
write matching, callback binding and typed SDK extraction continue throughout
warmup and measurement. The owner checks the independent ten-cycle sink before
warmup and resets its measured sink at the original warmup boundary. Marker
sequences reset for each phase; warmup and sample counts are unchanged.

The callback-reply path publishes completion after its fold reset. This avoids
letting the foreground owner begin another cycle before the callback reset.
The existing prepared-send and observer/callback tick spans remain unchanged.
The public SDK binaries are unmodified.

Both JVMs now retain their actual input arguments and runtime version before
the traffic phase. The compact writer binds its variant to those arguments,
including separate collector, compilation, placement, socket and reply-owner
choices. It cold-replays the complete physical producer policy, retains only
S5-pass cells, and writes the new method `dac-canonical-preflight-v1`. It does
not infer admission from the migrated compact files' generic `verdict=ok`.

Results keep run-median percentiles, the true largest maximum, a pooled CDF
with at most 2,000 points per latency kind, and the graded pre-warmup capture.
The complete input is validated before atomic per-key replacement. An older
or conflicting sitting, a failed grade, an undeclared JVM option or a changed
producer provenance refuses output. Raw working output is not committed.

## Verification on HP

The first source snapshot passes twelve Java callback pairs. A cold corruption
control then exposes that inherited CPU masks were not bound to the explicit
launch budget. This unsuccessful qualification remains in working output;
no result or timing grade was published from it. The auditor now binds actual
JVM inherited masks to local taskset commands and the immutable physical
entry's declared endpoint CPUs, including inherited placement.

A second, separately frozen source passes all 48 actual pairs: twelve each
for Java callback, Philadelphia-fast callback, Java observer and
Philadelphia-fast observer. Every matrix covers all four flows with warmup
counts 5, 0 and 5 and twenty measured samples per pair. Across the matrices:

- 960 primary samples and 960 scheduler-delay samples;
- 4,000 observed application frames per peer;
- only 1,200 pre-warmup application frames per peer written to capture files;
- exact independent measured sinks/fold counts and bilateral original capture;
- 375 altered-input refusals (107, 89, 98 and 81 respectively);
- 650 capture/numeric checks across the four adapter builds, with zero skips.

A mixed-flow pair with warmup 5 observes seventy incoming and seventy outgoing
application frames at each peer, captures twenty in each direction, verifies
750 preflight owner folds, and retains exactly 1,500 measured owner folds.
No measured application frame is captured. All 1,449 frozen source files
remain byte-identical after the complete qualification.

The outer foreground qualification uses HP's high-priority `isol` pool.
Shared work runs concurrently; these are functional checks with no timing
grade and no Stage 5 promotion. The measured SDK JAR SHA-256 remains
`d459e3f66ae7f098b4715d7044636dc22c670c18a3da0b088a2a12affab6d330`;
Philadelphia 2.0.0 remains
`396136037b0f41e635e3aea233c3f31f4a388318b445f4afe1609b9a6d28a7b7`.
Original working outputs remain under the session build root on HP.

## Standalone and remaining gates

112 focused Python controls pass in development. The manifest selects 874
files with zero scrub findings, unresolved references or dead documentation
links. A complete stripped source tree contains no Git, engine or internal
directory: three actual CLI imports and 89 preflight/compact-result controls
pass there. The source/dependency escapes already documented by the export
plan remain; this is not whole-harness build or licence qualification.

No new physical timing run, compact physical result or matched Java admission
is claimed by this batch. Fresh immutable runtime staging, independent host
facts, quiet physical matrices on both accepted DAC rigs and the complete
comparison gates remain required. Other languages' collectors still need the
new pre-warmup capture/result policy. Existing sealed generations and their
historical decisions remain immutable. Website projection migration to the
compact result tree remains separate; no live deployment is attempted.
