Commit Graph

  • 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
  • 02177fec7c docs(mesh): Phase 6 plan — mesh partition + co-location topology Joseph Doherty 2026-07-24 01:07:54 -04:00
  • 35552a9608 Merge feat/mesh-phase5: per-cluster mesh Phase 5 — gRPC live-telemetry stream Joseph Doherty 2026-07-23 17:20:53 -04:00
  • f134935f99 docs(mesh-phase5): live gate PASSED — record + program status DONE Joseph Doherty 2026-07-23 17:11:52 -04:00
  • 97b2911327 chore(mesh-phase5): task ledger — tasks 0-11 complete, live gate pending Joseph Doherty 2026-07-23 16:56:13 -04:00
  • d15c613ef3 feat(mesh-phase5): dark-switch central telemetry ingest (Dps bridges | Grpc dialer) Joseph Doherty 2026-07-23 16:48:34 -04:00
  • 84fa2e1e43 fix(mesh-phase5): dial supervisor — re-dial on endpoint change, pin no-restart invariant, throttle skip warnings Joseph Doherty 2026-07-23 16:43:09 -04:00
  • ffb75b7854 chore(mesh-phase5): rig telemetry ports + shared key + ClusterNode.GrpcPort seed Joseph Doherty 2026-07-23 16:39:29 -04:00
  • e99ea40e2f docs(mesh-phase5): telemetry stream — Telemetry.md, config keys, supersede §6.3, program status Joseph Doherty 2026-07-23 16:33:29 -04:00
  • 1104785c89 feat(mesh-phase5): central telemetry dial supervisor (discover + reconnect + feed sinks) Joseph Doherty 2026-07-23 16:28:57 -04:00
  • af9c9d78da test(mesh-phase5): 3-port listener reachability + comment fix for the telemetry endpoint Joseph Doherty 2026-07-23 16:18:15 -04:00
  • a279a43ed4 fix(mesh-phase5): harden telemetry client onError contract (validate/isolate/defend) Joseph Doherty 2026-07-23 16:12:02 -04:00
  • f131c1cca5 feat(mesh-phase5): host the telemetry gRPC server on driver nodes (dedicated h2c port) Joseph Doherty 2026-07-23 16:05:40 -04:00
  • 2e70ef88aa fix(mesh-phase5): telemetry service — graceful client-disconnect + null-safe required-string mapping Joseph Doherty 2026-07-23 16:02:26 -04:00
  • 50f1620d79 feat(mesh-phase5): fail-closed bearer interceptor for the telemetry stream Joseph Doherty 2026-07-23 15:58:45 -04:00
  • c78034f0b9 feat(mesh-phase5): central telemetry dialer client + proto->domain converters Joseph Doherty 2026-07-23 15:55:06 -04:00
  • e742fee452 feat(mesh-phase5): node-side TelemetryStreamService (hub -> server-streaming) Joseph Doherty 2026-07-23 15:48:06 -04:00
  • 909d75357b test(mesh-phase5): cover the ScriptedAlarmHostActor + VirtualTagActor telemetry taps Joseph Doherty 2026-07-23 15:38:12 -04:00
  • 7bdb6d00ec fix(mesh-phase5): telemetry hub — plain Dictionary under gate, concurrency stress test, priming/eviction notes Joseph Doherty 2026-07-23 15:30:24 -04:00
  • 8e5090edf3 feat(mesh-phase5): tap the 4 telemetry publish seams into the local hub (DPS intact) Joseph Doherty 2026-07-23 15:27:29 -04:00
  • 9882b1d250 feat(mesh-phase5): node-local telemetry hub (snapshot-replay + drop-oldest fan-out) Joseph Doherty 2026-07-23 15:08:56 -04:00
  • 53ae0100a2 feat(mesh-phase5): Telemetry/TelemetryDial options + fail-closed validators Joseph Doherty 2026-07-23 15:03:40 -04:00
  • a845a6d2fd feat(mesh-phase5): telemetry.proto contract + oneof + contract-lock test Joseph Doherty 2026-07-23 14:58:53 -04:00
  • 094c29d13d docs(mesh-phase5): plan — gRPC live-telemetry stream (4-channel scope, dark switch, authed) Joseph Doherty 2026-07-23 14:56:20 -04:00
  • 3a590a0cb7 refactor(mesh-phase4): retire EfAlarmConditionStateStore + drop dead ScriptedAlarmState table (Task 9) Joseph Doherty 2026-07-23 14:33:11 -04:00
  • 26fad75c8a Merge branch 'feat/mesh-phase4' — per-cluster mesh Phase 4 (cut the driver-side ConfigDb connection) Joseph Doherty 2026-07-23 14:18:28 -04:00
  • 1281aebfa7 docs(mesh-phase4): live gate PASSED — driver nodes run ConfigDb-free Joseph Doherty 2026-07-23 14:03:28 -04:00
  • 0170614961 docs(mesh-phase4): Task 10 done; Task 11 live gate in progress Joseph Doherty 2026-07-23 13:22:35 -04:00
  • 0be20ab4fb chore(mesh-phase4): rig site nodes run with no ConfigDb string (FetchAndCache mandatory) Joseph Doherty 2026-07-23 13:22:18 -04:00
  • 95fa7bd5a0 docs(mesh-phase4): Task 8 done (55a6e1f2 recorded) Joseph Doherty 2026-07-23 13:19:27 -04:00
  • 55a6e1f2b2 docs(mesh-phase4): ServiceLevel semantics on DB-less nodes + driver ConfigDb cut Joseph Doherty 2026-07-23 13:18:57 -04:00
  • 6f21213f70 test(mesh-phase4): pin driver-only ConfigDb-free DI graph + fused-node mapper ordering Joseph Doherty 2026-07-23 13:10:42 -04:00