Commit Graph

  • f78f9cac28 test(sql): route SchemaComplianceFixture.Dispose through the hardened TryDropDatabase — one drop-DDL shape per file (final-review carryover) Joseph Doherty 2026-08-17 06:15:28 -04:00
  • c15e5fc97b docs(plan): name the r2 close-out docs commit in the ledger Joseph Doherty 2026-08-17 06:11:36 -04:00
  • d4e5c379ce docs(plan): perf follow-ups r2 close-out — outcomes, sweep record, register annotations Joseph Doherty 2026-08-17 06:11:20 -04:00
  • d54b4fab62 docs(acl): fix the two comment nits from the T1 re-review — displacement precision, straggler-test claim Joseph Doherty 2026-08-17 06:09:13 -04:00
  • 580b77cecf fix(sql-reaper): validate the GUID suffix and QUOTENAME the drop DDL; short reaper connect timeout; mint names from the prefix constant Joseph Doherty 2026-08-17 05:52:45 -04:00
  • 98d6a1908e fix(acl): a stale-generation straggler can no longer roll the cache stamp backward and thrash ClearAll Joseph Doherty 2026-08-17 05:51:24 -04:00
  • f797df5187 docs(s7-fixture): recapture the TM/CT addressing probe against the shipped profile; note CountingPlcFactory thread-safety Joseph Doherty 2026-08-17 05:47:43 -04:00
  • fd202d81ce test(s7): live-pin the Timer/Counter multi-var exclusion against a TM/CT-seeded s7_1500 fixture Joseph Doherty 2026-08-17 05:39:58 -04:00
  • 68461fbfb6 test(historian): justify/tighten the shutdown watch window; single read of RemoveCallCount per poll Joseph Doherty 2026-08-17 05:39:52 -04:00
  • 120e885b31 test(s7): assert the stale handle is disposed, not just replaced, in the cancellation-reopen pins Joseph Doherty 2026-08-17 05:39:47 -04:00
  • 1979cf4119 fix(acl): stamp the generation on Shard so a rollover racer cannot serve a stale-generation verdict; eviction-swap capacity hint Joseph Doherty 2026-08-17 05:37:56 -04:00
  • 8946644bb1 test(sql): reap >24h-old orphaned test databases at fixture startup (AdminUI + Configuration prefixes) Joseph Doherty 2026-08-17 05:37:22 -04:00
  • 9f09a62ad2 fix(docker-dev): guard the deploy POST against transport-level curl failure; bound both curls with --max-time Joseph Doherty 2026-08-17 05:37:04 -04:00
  • 45d670928a test(historian): replace the recorder tests' fixed sleeps with bounded watches on drain-pass and truncation observables Joseph Doherty 2026-08-17 05:35:30 -04:00
  • 4f86073333 test(s7): pin the span/multi-var cancellation reopen contract, one-bad-decode-in-chunk, and multi-var shape mismatch Joseph Doherty 2026-08-17 05:33:45 -04:00
  • a61b3c98a2 chore(docker-dev): readiness-gated deploy.sh + Traefik access log for the first-POST 404 Joseph Doherty 2026-08-17 05:32:44 -04:00
  • 1edfc263ec docs(mtconnect): state AsStream's buffer aliasing and lifetime contract Joseph Doherty 2026-08-17 05:31:28 -04:00
  • 248d998a79 docs(plan): perf follow-ups round 2 — ACL rollover window, S7 coverage + TM/CT live pin, historian bounded watches, test-DB reaper, docker-dev readiness gate Joseph Doherty 2026-08-17 05:28:24 -04:00
  • 7bb888bed1 Merge branch 'perf/followups' — follow-up register closed: per-driver overrun meter, drain-cancellation + ACL eviction + alarm-tracking fixes, SQL-Server-backed test pins, MTConnect XmlReader streaming, S7 multi-var leftovers; S7 + docker-dev live gates PASSED Joseph Doherty 2026-08-17 05:01:59 -04:00
  • 0b3972864a docs(plan): record the close-out docs commit SHA in the follow-ups ledger Joseph Doherty 2026-08-17 04:43:09 -04:00
  • 07fd17a34e docs(plan): perf follow-ups close-out — outcomes, live-gate evidence, register annotations Joseph Doherty 2026-08-17 04:42:51 -04:00
  • 7c5a843ace docs(code): close-out comment fixes from the follow-ups review round Joseph Doherty 2026-08-17 04:32:53 -04:00
  • 57c66416d8 test(s7): live-gate span reads + multi-var leftovers against the s7_1500 fixture Joseph Doherty 2026-08-17 04:24:39 -04:00
  • 6b46c485ef test(historian): bounded-wait durability read; honest nondeterminism notes on the #491 controls Joseph Doherty 2026-08-17 04:07:08 -04:00
  • 20022083df perf(s7): span leftovers batch through multi-var read PDUs with per-chunk fallback Joseph Doherty 2026-08-17 04:05:42 -04:00
  • 5ae430237f fix(alarms): background tasks register before they start; volatile _disposed Joseph Doherty 2026-08-17 04:04:45 -04:00
  • cda82c074e perf(mtconnect): stream sample-chunk parsing through XmlReader; no per-chunk document tree Joseph Doherty 2026-08-17 03:57:16 -04:00
  • d884934593 fix(acl): shard eviction swaps the shard object so _globalCount cannot over-subtract; concurrency stress test Joseph Doherty 2026-08-17 03:55:13 -04:00
  • 97902d6879 fix(drivers): overrun-meter tag keys align with the Meter's snake_case convention (driver_type/driver_instance) Joseph Doherty 2026-08-17 03:54:53 -04:00
  • c149410ba3 test(adminui): SQL-Server-backed pins for the drift watermark aggregate and the rename scan's collation widening Joseph Doherty 2026-08-17 03:53:16 -04:00
  • 7870c91fe4 fix(historian): a shutdown cancellation mid-drain is a pass abort, not a per-tag failure Joseph Doherty 2026-08-17 03:52:55 -04:00
  • dba5f806d3 fix(runtime): explicit 30s command timeout on the Direct-apply artifact read Joseph Doherty 2026-08-17 03:49:27 -04:00
  • 6ee553cf8f feat(s7): expose ReadMultipleVarsAsync through the IS7Plc seam Joseph Doherty 2026-08-17 03:48:15 -04:00
  • c4d8e4a200 fix(acl): revalidation memo rejects empty node identifiers, mirroring the authorizer's guard Joseph Doherty 2026-08-17 03:47:19 -04:00
  • e22ecea008 feat(drivers): per-driver poll-overrun meter on the shared OtOpcUa Meter; NoteOverrun + backoffCap doc notes Joseph Doherty 2026-08-17 03:46:27 -04:00
  • acb3772426 fix(s7): validate span-read options at parse time; document the over-PDU degradation Joseph Doherty 2026-08-17 03:45:14 -04:00
  • f06cbe16d9 docs(plan): perf follow-ups — 15-task plan off the remainder's follow-up register Joseph Doherty 2026-08-17 03:41:40 -04:00
  • e40a038527 Merge branch 'perf/roadmap-remainder' — 28-task perf remainder: historian batching, ACL cache re-shape, driver round-trips, alarm coalescing, AdminUI hot spots, off-mailbox apply Joseph Doherty 2026-08-17 03:18:36 -04:00
  • c8a7014388 fix(alarms): replacement drainer starts on a fresh stack; honest bounds in the latch comments Joseph Doherty 2026-08-16 05:57:05 -04:00
  • cd010c7165 docs(plan): commit the execution ledger's final state Joseph Doherty 2026-08-16 05:41:34 -04:00
  • 445bb855e2 fix: release the alarm drain latch on escape; cancel before disposing the page poll timers Joseph Doherty 2026-08-16 05:40:27 -04:00
  • b9e9df4081 docs(code): honest rationales — Akka restart semantics, per-key shards, EF literal inlining; retire or annotate orphaned members Joseph Doherty 2026-08-16 05:33:33 -04:00
  • dbc9223206 docs(code): correct comments stale after the perf remainder Joseph Doherty 2026-08-16 05:09:00 -04:00
  • e75bb38734 docs: perf roadmap remainder — outcomes + follow-up register Joseph Doherty 2026-08-16 05:08:53 -04:00
  • 451273c860 test(historian): pin the failed-batch-append branch; correct its loss-accounting docs Joseph Doherty 2026-08-16 04:50:30 -04:00
  • 0298a0b944 chore(historian): batch-era defaults + appsettings/doc alignment Joseph Doherty 2026-08-16 04:48:55 -04:00
  • 5b92eb0ff6 perf(runtime): direct-mode artifact read piped off the host mailbox Joseph Doherty 2026-08-16 04:48:02 -04:00
  • ca87329a83 fix(adminui): dedup + chunk the rename script-scan OR-chain Joseph Doherty 2026-08-16 04:36:03 -04:00
  • 485f4ea1e8 test(polling): tolerate one scheduler blip in the fast-reader overrun control Joseph Doherty 2026-08-16 04:35:01 -04:00
  • 384568b47a perf(historian): batch ingest — one group commit per value burst Joseph Doherty 2026-08-16 04:33:35 -04:00
  • aad7583b79 test(acl): pin TranslateBrowsePath survivor order through the compaction Joseph Doherty 2026-08-16 04:29:27 -04:00
  • b6275f439c perf(runtime): per-driver index for connectivity fans; comms-loss is one batch Joseph Doherty 2026-08-16 04:27:20 -04:00
  • 9cf400f1e8 perf(drivers): fixed-rate poll pacing with overrun counter; non-blocking unsubscribe Joseph Doherty 2026-08-16 04:26:20 -04:00
  • 684e59d871 perf(adminui): drift chip recomposes only when the config-edit watermark moves Joseph Doherty 2026-08-16 04:25:56 -04:00
  • d5f573b019 fix(abcip): single-flight cold-connect per device — backoff survives the parallel read window Joseph Doherty 2026-08-16 04:24:59 -04:00
  • fe8d132c64 perf(adminui): rename script scan filters server-side, stops shipping every script body Joseph Doherty 2026-08-16 04:24:10 -04:00
  • a76b4e0740 perf(historian): bounded-parallel per-tag drain (DrainConcurrency, default 8) Joseph Doherty 2026-08-16 04:21:18 -04:00
  • d8a17f2e34 perf(acl): authorizer hot path — cache lookup before scope build, lazy deny reasons Joseph Doherty 2026-08-16 04:19:47 -04:00
  • 7320586512 fix(historian): incremental batch-append bookkeeping; genuine group-commit durability pin Joseph Doherty 2026-08-16 04:18:38 -04:00
  • fbe8aaad9d perf(acl): dedup subscription revalidation by (session, node) Joseph Doherty 2026-08-16 04:18:03 -04:00
  • 50035b36bb test(mqtt): pin status-code half of republish suppression; note Sparkplug bypass Joseph Doherty 2026-08-16 04:16:35 -04:00
  • 39f67a0fce perf(s7): span-grouped reads — one PDU per contiguous block instead of one per tag Joseph Doherty 2026-08-16 04:15:37 -04:00
  • 63081d52d8 fix(adminui): fleet page disposes its poll timer asynchronously like hosts Joseph Doherty 2026-08-16 04:15:05 -04:00
  • 409a58b624 fix(modbus): lifecycle gate + non-vacuous reprobe regression test Joseph Doherty 2026-08-16 04:07:27 -04:00
  • 140bf0c131 perf(adminui): pooled DbContext factory; role-grants reads per-call, not per-circuit Joseph Doherty 2026-08-16 04:05:34 -04:00
  • 34f836e03c perf(mtconnect): sample chunks parse from bytes, no per-chunk string copies Joseph Doherty 2026-08-16 04:05:15 -04:00
  • 3795899d10 perf(adminui): 5s snapshot cache in front of the script tag catalog Joseph Doherty 2026-08-16 04:05:07 -04:00
  • ba977dbe0d perf(adminui): raw tree renders tag rows from a projection without TagConfig Joseph Doherty 2026-08-16 04:04:32 -04:00
  • fa36d64e8f perf(adminui): one guard round-trip per bulk reference add Joseph Doherty 2026-08-16 04:03:49 -04:00
  • 541a223b96 perf(acl): O(n) browse/translate filtering compaction Joseph Doherty 2026-08-16 04:03:32 -04:00
  • 4b6a93bb78 fix(adminui): fleet/hosts poll ticks no longer overlap; cancel on dispose Joseph Doherty 2026-08-16 04:03:31 -04:00
  • d6a4fbd648 perf(abcip): bounded-parallel tag reads (MaxConcurrentReads, default 8) Joseph Doherty 2026-08-16 04:02:40 -04:00
  • 5df793e79a perf(alarms): dirty-set coalescing — one evaluation per alarm per drain, latest values win Joseph Doherty 2026-08-16 04:02:20 -04:00
  • 2c708f5560 perf(mqtt): suppress unchanged-value republish fan-out Joseph Doherty 2026-08-15 21:42:00 -04:00
  • 8d91833fed feat(s7): pure narrow-scalar decode from byte spans Joseph Doherty 2026-08-15 21:41:46 -04:00
  • 6ff64ca067 perf(historian): group-commit batch append on the historization outbox Joseph Doherty 2026-08-15 21:40:04 -04:00
  • debd44c213 perf(acl): per-session decision-cache shards — a crawl no longer evicts the fleet Joseph Doherty 2026-08-15 21:38:48 -04:00
  • dbc9a132e2 perf(adminui): /deployments lists a projection, not 50 artifact blobs Joseph Doherty 2026-08-15 21:38:11 -04:00
  • c3970a2e5d fix(modbus): dispose the previous transport and probe loops on re-initialize Joseph Doherty 2026-08-15 21:37:28 -04:00
  • dc459633e0 docs(plan): perf roadmap remainder — historian batching, ACL cache, driver round-trips, alarm coalescing, AdminUI hot spots, residuals Joseph Doherty 2026-08-15 21:33:18 -04:00
  • a8c93a0080 docs: record surgical-deploys docker-dev live gate (PASSED) + correct rename-vs-identity rebuild wording Joseph Doherty 2026-08-15 20:01:37 -04:00
  • 169ee6a465 Merge branch 'perf/surgical-deploys' — surgical deploy applies (classifier whitelist + delta materialisation), parse-once artifact, gzip artifact blob, stash + wedge watchdog Joseph Doherty 2026-08-15 19:42:01 -04:00
  • 5e336114c4 Merge branch 'perf/value-pipeline-batching' — end-to-end value-path batching (IBatchSubscribable, batched actor messages, single-lock chunked WriteValues, RealmKey re-key, dispatcher throughput 100) Joseph Doherty 2026-08-15 19:42:01 -04:00
  • 3122728593 test(runtime): serialize meter-asserting publish-actor suites (cross-collection counter pollution) Joseph Doherty 2026-08-15 18:16:59 -04:00
  • 0b537b5dec docs: record surgical-deploy semantics + artifact compression ops notes (plan 2026-08-15) Joseph Doherty 2026-08-15 18:02:21 -04:00
  • d787502d54 fix(opcuaserver): degraded applies re-diff instead of losing nodes; in-place UNS mirror updates; sever inverse edges Joseph Doherty 2026-08-15 17:53:26 -04:00
  • 0dbbb5ac6b fix(runtime): stash dedup + applying-wedge watchdog; cache-failure diagnostics Joseph Doherty 2026-08-15 17:43:15 -04:00
  • bfbdce32e4 perf(opcuaserver): non-rebuild applies materialise the delta, not the composition Joseph Doherty 2026-08-15 17:26:53 -04:00
  • 14c31941c7 fix(runtime): parallel-safe decompression limit; tighten ParsedDeploymentArtifact surface Joseph Doherty 2026-08-15 17:16:09 -04:00
  • 5f2e60278c perf(runtime): apply-path cache write off-mailbox; stash deferred dispatches Joseph Doherty 2026-08-15 17:12:01 -04:00
  • 875ec9fe47 fix(opcuaserver): UNS reference nodes repair on backing-tag historian/shape edits Joseph Doherty 2026-08-15 17:11:03 -04:00
  • 9dbd5e96f7 perf(controlplane): gzip artifact blob inside the hashed bytes (~10-20x smaller) Joseph Doherty 2026-08-15 17:00:19 -04:00
  • 2fd60ecce1 perf(runtime): apply path parses the artifact once per actor Joseph Doherty 2026-08-15 17:00:05 -04:00
  • 9c37330a4c feat(opcuaserver): applier applies raw-tag + UNS-reference deltas surgically Joseph Doherty 2026-08-15 13:25:33 -04:00
  • 59202017cd refactor(runtime): ParsedDeploymentArtifact — one JsonDocument per apply Joseph Doherty 2026-08-15 13:23:05 -04:00
  • 9f68f27218 feat(opcuaserver): classifier — non-alarm raw-tag + UNS-reference deltas are surgical, not rebuilds Joseph Doherty 2026-08-15 13:18:04 -04:00
  • cf69d03f9b perf(runtime): Direct-mode apply threads the in-hand artifact (1 SQL read per apply, not 3) Joseph Doherty 2026-08-15 13:17:27 -04:00
  • aec5ce565a docs: record value-pipeline batching (plan 2026-08-15) Joseph Doherty 2026-08-15 13:10:55 -04:00
  • 44b99a9939 fix(runtime,opcuaserver): review fast-follows — event-filter throw test, loud MapKey fallback, log shape Joseph Doherty 2026-08-15 13:10:43 -04:00
  • ec6f8bb0ea refactor(runtime): delete dead per-value host ingress; batch fan-out review fixes Joseph Doherty 2026-08-15 13:01:17 -04:00