The 'All 19 PRs merged' banner contradicted the warning paragraph in
the same block and overstated reality against the source tree. Audit
of the lmxopcua + mxaccessgw repos on 2026-05-01 found:
- 17 of 19 PRs merged. Four merged PRs ship inert scaffolds:
- A.2: MxAccessAlarmEventSink.Attach is a no-op.
- A.3 / A.4: NotWiredAlarmRpcDispatcher returns OK-with-diagnostic
for AcknowledgeAlarm and an empty stream for QueryActiveAlarms.
- C.1: SdkAlarmHistorianWriteBackend.WriteBatchAsync returns
RetryPlease for every event with a placeholder log.
- The architectural decision the warning paragraph asks the operator
to make was already resolved 2026-04-30. MxAccessAlarmEventSink.cs
in mxaccessgw records that aaAlarmManagedClient.AlarmClient is x86
net48 (same bitness as the worker), and pins the discovered API
surface (RegisterConsumer / Subscribe / GetStatistics /
GetAlarmExtendedRec / AlarmAckByGUID). What remains is wiring PRs
in the worker, not architectural choice.
- D.1 smoke artifact (docs/plans/artifacts/d1-rollout-YYYY-MM-DD.md)
not yet captured; directory does not exist.
Banner rewritten to split functional-end-to-end vs merged-but-inert
PRs explicitly so future readers don't have to reconcile the doc
against the source tree themselves.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>