Fixed: ~20 fixed-delay absence assertions across Ab.Transport/AbCip/AbLegacy tests converted to processed-count waits or positive controls. (merge e5fe2e55 on master, pushed 2026-10-08)
Fixed: docs/v2 use T4:0.DN / .CU dot forms. (merge 7105ef3e on master, pushed 2026-10-08)
Fixed: CipConnection test statics moved to a per-pool internal ConnectionDiagnostics; open-attempt limit is a scoped per-device setting; ForceRootingForTest deleted. Tests run the production build…
Fixed: TakeBatch budgets expected reply bytes (STRING 88/elem, unknown sizes sent alone); mixed STRING/array/scalar packing unit-tested. Residual: mixed packing unverified on a real controller —…
Fixed: one AbOpcUaStatusMap in Ab.Transport; LibplctagOrphanRelease is one shared source file compiled into both drivers; MapCipGeneralStatus/MapPcccStatus deleted. (merge 29cd25de on master,…
Fixed before this sweep (6cd68762, merged in 04b65632): adapters release the orphaned native tag after a failed create; the release helper is now shared by both drivers (#580). (merge 04b65632…
Fixed: ConnectionLease.ReleaseInBackground — native AbCip release no longer blocks under the per-tag lock; AbLegacy uses the same helper; pool records the close before returning so a re-create…
Fixed: AbCip/AbLegacy forms overlay only the keys they edit (unknown keys survive); MaxConcurrentReads is a form field; also fixed the forms writing TimeSpan-string keys the factories never read…
Fixed: device-name box empty with a placeholder; /raw renders without prerender (first-click fix); CLI read prints the Bad status; a new AbCip driver starts with the probe off. Kept as designed:…
Fixed: equal refusals reported as such, not parity failures; budget-isolation test that doesn't depend on the abort ending the phase. Harness stays read-only. (merge 4ba6cbab on master, pushed…