21267750c7
test(ab-transport): blocked-write timeout fault path via a stream seam (#565, #593)
Joseph Doherty
2026-10-08 06:50:40 -04:00
7e91c37a52
test(opcuaclient-browser): skip live browse tests when opc-plc is unreachable; move out of unit project (#594)
Joseph Doherty
2026-10-08 06:48:34 -04:00
792510c0eb
Merge #595/#606: OTOPCUA0001 error under src/, scoped NoWarn in driver test projects, global.json
Joseph Doherty
2026-10-08 06:48:15 -04:00
7aa7758864
build: scoped OTOPCUA0001 NoWarn in 13 test projects, error under src/, pin SDK via global.json (#595#606)
Joseph Doherty
2026-10-08 06:47:40 -04:00
b37e9613f7
test(ab): default AB matrices to one profile when unset; PLC-5/status-bit refusal fixture tests (#594, #593)
Joseph Doherty
2026-10-08 06:45:51 -04:00
dc54b883eb
fix(historian): provision tags whose historization flips on or historian name changes (#600)
Joseph Doherty
2026-10-08 06:45:48 -04:00
3baa332d6b
Merge: over-the-wire test of the shared client's alarm method calls against the in-process server
Joseph Doherty
2026-10-08 01:49:44 -04:00
d66269a99b
test(client): over-the-wire alarm method calls against the in-process server
Joseph Doherty
2026-10-08 01:49:32 -04:00
d978573fb2
Merge #591: FOCAS duplicate-sibling tests wait for the first axis pass, not the bootstrap stamp
Joseph Doherty
2026-10-08 01:35:41 -04:00
159f30dcd0
test(focas): wait for the first full poll, not the bootstrap stamp, before reading (#591)
Joseph Doherty
2026-10-08 01:35:25 -04:00
3803df0433
Merge #587/#588: one condition event per method-driven transition (native: Ack/AddComment only); model-change + audit events gated per session on i=2253 when ACL is on
Joseph Doherty
2026-10-08 01:23:20 -04:00
e2663643dd
fix(alarms): native conditions support Acknowledge/AddComment only; report only real method changes (#587 review)
Joseph Doherty
2026-10-08 01:19:38 -04:00
85f003272c
Merge: Client ack/confirm/enable/disable/shelve call Part 9 methods on the condition node (no .Condition/.ShelvingState string ids)
Joseph Doherty
2026-10-08 00:57:23 -04:00
fa7efb3b62
fix(client-cli): call Part 9 ack/confirm/enable/shelve methods on the condition node itself
Joseph Doherty
2026-10-08 00:57:06 -04:00
167a48bffa
fix(alarms,acl): one condition event per Part 9 method call; gate Server-object model-change/audit events (#587, #588)
Joseph Doherty
2026-10-08 00:54:08 -04:00
15dd75379d
Merge #590: ClusterRoleInfo records the RoleLeaderChanged address directly (lagging State snapshot could pin a role leader to null)
Joseph Doherty
2026-10-08 00:26:16 -04:00
129b84fd69
fix(cluster): record RoleLeaderChanged leader from the event, not the lagging state snapshot (#590)
Joseph Doherty
2026-10-08 00:25:57 -04:00
e8453eef6c
Merge #589: S7 span-read tests wait out the clock tick before asserting LastSuccessfulRead advanced
Joseph Doherty
2026-10-08 00:22:25 -04:00
b36f5644d3
test(s7): wait out the clock tick before asserting LastSuccessfulRead advanced (#589)
Joseph Doherty
2026-10-08 00:22:11 -04:00
390c8269a0
Merge #586: Server-object (i=2253) event items gated by the data-plane ACL; per-condition delivery with SDK audit guard + monitored bookkeeping
Joseph Doherty
2026-10-08 00:09:03 -04:00
fe92ff4c34
fix(acl): keep the SDK's audit guard and EventsMonitored bookkeeping on Server-object delivery (#586)
Joseph Doherty
2026-10-08 00:05:12 -04:00
277cd6ee3e
Merge: deterministic AbCip transport-switch probe tests (libplctag timeout races the probe cancel under load)
Joseph Doherty
2026-10-07 23:51:34 -04:00
75e559f6d8
fix(acl): filter Server-object (i=2253) event subscriptions per event through the data-plane ACL (#586)
Joseph Doherty
2026-10-07 23:37:47 -04:00
e5fe2e5547
Merge #566/#581/#583: per-pool transport diagnostics + per-device open-attempt limit, CIP-level close recycle, positive-control absence tests
Joseph Doherty
2026-10-07 23:31:17 -04:00
fe94a3bdb8
test(ab): replace fixed-delay absence assertions with positive controls / processed counts (#583)
Joseph Doherty
2026-10-07 23:28:33 -04:00
3edff3304b
fix(ab-transport): per-pool diagnostics + per-device open-attempt limit, CIP-level close recycle, CipConnection/pool test gaps (#566, #581)
Joseph Doherty
2026-10-07 23:21:02 -04:00
35152fcaf7
Merge #562/#563: event/alarm items revalidated by both ACL triggers (reversible stand-down); key usability on WriteOperate/AlarmAck gates regardless of Security:Acl:Enabled
Joseph Doherty
2026-10-07 23:11:22 -04:00
2b945672e9
fix(acl): revalidate event/alarm subscriptions on both triggers; key-usability check on role gates (#562, #563)
Joseph Doherty
2026-10-07 23:10:35 -04:00
501f6ea4e5
Merge #570/#579: native AbCip per-tag config errors, no mistype churn, STRING 82, LWORD type checks; non-blocking lease release (AbCip + AbLegacy)
Joseph Doherty
2026-10-07 23:06:52 -04:00
007174d28a
Merge #573: AbLegacy fake tag factory is thread-safe (probe raced the test's tag create)
Joseph Doherty
2026-10-07 23:06:07 -04:00
8c685bcbba
test(ablegacy): make FakeAbLegacyTagFactory.Tags thread-safe — probe loop raced the test thread (#573)
Joseph Doherty
2026-10-07 23:05:34 -04:00
1ab961c226
docs(abcip): browsePageDelayMs survives an AdminUI save now that the form preserves unknown keys (#576)
Joseph Doherty
2026-10-07 23:04:01 -04:00
7105ef3eb5
Merge #574/#576/#577/#584: AB forms preserve unknown keys + write factory ms keys, /raw device-name + prerender fixes, CLI read prints Bad status, docs dot-form
Joseph Doherty
2026-10-07 23:03:48 -04:00
bafbcbee7e
fix(adminui): AB forms read/write the factory-bound *Ms duration keys, migrate legacy TimeSpan strings (#576)
Joseph Doherty
2026-10-07 23:03:38 -04:00
3d081ad29c
fix(adminui,cli): /raw device-name placeholder + no-prerender tree, CLI read prints Bad status (#577)
Joseph Doherty
2026-10-07 22:56:47 -04:00
7892eb13a8
fix(abcip): harden Ab.Transport CIP codec and EncapsulationClient (#564, #565)
Joseph Doherty
2026-10-07 22:54:32 -04:00
bd2bebeda6
Merge #567/#582: RequestScheduler reply-size budget, private lock, fragment struct-handle check
Joseph Doherty
2026-10-07 22:53:42 -04:00
9641cefe2e
fix(abcip): budget expected reply size in RequestScheduler.TakeBatch (#582); private lock + struct-handle check across read fragments (#567)
Joseph Doherty
2026-10-07 22:53:10 -04:00
e588443ced
fix(abcip,adminui): ParseEnum device wording + libplctag probe assertion (#574); AB forms preserve unknown keys + MaxConcurrentReads (#576); probe off for new AbCip driver (#577); docs T4:0.DN (#584)
Joseph Doherty
2026-10-07 22:53:04 -04:00
04b6563286
Merge native .NET Allen-Bradley transport (AbCip native default; AbLegacy native opt-in; real-press gated)
Joseph Doherty
2026-10-07 22:40:06 -04:00
b25ee10a14
test(abcip): real-press pass 3 with packet capture — 17/17, zero write services, 4 sequential sessions (Z-35162)
feat/native-ab-transport
Joseph Doherty
2026-10-07 22:39:33 -04:00
8e2dbc6721
merge: master (TwinCAT native array subscriptions) into feat/native-ab-transport
Joseph Doherty
2026-10-07 21:51:12 -04:00
f73c2db599
docs(ab): final review r2 m4/m5 — AbCipTransport doc names Native as default; AbLegacy array-write deferral scoped to libplctag
Joseph Doherty
2026-10-07 21:50:57 -04:00
ee3ffa90ef
docs: final review — CLAUDE.md AB transport section (I1/I2/I3/I4)
Joseph Doherty
2026-10-07 21:41:18 -04:00
cc3bea8370
fix(ab): final review M2 — a retyped libplctag handle field degrades to keep-alive
Joseph Doherty
2026-10-07 21:41:03 -04:00
352ea449e9
fix(abcip): final review I4 — a type mismatch is a refusal, not a comms fault
Joseph Doherty
2026-10-07 21:40:04 -04:00
2cea1a0687
fix(ab-transport): final review I2 — wire DeviceSessionPool.Shared to the host logger
Joseph Doherty
2026-10-07 21:36:37 -04:00
b75e013d0a
feat(abcip): final review I1 — node-level Drivers:AbCip:DefaultTransport
Joseph Doherty
2026-10-07 21:34:48 -04:00
b66972b6f5
fix(ablegacy): final review I3 — default reverts to libplctag; Native is opt-in
Joseph Doherty
2026-10-07 21:34:04 -04:00
a9fc933e3b
docs(plans): native AB transport tasks.json status sync
Joseph Doherty
2026-10-07 21:14:44 -04:00
39ae286cd7
fix(ab): a refused operation is BadNotSupported, not a comms fault (Task 22 review r1; closes#571)
Joseph Doherty
2026-10-07 21:12:08 -04:00
1806af54f0
fix(ab): Task 22 review r1 — release-note timing and AbLegacy regressions, probe E2E on both transports
Joseph Doherty
2026-10-07 21:06:40 -04:00
ed0881d672
feat(ab): native managed transport is the default for AbCip and AbLegacy; libplctag remains as fallback
Joseph Doherty
2026-10-07 20:49:33 -04:00
17e1170e61
docs(plans): native AB transport tasks.json status sync
Joseph Doherty
2026-10-07 20:26:00 -04:00
6a22d28098
test(abcip): real-press read-only gate — native vs libplctag differential and latency (Z-35162)
Joseph Doherty
2026-10-07 20:25:32 -04:00
df77617051
docs(abcip): Large Forward Open refusal targets and ConnectionSize honouring (T21 review r1 M6)
Joseph Doherty
2026-10-07 20:16:34 -04:00
6ae6287360
fix(ab): orphan release clears the wrapper handle; rooting fallback documented and pinned (T21 review r1 M1/M2)
Joseph Doherty
2026-10-07 20:16:33 -04:00
43b81b6643
test(abcip): live tags keep a per-element value check; close barrier and GC/RTT attribution (T21 review r1 I1/M9/M8/M4)
Joseph Doherty
2026-10-07 20:16:33 -04:00
c90b1a8214
feat(ab-transport): Forward Close and per-exchange round-trip gate diagnostics (T21 review r1 M8/M9)
Joseph Doherty
2026-10-07 20:16:33 -04:00
82a0c298ce
test(abcip): read-parity volatility probe; live tags compared structurally (T21 press pass 1)
Joseph Doherty
2026-10-07 19:50:41 -04:00
6cd6876229
fix(ab): destroy the native libplctag tag a failed initialisation leaves behind (T21 press pass 1 crash)
Joseph Doherty
2026-10-07 19:49:03 -04:00
c306c6f674
fix(abcip): CompactLogix native default connection size matches libplctag's Large Forward Open (found by T21 latency harness)
Joseph Doherty
2026-10-07 19:34:30 -04:00
2dc55ecb8f
test(abcip): read-only poll-latency comparison harness for the T21 press gate (proven on ab_server)
Joseph Doherty
2026-10-07 19:26:23 -04:00
3ea72f29dd
docs(plans): native AB transport tasks.json status sync
Joseph Doherty
2026-10-07 19:12:59 -04:00
e066f89290
docs(ab): note the micro800 libplctag re-run after the empty-path fix
Joseph Doherty
2026-10-07 19:12:59 -04:00
c7f7c940a8
docs(ab): native transport, Transport switch, known gaps and the type-check change
Joseph Doherty
2026-10-07 19:12:32 -04:00
9a576599e1
docs(plans): native AB transport tasks.json status sync
Joseph Doherty
2026-10-07 19:11:03 -04:00
d613575f32
merge: libplctag empty-path fix (null Path for an empty CIP route)
Joseph Doherty
2026-10-07 19:06:36 -04:00
b8ebafc642
feat(adminui): Transport dropdown on AbCip/AbLegacy driver forms (live-verified on docker-dev)
Joseph Doherty
2026-10-07 19:05:50 -04:00
afe6850f3d
fix(abcip,ablegacy): pass a null libplctag path for an empty CIP route (Micro800 / unrouted MicroLogix)
Joseph Doherty
2026-10-07 19:05:43 -04:00
c8b35663e5
docs(plans): native AB transport tasks.json status sync
Joseph Doherty
2026-10-07 18:29:04 -04:00
1d6501f427
feat(ab-transport): process-wide open-attempt budget so the differential never retries an open (Task 18 review r1)
Joseph Doherty
2026-10-07 18:10:25 -04:00
0e20a8e5a9
test(abcip): read-only differential harness comparing native and libplctag on one target
Joseph Doherty
2026-10-07 17:58:47 -04:00
d1ad2600d1
docs(plans): tasks.json sync
Joseph Doherty
2026-10-07 17:46:19 -04:00