-
92ba120964
feat(mqtt): MqttDriverForm + MqttDeviceForm — the driver/device config forms P1 omitted
Joseph Doherty
2026-07-24 20:41:48 -04:00
-
b295b24419
feat(adminui): author + configure the Sql driver in /raw
Joseph Doherty
2026-07-24 20:41:33 -04:00
-
07a4a5ff5e
docs(mqtt): P1 plain-MQTT milestone live-verified; endpoint recorded
Joseph Doherty
2026-07-24 18:44:43 -04:00
-
2409d05a28
fix(mqtt): a broker-refused CONNECT no longer reports a Healthy driver
Joseph Doherty
2026-07-24 18:02:00 -04:00
-
033b3700c4
test(mqtt): Mosquitto TLS+auth fixture + env-gated plain live suite
Joseph Doherty
2026-07-24 17:49:14 -04:00
-
ff62b62a55
refactor(mqtt): accept a blank jsonPath; guide with a seeded "$" instead
Joseph Doherty
2026-07-24 17:37:13 -04:00
-
a13ae926a8
fix(mqtt): gate DisposeAsync against in-flight lifecycle ops (C1) + rebuild-branch tests (I1)
Joseph Doherty
2026-07-24 17:31:04 -04:00
-
f79d13e2d8
feat(mqtt): factory + DriverTypeNames.Mqtt + host factory/probe registration
Joseph Doherty
2026-07-24 17:24:13 -04:00
-
36abd871a1
feat(mqtt): typed tag editor + validator (plain mode)
Joseph Doherty
2026-07-24 17:17:37 -04:00
-
420692b6e5
feat(mqtt): MqttDriver shell — lifecycle + authored-only discovery (Once)
Joseph Doherty
2026-07-24 17:06:39 -04:00
-
211c6ea6d6
feat(mqtt): register MqttDriverBrowser (bespoke-first for Mqtt)
Joseph Doherty
2026-07-24 16:48:55 -04:00
-
a856d61510
feat(mqtt): MqttDriverProbe CONNECT handshake
Joseph Doherty
2026-07-24 16:43:36 -04:00
-
abf3116bd4
fix(mqtt): wildcard tags went dark on reconnect — index by filter, not topic
Joseph Doherty
2026-07-24 16:40:31 -04:00
-
4ec01bdfc1
fix(mqtt): bound browse observation against a chatty or malicious broker
Joseph Doherty
2026-07-24 16:30:45 -04:00
-
d421487bcd
feat(mqtt): plain subscribe→OnDataChange with retained seed + ref resolver
Joseph Doherty
2026-07-24 16:10:07 -04:00
-
e27eb77187
docs(modbus-rtu): record Wave-1 RTU-over-TCP live /run gate result (PASSED)
Joseph Doherty
2026-07-24 15:50:10 -04:00
-
f2a9ee5d93
docs(mqtt): flag the Last-Will landmine at the browse-options seam
Joseph Doherty
2026-07-24 15:46:23 -04:00
-
7980b34692
feat(mqtt): bespoke passive #-observation browser (plain)
Joseph Doherty
2026-07-24 15:45:32 -04:00
-
585f827ef3
fix(sql): close the residual credential leak in HandlePollError
Joseph Doherty
2026-07-24 15:39:14 -04:00
-
be1df2d1e5
feat(sql): SqlTagConfigEditor razor shell
Joseph Doherty
2026-07-24 15:35:25 -04:00
-
9b5a96876e
feat(sql): register Sql factory + probe in Host, add DriverTypeNames.Sql
Joseph Doherty
2026-07-24 15:35:09 -04:00
-
fcc7ed698e
harden(modbus-rtu): factory throws on unknown transport + document RTU FC-shape assumption
Joseph Doherty
2026-07-24 15:33:49 -04:00
-
a6370a26f8
fix(mqtt): make connect idempotent, bound the reconnect callback, stop State lying
Joseph Doherty
2026-07-24 15:32:41 -04:00
-
898c7365c4
test(sql): close the blackhole gate's leaked-pause race + bound the shell command
Joseph Doherty
2026-07-24 15:29:21 -04:00
-
37f444b99c
fix(sql): stop leaking provider exception text; de-dup health classification; guard Faulted
Joseph Doherty
2026-07-24 15:28:17 -04:00
-
443b718158
feat(sql): typed AdminUI Sql tag-config model + validator (string enums)
Joseph Doherty
2026-07-24 15:27:14 -04:00
-
02f2dafe2a
test(sql): correct the cancelled-token test's overclaim
Joseph Doherty
2026-07-24 15:20:59 -04:00
-
10a6a37ca5
test(sql): blackhole/timeout live-gate on a dedicated mssql container
Joseph Doherty
2026-07-24 15:20:24 -04:00
-
a55b7e51ca
test(sql): injection regression — bind values, reject unknown identifiers
Joseph Doherty
2026-07-24 15:13:32 -04:00
-
14fe89c505
feat(sql): AdminUI browser DI + Sql address picker body
Joseph Doherty
2026-07-24 15:11:56 -04:00
-
4c716242ac
feat(sql): SqlDriverProbe SELECT-1 liveness check
Joseph Doherty
2026-07-24 15:11:32 -04:00
-
3cc8069150
feat(sql): factory + connectionStringRef env resolution + string-enum guard
Joseph Doherty
2026-07-24 15:06:58 -04:00
-
48cbc26c34
test(sql): env-gated central-SQL integration fixture + read round-trip
Joseph Doherty
2026-07-24 15:06:55 -04:00
-
9e7fa5d11f
feat(sql): SqlDriverBrowser transient-connection open with env-ref + literal
Joseph Doherty
2026-07-24 15:02:17 -04:00
-
768fd87774
feat(mqtt): hand-rolled reconnect loop with bounded backoff + resubscribe
Joseph Doherty
2026-07-24 14:58:37 -04:00
-
e3e3f5fb04
fix(sql): report an ambiguous wide-row selector; pin the zombie-slot bound
Joseph Doherty
2026-07-24 14:57:14 -04:00
-
861a1d1df0
feat(sql): SqlBrowseSession schema-walk over dialect catalog
Joseph Doherty
2026-07-24 14:49:36 -04:00
-
9b30bdeb7a
feat(sql): SqlDriver shell wiring PollGroupEngine + probe + read-only discovery
Joseph Doherty
2026-07-24 14:48:14 -04:00
-
cacc30a60d
feat(mqtt): last-value cache backing IReadable (per-ref no-data)
Joseph Doherty
2026-07-24 14:40:15 -04:00
-
5629f3698d
fix(mqtt): pin the CA accept path, honour presented intermediates, classify the dispose race
Joseph Doherty
2026-07-24 14:38:16 -04:00
-
4a8c9badce
docs(modbus-rtu): note the co-running :5021 rtu_over_tcp fixture in Docker README + Dockerfile
Joseph Doherty
2026-07-24 14:36:00 -04:00
-
ded4c41798
fix(mqtt): key tag definitions by RawPath, not the TagConfig blob
Joseph Doherty
2026-07-24 14:31:36 -04:00
-
0efee7413a
fix(sql): SqlQueryPlan snapshots its collections instead of aliasing the planner's lists
Joseph Doherty
2026-07-24 14:31:35 -04:00
-
650e27075f
test(modbus-rtu): add rtu_over_tcp pymodbus fixture + RTU-over-TCP integration tests
Joseph Doherty
2026-07-24 14:29:10 -04:00
-
967e5140f1
feat(sql): SqlPollReader — grouped read, bounded deadline, ordered slice-back
Joseph Doherty
2026-07-24 14:26:29 -04:00
-
726d6d198e
feat(mqtt): MqttConnection connect/TLS/auth under bounded deadline
Joseph Doherty
2026-07-24 14:24:04 -04:00
-
132e7b63f6
feat(modbus-rtu): add Transport selector to the AdminUI Modbus driver form
Joseph Doherty
2026-07-24 14:19:15 -04:00
-
13bd9820b0
feat(modbus-rtu): route driver + probe transports through ModbusTransportFactory
Joseph Doherty
2026-07-24 14:12:12 -04:00
-
1d90bf3611
feat(modbus-rtu): add ModbusTransportFactory switch on Transport mode
Joseph Doherty
2026-07-24 14:08:10 -04:00
-
50f88b938f
fix(sql): reject Unicode format chars in identifiers; stop overclaiming catalog validation
Joseph Doherty
2026-07-24 14:07:54 -04:00
-
e3fea6e409
feat(mqtt): plain tag parser + strict-enum descriptor
Joseph Doherty
2026-07-24 14:07:11 -04:00
-
20be5416b9
feat(modbus-rtu): bind Transport mode on options/DTO/factory (string-enum guard)
Joseph Doherty
2026-07-24 14:04:34 -04:00
-
a05cff794c
test(sql): SqliteDialect + poll fixture
Joseph Doherty
2026-07-24 14:04:06 -04:00
-
a5a8710af5
fix(mqtt): pin security-critical defaults with tests + redact password in ToString
Joseph Doherty
2026-07-24 14:01:01 -04:00
-
6de782e0fd
test(sql): cover the WideRow + rejection branches of the equipment-tag parser
Joseph Doherty
2026-07-24 13:59:01 -04:00
-
3d7e1226d2
refactor(sql): promote the single-row limit onto ISqlDialect
Joseph Doherty
2026-07-24 13:57:25 -04:00
-
47e9cd56ef
feat(modbus-rtu): add ModbusRtuOverTcpTransport (RTU framing over socket lifecycle)
Joseph Doherty
2026-07-24 13:56:19 -04:00
-
f22db5d801
feat(mqtt): Contracts options DTO + enums (name-serialized)
Joseph Doherty
2026-07-24 13:53:06 -04:00
-
984cc875e8
feat(sql): SqlGroupPlanner folds tags into one parameterized query per group
Joseph Doherty
2026-07-24 13:52:27 -04:00
-
2f38b5b285
refactor(modbus): extract ModbusSocketLifecycle from ModbusTcpTransport (behaviour-preserving)
Joseph Doherty
2026-07-24 13:47:18 -04:00
-
d677ac7ad3
feat(mqtt): validate MQTTnet-5/net10 restore under central pinning (spike, P1 gate)
Joseph Doherty
2026-07-24 13:45:21 -04:00
-
-
-
6bb0108d30
feat(sql): ISqlDialect + SqlServerDialect with golden catalog SQL
Joseph Doherty
2026-07-24 13:43:53 -04:00
-
20100c36ad
feat(modbus-rtu): validate response unit + cover partial-read/truncation in ModbusRtuFraming
Joseph Doherty
2026-07-24 13:42:25 -04:00
-
531a110ffc
chore(sql): align Driver.Sql csproj with sibling driver LangVersion convention
Joseph Doherty
2026-07-24 13:37:52 -04:00
-
53ff041229
feat(sql): SqlTagDefinition + strict-enum equipment-tag parser
Joseph Doherty
2026-07-24 13:36:51 -04:00
-
5b7fe9336e
feat(sql): SqlProvider/SqlTagModel enums + SqlDriverConfigDto
Joseph Doherty
2026-07-24 13:34:50 -04:00
-
eed6617784
feat(modbus-rtu): add ModbusRtuFraming (ADU build + FC-aware length-less deframe)
Joseph Doherty
2026-07-24 13:33:59 -04:00
-
3b75e1ac69
feat(sql): scaffold Driver.Sql.Browser project
Joseph Doherty
2026-07-24 13:31:09 -04:00
-
227cf8ee2b
feat(sql): scaffold Driver.Sql runtime project
Joseph Doherty
2026-07-24 13:30:11 -04:00
-
8d0f60ec51
feat(modbus-rtu): add ModbusCrc CRC-16/MODBUS helper + golden vectors
Joseph Doherty
2026-07-24 13:30:05 -04:00
-
b13ff0be46
feat(sql): scaffold Driver.Sql.Contracts project
Joseph Doherty
2026-07-24 13:29:25 -04:00
-
-
e787aa572b
feat(modbus-rtu): add ModbusTransportMode enum (Tcp | RtuOverTcp)
Joseph Doherty
2026-07-24 13:28:30 -04:00
-
-
963eec1b32
chore: gitignore .worktrees/ for subagent-driven-development
Joseph Doherty
2026-07-24 13:26:01 -04:00
-
7a9caf141c
docs(drivers): add worktree + subagent execution commands to the tracking doc
Joseph Doherty
2026-07-24 13:24:36 -04:00
-
88adec047b
refactor(health): adopt the shared active-node check (Health 0.3.0)
Joseph Doherty
2026-07-24 13:21:11 -04:00
-
76e55fc112
docs(drivers): Wave 0-2 tracking doc + Wave 1/2 implementation plans
Joseph Doherty
2026-07-24 13:17:44 -04:00
-
4550486144
fix(health): active tier reports the cluster Primary, not the admin role leader
Joseph Doherty
2026-07-24 12:43:27 -04:00
-
8dd9da7d4d
fix(health): bump to ZB.MOM.WW.Health 0.2.1 — Traefik leader-pinning now works
Joseph Doherty
2026-07-24 11:30:50 -04:00
-
9ed2251f37
chore(health): bump ZB.MOM.WW.Health* to 0.2.0
Joseph Doherty
2026-07-24 05:54:07 -04:00
-
d1dac87f6f
docs: record the bootstrap guard (CLAUDE.md + Phase 7 note)
Joseph Doherty
2026-07-24 08:35:16 -04:00
-
279d1d0fb1
feat(cluster): simultaneous-cold-start split-brain guard (opt-in)
Joseph Doherty
2026-07-24 08:34:29 -04:00
-
c50ebcf7dc
docs(mesh): Phase 7 DONE — failover drills PASSED, program complete
Joseph Doherty
2026-07-24 08:01:26 -04:00
-
ecf5410433
docs(claude): record the Phase 6 boot-crash wiring landmine
Joseph Doherty
2026-07-24 07:09:38 -04:00
-
7774797770
docs(mesh): Phase 6 live gate PASSED — all 8 legs green, exit gate MET
Joseph Doherty
2026-07-24 07:08:52 -04:00
-
792f28ec7b
fix(docker-dev): Phase 6 rig — LDAP on all nodes + serialize site-pair startup
Joseph Doherty
2026-07-24 06:54:27 -04:00
-
3a4ed8ddb5
fix(mesh): break Phase 6 boot-crash — cluster-redundancy singleton scope must not resolve IClusterRoleInfo eagerly
Joseph Doherty
2026-07-24 06:54:14 -04:00
-
2839deb5be
docs(mesh): Phase 6 ledger — tasks 0-8 done, task 9 live gate in progress
Joseph Doherty
2026-07-24 03:03:30 -04:00
-
8a173bbaf6
docs(mesh): Phase 6 — mark done, remove single-mesh caveats, document pair-local meshes
Joseph Doherty
2026-07-24 03:02:35 -04:00
-
2a057a466f
docs(mesh): Phase 6 plan+ledger updates through Task 7
Joseph Doherty
2026-07-24 02:39:08 -04:00
-
741ab97b89
feat(mesh-phase6): split docker-dev into three independent 2-node Akka meshes
Joseph Doherty
2026-07-24 02:38:26 -04:00
-
344b0d3334
fix(cluster): validate split topology against EFFECTIVE roles, not raw Cluster:Roles
Joseph Doherty
2026-07-24 02:29:41 -04:00
-
a886d5e6e0
feat(cluster): refuse to boot a split-topology node on a DPS transport mode
Joseph Doherty
2026-07-24 02:13:47 -04:00
-
d98b32640b
docs(mesh): correct the all-malformed-cluster comments in CentralCommunicationActor
Joseph Doherty
2026-07-24 02:08:05 -04:00
-
1ce2042e14
fix(mesh): also scope the reconciler's observed membership to the own cluster
Joseph Doherty
2026-07-24 02:07:02 -04:00
-
a4d3ab4005
docs(mesh): fix stale redundancy-singleton comments + prove the driver fallback end-to-end
Joseph Doherty
2026-07-24 01:58:48 -04:00
-
6531ec1984
feat(mesh): one ClusterClient per Cluster in CentralCommunicationActor (Phase 6)
Joseph Doherty
2026-07-24 01:53:20 -04:00
-
2535df019b
fix(mesh): scope ClusterNode address reconcile to the admin node's own cluster
Joseph Doherty
2026-07-24 01:39:06 -04:00
-
a2c5d57fa0
feat(mesh): re-home the redundancy singleton to a per-cluster driver singleton
Joseph Doherty
2026-07-24 01:28:47 -04:00
-
2d2f1decae
feat(mesh): ClusterRoleInfo exposes the node's own cluster-scoped role
Joseph Doherty
2026-07-24 01:17:58 -04:00
-
87ff00fd30
feat(mesh): RoleParser accepts cluster-{ClusterId} roles; consolidate the driver-role literal
Joseph Doherty
2026-07-24 01:10:42 -04:00