This website requires JavaScript.
274ba2b137
docs(plans): mark hosts/abcip/hygiene tasks complete + reconcile (#6/#8/#10/#13 shipped)
Joseph Doherty
2026-06-18 12:02:15 -04:00
9cf88e33bd
docs(galaxy): rewrite stale PR-4.W/legacy-host forward-ref comments to shipped reality (#13 )
Joseph Doherty
2026-06-18 11:52:19 -04:00
07bd63f808
fix(adminui): /hosts timer dispose-race hardening + IAsyncDisposable parity with DriverStatusPanel (review)
Joseph Doherty
2026-06-18 11:50:07 -04:00
6457eba830
feat(adminui): /hosts cluster-grouped Driver Instances section (#8 )
Joseph Doherty
2026-06-18 11:45:37 -04:00
cb062fce90
feat(adminui): driver-snapshot GetAll() + pure Hosts driver-view builder (#8 )
Joseph Doherty
2026-06-18 11:40:37 -04:00
d203f31cb7
docs(abcip): fix stale ResolveDiscoveredUdtShapeAsync param doc + scalar-only typeCode note (review)
Joseph Doherty
2026-06-18 11:37:08 -04:00
3d8ce4e85f
feat(abcip): thread nested-struct template id so nested UDT members are addressable (#6 )
Joseph Doherty
2026-06-18 11:33:41 -04:00
56c136b0fd
docs(plans): implementation plan + tasks — Hosts rows + AbCip nested + Galaxy hygiene
Joseph Doherty
2026-06-18 11:29:58 -04:00
fec0891584
docs(plans): design — Hosts per-driver rows + AbCip nested-struct + Galaxy hygiene
Joseph Doherty
2026-06-18 11:26:09 -04:00
f59680fa48
docs(plans): reconcile driver-pages tasks (Phases 6-10 shipped) + fix §8.3 ModbusTcp->Modbus + mark reconnect-e2e plan complete
Joseph Doherty
2026-06-18 09:24:35 -04:00
0414a04892
test(adminui): review fixes — locked-snapshot assert, stable fake health, InitializeCount property
Joseph Doherty
2026-06-18 09:18:37 -04:00
f87ad5ae8f
test(adminui): E2E deployed-driver Healthy->Reconnecting->Healthy transition on Reconnect
Joseph Doherty
2026-06-18 09:12:15 -04:00
4e649151ac
docs(plans): refine Task 2 with GetHealth/seed/bridge-ordering findings from exploration
Joseph Doherty
2026-06-18 09:07:33 -04:00
ffb725e4c1
test(harness): production-fidelity DI (AddOtOpcUaRuntime) + opt-in fake driver factory
Joseph Doherty
2026-06-18 08:55:35 -04:00
21ce9e4850
docs(plans): driver-pages Phase 10 reconnect-transition E2E implementation plan + tasks
Joseph Doherty
2026-06-18 08:50:29 -04:00
482418c85a
docs(plans): driver-pages Phase 10 reconnect-transition E2E + close-out design
Joseph Doherty
2026-06-18 08:47:12 -04:00
08c7a2bd42
chore(plan): mark OpcUaClient ReadEventsAsync tasks complete + live /run results
Joseph Doherty
2026-06-18 06:19:47 -04:00
7a3d2712c0
test(opcuaclient): event-history smoke + docs(historian): driver event passthrough
Joseph Doherty
2026-06-18 06:12:51 -04:00
68637396b5
docs(abstractions): correct ReadEventsAsync remark — OpcUaClient now overrides
Joseph Doherty
2026-06-18 06:11:31 -04:00
045f9ca2e8
feat(opcuaclient): implement IHistoryProvider.ReadEventsAsync passthrough
Joseph Doherty
2026-06-18 06:07:32 -04:00
d48674ba31
fix(opcuaclient): review — UTC-kind the missing-time sentinel + test hardening
Joseph Doherty
2026-06-18 06:05:58 -04:00
e859963853
feat(opcuaclient): add BuildBaseEventFilter + MapHistoryEvents pure cores
Joseph Doherty
2026-06-18 06:02:11 -04:00
767bc56d97
docs(plan): OpcUaClient ReadEventsAsync implementation plan + tasks
Joseph Doherty
2026-06-18 06:00:01 -04:00
400bef4769
docs(plan): OpcUaClient ReadEventsAsync event-history passthrough design
Joseph Doherty
2026-06-18 05:55:58 -04:00
bd791e797a
chore(plan): mark cert-actions tasks complete + live /run results
Joseph Doherty
2026-06-18 05:24:18 -04:00
72869c4f23
docs(security): cert page now has FleetAdmin trust/untrust/delete actions
Joseph Doherty
2026-06-18 05:18:35 -04:00
2e231911fd
fix(adminui): cert page review — server-side FleetAdmin re-check, explicit delete switch, alert CSS
Joseph Doherty
2026-06-18 05:17:02 -04:00
8c429c3131
feat(adminui): trust/untrust/delete actions on /certificates (FleetAdmin)
Joseph Doherty
2026-06-18 05:11:12 -04:00
e8769fd8a8
refactor(adminui): cert manager review polish — char.IsAsciiHexDigit, filtered catch, TOCTOU note
Joseph Doherty
2026-06-18 05:08:39 -04:00
b47fc10ec0
feat(adminui): CertificateStoreManager — by-thumbprint trust/untrust/delete
Joseph Doherty
2026-06-18 05:04:36 -04:00
77cc39e6a7
docs(adminui): cert-store actions implementation plan + tasks
Joseph Doherty
2026-06-18 05:01:29 -04:00
f150460b5e
docs(adminui): cert-store actions design (trust/untrust/delete)
Joseph Doherty
2026-06-18 04:59:52 -04:00
8480e301ab
chore(plan): mark Galaxy handle-sharing tasks complete + live gate results
Joseph Doherty
2026-06-18 04:35:14 -04:00
15922d8483
test(galaxy): live-gw smoke — writer borrows subscription handle, skips AddItem
Joseph Doherty
2026-06-18 04:34:11 -04:00
e9da9c29d2
fix(galaxy): authoritative handle resolution + review cleanups
Joseph Doherty
2026-06-18 04:29:45 -04:00
3ffe45db53
feat(galaxy): wire SubscriptionRegistry handle resolver into the production writer
Joseph Doherty
2026-06-18 04:20:34 -04:00
2e3f528afc
feat(galaxy): writer borrows live subscription item handles (skip redundant AddItem)
Joseph Doherty
2026-06-18 04:18:35 -04:00
1411950077
feat(galaxy): SubscriptionRegistry.TryResolveItemHandle forward lookup
Joseph Doherty
2026-06-18 04:18:01 -04:00
490c6b7498
docs(plan): Galaxy writer handle-sharing implementation plan + tasks
Joseph Doherty
2026-06-18 04:13:51 -04:00
c85c4e5cd0
docs(plan): Galaxy writer/subscription-registry item-handle sharing design
Joseph Doherty
2026-06-18 04:11:24 -04:00
70e1bde90f
chore(plan): mark script-editor ctx-completion tasks complete + live results
Joseph Doherty
2026-06-18 02:54:20 -04:00
6f9e9c5c1b
docs(scripteditor): ctx-receiver scoping + SetVirtualTag single-tag-drop note
Joseph Doherty
2026-06-18 02:42:29 -04:00
ac3450d5f4
fix(adminui): ctx-receiver guard + truthful SetVirtualTag hover in script-editor completions
Joseph Doherty
2026-06-18 02:39:12 -04:00
74aad3bc87
docs(plan): script-editor ctx tag-completion implementation plan + tasks
Joseph Doherty
2026-06-18 02:34:45 -04:00
e84f7a6e68
docs(plan): script-editor ctx tag-completion correctness + truthfulness design
Joseph Doherty
2026-06-18 02:30:58 -04:00
651018f9fd
chore(plan): mark historian-paging + UDT-member-paths tasks complete + live results + follow-ups
Joseph Doherty
2026-06-17 20:51:55 -04:00
09fecf4c24
docs(twincat): correct stale Structure-symbol comment (members now expand via discovery)
Joseph Doherty
2026-06-17 20:47:32 -04:00
163f57b6bc
docs: within-timestamp tie-cluster paging + AbCip/TwinCAT UDT member discovery
Joseph Doherty
2026-06-17 20:35:34 -04:00
4a7b0fde7b
fix(abcip): thread CIP template-instance-id so discovered-UDT expansion works in production (review)
Joseph Doherty
2026-06-17 20:30:12 -04:00
fdd6b332fe
fix(twincat): update BrowseSymbolsAsync doc + cache adapter fields + Flat-mode note (review)
Joseph Doherty
2026-06-17 20:22:45 -04:00
0f929ae668
fix(historian): defensive over-fetch cap + Validate gating comment (review)
Joseph Doherty
2026-06-17 20:22:07 -04:00
4e1414026e
feat(abcip): expand controller-discovered UDTs into addressable member variables
Joseph Doherty
2026-06-17 20:11:41 -04:00
2e6c6d3ab6
feat(historian): page within oversized tie clusters (#400 ) instead of loud-failing
Joseph Doherty
2026-06-17 20:11:09 -04:00
3699fc16a8
feat(twincat): expand discovered struct/UDT symbols into addressable member leaves
Joseph Doherty
2026-06-17 20:05:01 -04:00
d0a0661f6a
docs(plan): historian within-timestamp paging (#400 ) + AbCip/TwinCAT UDT member-paths implementation plan + tasks
Joseph Doherty
2026-06-17 20:00:05 -04:00
ad66ecc97e
docs(plan): historian within-timestamp paging (#400 ) + AbCip/TwinCAT UDT member-paths design
Joseph Doherty
2026-06-17 19:52:52 -04:00
c402872c0c
chore(bit-rmw): mark all 5 tasks complete + live results + follow-ups
Joseph Doherty
2026-06-17 12:14:56 -04:00
098adf43d0
fix(ablegacy): dispose per-parent RMW locks on teardown (review symmetry)
Joseph Doherty
2026-06-17 12:10:42 -04:00
56ccaa797c
docs(drivers): B/I/O + BOOL-within-word bit writes (RMW)
Joseph Doherty
2026-06-17 12:03:54 -04:00
c48f299994
test(ablegacy): bit write surfaces device rejection status (review)
Joseph Doherty
2026-06-17 12:02:10 -04:00
340c145e87
fix(twincat): dispose bit-RMW locks on shutdown + guard null parent read (review)
Joseph Doherty
2026-06-17 12:01:55 -04:00
a73e20fb28
feat(twincat): BOOL-within-word writes via driver-level parent-word RMW
Joseph Doherty
2026-06-17 11:55:44 -04:00
5c6b7cd6f9
feat(ablegacy): B/I/O-file bit-within-word writes via existing RMW path
Joseph Doherty
2026-06-17 11:54:03 -04:00
02d6bbe381
docs(plan): bit-index RMW writes implementation plan + tasks
Joseph Doherty
2026-06-17 11:51:29 -04:00
cf231a7868
docs(design): bit-index RMW writes (AbLegacy B/I/O + TwinCAT BOOL-within-word)
Joseph Doherty
2026-06-17 11:44:14 -04:00
67da6d4fc4
chore(phase4d): mark all 8 tasks complete + live results + follow-ups
Joseph Doherty
2026-06-17 06:37:37 -04:00
988a7a938f
fix(s7): UInt64 box cast + Timer/Counter transient-write returns BadNotWritable (final review)
Joseph Doherty
2026-06-17 06:31:41 -04:00
b7dfb5aff2
docs(s7): wide-type/Timer-Counter support — CLI help + driver-specs + S7 driver doc
Joseph Doherty
2026-06-17 06:22:36 -04:00
11e8e4302d
fix(s7): Counter raw-word note + reject Writable Timer/Counter + Timer time-base tests (bundle review)
Joseph Doherty
2026-06-17 06:18:48 -04:00
8cfb8e920e
feat(s7): Timer/Counter read (read-only) + route Timer/Counter through buffer path
Joseph Doherty
2026-06-17 06:03:47 -04:00
5db08e9e85
feat(s7): DateTime (S7 DATE_AND_TIME) scalar read+write via S7.Net.Types.DateTime
Joseph Doherty
2026-06-17 05:54:08 -04:00
1e5fec2f85
feat(s7): String (S7 STRING) scalar read+write via S7.Net.Types.S7String
Joseph Doherty
2026-06-17 05:50:49 -04:00
286be5df88
feat(s7): byte-buffer codec dispatch + Int64/UInt64/LReal scalar read+write
Joseph Doherty
2026-06-17 05:38:18 -04:00
06b858eb02
feat(s7): unblock wide-type/Timer-Counter init guards + fix Int64/UInt64 node mapping
Joseph Doherty
2026-06-17 05:24:48 -04:00
b1256bcbf2
docs(phase4d): S7 wide-types implementation plan + tasks.json
Joseph Doherty
2026-06-17 05:17:50 -04:00
eb7f3c49ee
docs(phase4d): S7 wide types + Timer/Counter design (approved)
Joseph Doherty
2026-06-17 05:15:42 -04:00
12e114b3b0
chore(phase4c): mark tasks complete + record follow-ups (shipped 0f92e9e2 )
Joseph Doherty
2026-06-16 23:02:23 -04:00
0f92e9e238
fix(adminui): reject AbLegacy array length >256 at author-time (review I-3)
Joseph Doherty
2026-06-16 22:31:42 -04:00
3bb2031d1d
fix(opcua): array equipment-tag nodes are read-only (array writes out of scope, review M-1)
Joseph Doherty
2026-06-16 22:31:15 -04:00
5f7a2acd27
fix(abcip): isArray:true without a positive arrayLength is scalar (review I-2 consistency)
Joseph Doherty
2026-06-16 22:30:11 -04:00
d30fb77e31
fix(s7): use ArrayCount!.Value in DecodeArrayBlock (review I-1 clarity)
Joseph Doherty
2026-06-16 22:29:26 -04:00
05c7e86f0c
docs(phase4c): cross-driver 1-D array support + isArray/arrayLength keys + coverage matrix
Joseph Doherty
2026-06-16 22:18:55 -04:00
94e8c55b5c
fix(abcip): explicit IsArray flag so 1-element arrays read as arrays (review I-1)
Joseph Doherty
2026-06-16 22:14:41 -04:00
ce5d46be08
fix(ablegacy): gate array read on isArray:true; 1-element arrays + assumption comments (review C-2/I-3)
Joseph Doherty
2026-06-16 22:14:36 -04:00
3bbe39c166
fix(s7): treat ArrayCount>=1 as array so 1-element arrays read as arrays (review I-2)
Joseph Doherty
2026-06-16 22:12:30 -04:00
49ac1392a8
fix(modbus): gate array read on isArray:true; 1-element arrays (review C-1)
Joseph Doherty
2026-06-16 22:12:18 -04:00
3e74239532
feat(twincat): 1-D array symbol read via ADS + IsArray discovery
Joseph Doherty
2026-06-16 21:59:17 -04:00
950069392c
feat(ablegacy): PCCC multi-element file array read + IsArray discovery
Joseph Doherty
2026-06-16 21:55:41 -04:00
f4d5a5ee9c
feat(abcip): 1-D array read via libplctag + IsArray discovery
Joseph Doherty
2026-06-16 21:55:20 -04:00
a82c22c645
feat(s7): 1-D array block read + decode loop + IsArray discovery
Joseph Doherty
2026-06-16 21:54:50 -04:00
8d3dc32148
feat(modbus): String + BitInRegister array decode + equipment-tag arrayLength
Joseph Doherty
2026-06-16 21:51:55 -04:00
c2006dfb57
feat(adminui): driver-agnostic isArray/arrayLength Tag-modal control
Joseph Doherty
2026-06-16 21:50:27 -04:00
eb8a8dc19d
test(runtime): cover disabled-array + zero-length in artifact parity round-trip (review)
Joseph Doherty
2026-06-16 21:45:19 -04:00
0a747c343d
feat(runtime): decode IsArray/ArrayLength byte-parity in DeploymentArtifact
Joseph Doherty
2026-06-16 21:40:22 -04:00
584e9f2aee
test(opcua): applier forwards array params + overflow rows + doc fix (review)
Joseph Doherty
2026-06-16 21:36:38 -04:00
71cc417182
feat(opcua): EquipmentTagPlan IsArray/ArrayLength + composer ExtractTagArray + applier wire-in
Joseph Doherty
2026-06-16 21:27:43 -04:00
3172b7bdee
test(opcua): cover null-arrayLength dimension + tighten scalar assertion (review)
Joseph Doherty
2026-06-16 21:22:43 -04:00
a792820283
feat(opcua): EnsureVariable array params (ValueRank=OneDimension + ArrayDimensions)
Joseph Doherty
2026-06-16 21:16:07 -04:00
9dfabd279f
docs(phase4c): implementation plan + tasks.json (12 tasks, big-bang all 5 drivers)
Joseph Doherty
2026-06-16 21:10:50 -04:00
efccd8d1a6
docs(phase4c): design — cross-driver OPC UA array support (big-bang, all 5 drivers)
Joseph Doherty
2026-06-16 21:06:59 -04:00