Galaxy history reads route through the server-owned HistoryRouter
(Phase 1, PR 1.3) — neither Galaxy backend implements IHistoryProvider
directly. Parity surface here is the routing decision:
- Discover_emits_same_historized_attribute_set_for_both_backends — the
IsHistorized attribute set must agree symmetric-set-wise; that's what
HistoryRouter consumes when deciding whether to route a HistoryRead to
the Wonderware historian sidecar.
- Neither_Galaxy_backend_implements_IHistoryProvider_directly — pins
the architectural decision so a regression that re-introduces a
per-driver history path fires.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>