Commit Graph

  • 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