# Explicit JVM collector and callback-reply configurations — 2026-10-14

The canonical builders now expose an explicit Epsilon configuration: 512 MiB fixed
heaps, experimental Epsilon GC and heap pre-touch, with the requested collector profile
recorded. The consumers read back actual collector names and maximum heap size before
starting measurement, then retain those values with verified per-thread placement.
Default launcher bytes/options and every earlier installed/frozen generation remain
unchanged. These are JVM configuration changes, with no SDK source patch.

The Epsilon configuration completes 24 functional and 24 full quiet local pairs on HP.
Both original and relocated SDK-free cold readers reproduce every metric, extremum and
gate exactly. Philadelphia passes all four local rate/delay/stability gates. Java passes
local NOS, MD and tick, while mixed remains rate limited at 8,393–8,696/s. These local
results receive no Stage 5 award or matched ratio. Collector, heap size and pre-touch
change together; no single-cause attribution is claimed.

A separately selected `--reply-owner callback` Java configuration consumes the actual
stable connection ID from the public Logon hook, parses each complete raw application
frame inside its public callback and sends the reply from the SDK's existing writer.
There is one raw consumer per role, and callback failure still aborts even when the SDK
would otherwise fail open. The poll reply owner remains the default.

The callback-reply configuration passes twelve functional pairs per engine and complete
cold refusal replay. Its twelve full Java pairs also complete all fixture/owner/clock/
CPU checks, but NOS, MD and mixed miss rate; tick misses percentile stability. That
failure is retained without selecting another repeat. Philadelphia's unchanged
Epsilon full configuration is not rerun for this experiment.

The main Maven module still targets Java 8. The new consumers were corrected to use
Java 8 APIs: a bounded cold command-stream reader, separate ByteBuffer position/get
calls, and a bounded callback spin without a newer intrinsic. Both standalone builders
now compile at `--release 8`. Their 28/269 capture/numeric checks pass, and the final
Java 8 generation passes all 24 actual functional pairs and cold refusals on HP, with
zero skips. This does not claim a full engine or whole-harness Maven suite.

Across the three functional generations and two distinct full configurations there are
72 functional pairs (1,440 primary/delay samples, 4,200 frames per peer) and 36 full
pairs (360,000 primary/delay samples, 990,000 frames per peer). Runtime products and
source inventories stay unchanged while their readers run. All original failed gates
and every previous configuration remain separately retained.

The [immutable seal](evidence/java-collector-configurations-20261014/retention-seal.json)
binds 4,529 inputs / 575,207,478 bytes; SHA-256
`5b896f80ba2595e9e17e0ab513e6ea0f5fd2f489c10580f5b5074efe335434e1`.
The current Java four-flow timing requirement and new physical/matched admission remain
open. No sample, owner field, clock span or admission threshold is reduced.
