Universal discovery browser: full controller-tree render is live-verify-blocked by the ab_server fixture (no @tags walk) #468
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Context
The Wave-0 universal Discover-backed browser (
DiscoveryDriverBrowser) merged to master (commit056887d6) — one generic browser that captures any discovery-capable driver'sITagDiscovery.DiscoverAsyncand serves it through the picker, lighting up AbCip/TwinCAT/FOCAS pickers with zero per-driver browser code. Design:docs/plans/2026-07-15-universal-discovery-browser-design.md; plan + live-gate result:docs/plans/2026-07-15-universal-discovery-browser-implementation.md(§ "Live-gate result").What the Task 18 live gate DID verify (docker-dev)
CanBrowsebinding chain works end-to-end.BrowserSessionService.OpenUniversalAsync -> DiscoveryDriverBrowser.OpenAsync -> RunCaptureAsync -> CaptureAsync -> DiscoverTreeAsync), withPatchForBrowsedemonstrably applied — the controller@tagswalk ran even though the authored config never setEnableControllerBrowse(that walk only runs when the flag is true).What is BLOCKED (this issue)
A populated controller-tag tree render + leaf-commit round-trip could not be verified. The libplctag
ab_servertest sim (ControlLogix fixture at10.100.0.35:44818,tests/Drivers/ZB.MOM.WW.OtOpcUa.Driver.AbCip.IntegrationTests/Docker/) implements tag read/write but not the CIP Symbol Object controller enumeration — the@tagswalk returnsErrorUnsupported. This is a fixture capability gap, not a code defect: the browse binding is proven alive andPatchForBrowseis proven to run in production.Definition of done
Point the universal browser at a symbol-enumeration-capable Allen-Bradley backend and confirm:
TagConfig.FullNameand the tag saves.Options: a real ControlLogix over VPN/on-prem, or an
ab_server/sim variant that serves@tags. TwinCAT (ADS symbol upload) and FOCAS (FixedTreeUntilStablesettle) have the same fixture-availability gap and can ride the same verification once a backend exists.Related follow-up (already fixed)
Driver-config-page pickers not passing live config -> fixed in commit
10e23f8b(threadedGetConfigJsonthroughAbCipDriverPage/TwinCATDriverPage/FOCASDriverPage).