dbf6fef0e9
Adding a component to FleetConfig follows an established pattern: the record grows by one arg, and a back-compat constructor is added at the OLD arity so existing callers keep compiling. That back-compat constructor also silently captures withDefaults()'s own literal-arity 'return new FleetConfig(...)' call the next time this happens, since that call is now a legal overload match too. It compiles, every other test passes, and the new component is defaulted away on every load(). This is not hypothetical - it happened live while building the (now parked) idle-sleep-guard PR, caught only because that branch's own new tests asserted on the new field. Add a reflective test that builds a FleetConfig through the true canonical constructor (resolved by record-component types, not arg count - the same pattern ConfigRefTopLevelReportingCoverageTest already uses in this file) with a real, non-null value in every component, runs the real withDefaults(), and asserts every value survives unchanged. Never hardcodes the arity - it enumerates FleetConfig.class.getRecordComponents() - so it keeps working as the record grows. No back-compat constructor is touched or removed.