Joseph Doherty
|
c573d8cac6
|
fix(audit-log): retention loop absorbs shutdown cancellation instead of faulting host StopAsync (plan R2-04 T12)
|
2026-07-13 10:28:03 -04:00 |
|
Joseph Doherty
|
c83b51fe9c
|
fix(comm): single-gRPC-endpoint sites can go live (flip degenerates to same-node reconnect) (plan R2-02 T15)
|
2026-07-13 10:26:43 -04:00 |
|
Joseph Doherty
|
8f46b6cec2
|
fix(sitecallaudit): time-sliced terminal purge replaces the single year-scale DELETE (plan R2-04 T11)
|
2026-07-13 10:26:33 -04:00 |
|
Joseph Doherty
|
41ffe42de3
|
docs(comm): accept + document standby aggregators and deleted-site viewer behavior; fix aggregator e2e ctor call for new params (plan R2-02 T14)
|
2026-07-13 10:25:10 -04:00 |
|
Joseph Doherty
|
3d6973cc89
|
perf(sitecallaudit): filtered IX_SiteCalls_Terminal index backs the retention purge predicate (plan R2-04 T10)
|
2026-07-13 10:23:19 -04:00 |
|
Joseph Doherty
|
4e228110ec
|
fix(comm): site delete disposes the site's cached gRPC channels via RemoveSiteAsync (plan R2-02 T13)
|
2026-07-13 10:22:56 -04:00 |
|
Joseph Doherty
|
439dee52d3
|
fix(kpi): classify the failover fold-race pass loss as a self-healing Information event (plan R2-04 T9)
|
2026-07-13 10:21:02 -04:00 |
|
Joseph Doherty
|
b7f8632db8
|
chore(comm): ctor-inject aggregator reconnect/stability tuning, remove process-global statics (plan R2-02 T12)
|
2026-07-13 10:19:51 -04:00 |
|
Joseph Doherty
|
c29e588905
|
fix(comm): queue failover re-seed behind in-flight fan-out; stamp stream generation on gRPC errors (plan R2-02 T11)
|
2026-07-13 10:18:16 -04:00 |
|
Joseph Doherty
|
cd93ad3976
|
fix(kpi): promote catalog metric literals to shared KpiMetrics constants — drift becomes a compile error (plan R2-04 T8)
|
2026-07-13 10:15:40 -04:00 |
|
Joseph Doherty
|
bb8be55382
|
perf(comm): coalesce live-alarm delta publishes (250ms window, 0 = legacy) (plan R2-02 T10)
|
2026-07-13 10:14:54 -04:00 |
|
Joseph Doherty
|
1c8b2bc745
|
docs(kpi): trend charts state per-bucket-total semantics for rate metrics (plan R2-04 T7)
|
2026-07-13 10:12:58 -04:00 |
|
Joseph Doherty
|
cc4ff7029d
|
chore(saf): eagerly validate SweepBatchLimit/SweepTargetParallelism (plan R2-02 T9)
|
2026-07-13 10:10:34 -04:00 |
|
Joseph Doherty
|
9a1b160e79
|
fix(kpi): query service applies catalog aggregation at the bucketer — rate charts keep one unit across the raw/rollup boundary (plan R2-04 T6)
|
2026-07-13 10:10:30 -04:00 |
|
Joseph Doherty
|
61442b5f81
|
fix(saf): publish _sweepTask only on CAS win so StopAsync drains the real in-flight sweep (plan R2-02 T8)
|
2026-07-13 10:09:40 -04:00 |
|
Joseph Doherty
|
3ee98c8af6
|
docs: sync Transport/ScriptAnalysis/TemplateEngine specs + CLAUDE.md with the round-2 fix wave (plan R2-05 T9)
No ../scadaproj/CLAUDE.md change needed — no wire-relationship/stack/namespace change in this wave.
|
2026-07-13 10:08:51 -04:00 |
|
Joseph Doherty
|
54417e1ae4
|
fix(kpi): per-metric bucket reduction — Rate series sum per bucket instead of keeping one delta (plan R2-04 T5)
|
2026-07-13 10:07:56 -04:00 |
|
Joseph Doherty
|
6e1ab62d27
|
feat(saf): resync ack confirmation + completed/ack-missing telemetry; doc resync rewrite (plan R2-02 T7)
|
2026-07-13 10:05:33 -04:00 |
|
Joseph Doherty
|
9b4890326e
|
fix(transport): validate MaxConcurrentImportSessions at startup — a zero cap no longer bricks imports silently (plan R2-05 T8)
|
2026-07-13 10:05:31 -04:00 |
|
Joseph Doherty
|
db623c1435
|
fix(transport): warn on import of instance overrides targeting locked template members — inert rows no longer silent (plan R2-05 T7)
|
2026-07-13 10:04:43 -04:00 |
|
Joseph Doherty
|
7b95ef3752
|
fix(kpi): backfill skips or shrinks to the rollup watermark on failover restarts (plan R2-04 T4)
|
2026-07-13 10:03:33 -04:00 |
|
Joseph Doherty
|
91bde0fae6
|
fix(inbound): 415 guard and lenient JSON parse cover chunked (no Content-Length) bodies (plan R2-06 T6)
|
2026-07-13 10:01:22 -04:00 |
|
Joseph Doherty
|
84bc2380f3
|
fix(saf): standby assembles chunked resync, applies atomically with re-check, acks; N5 race documented (plan R2-02 T6)
|
2026-07-13 10:00:47 -04:00 |
|
Joseph Doherty
|
b02c15bbca
|
fix(security): import trust gate covers instance alarm-override trigger expressions — 5th call site is surface-complete (plan R2-05 T6)
|
2026-07-13 09:57:59 -04:00 |
|
Joseph Doherty
|
350d530135
|
fix(kpi): slice the rollup backfill into bounded 24h folds that yield to periodic folds (plan R2-04 T3)
|
2026-07-13 09:57:42 -04:00 |
|
Joseph Doherty
|
fb9dc7ad14
|
fix(inbound): type SITE_UNREACHABLE on AskTimeoutException at the router await instead of message-substring sniffing (plan R2-06 T5)
|
2026-07-13 09:57:22 -04:00 |
|
Joseph Doherty
|
3b9f6b9572
|
docs(siteruntime): compile gate is synchronous by design; Expression alarms share the bounded script pool (plan R2-03 T7)
|
2026-07-13 09:56:45 -04:00 |
|
Joseph Doherty
|
3f937b399b
|
fix(saf): chunk the resync snapshot to fit Akka remoting frames (additive protocol, byte-budgeted) (plan R2-02 T5)
|
2026-07-13 09:55:32 -04:00 |
|
Joseph Doherty
|
128d2bab73
|
perf(siteruntime): deploy gate + InstanceActor PreStart share one Roslyn compile via the compile cache (plan R2-03 T6)
|
2026-07-13 09:54:49 -04:00 |
|
Joseph Doherty
|
b41b3b1b31
|
fix(esg): honor the declared response charset in ReadBodyBoundedAsync with UTF-8 fallback (plan R2-06 T4)
|
2026-07-13 09:53:00 -04:00 |
|
Joseph Doherty
|
1cc05f132f
|
feat(siteruntime): bounded process-wide compiled-script cache, keyed on code hash + globals type (plan R2-03 T5)
|
2026-07-13 09:52:53 -04:00 |
|
Joseph Doherty
|
f3bec6922a
|
fix(siteruntime): eagerly validate TagSubscribeRetryIntervalMs + StuckScriptGraceMs at boot (plan R2-03 T4)
|
2026-07-13 09:51:37 -04:00 |
|
Joseph Doherty
|
cc94b3a68c
|
fix(esg): park buffered calls that fail deterministically with ArgumentException (path template/verb) instead of retrying to exhaustion (plan R2-06 T3)
|
2026-07-13 09:51:30 -04:00 |
|
Joseph Doherty
|
26dce8b69f
|
fix(comm): heartbeat IsActive uses the shared oldest-Up predicate; Host wires one delegate everywhere (plan R2-02 T4)
|
2026-07-13 09:50:44 -04:00 |
|
Joseph Doherty
|
15018e4158
|
fix(siteruntime): faulted expression-eval task clears _evalInFlight instead of killing the AlarmActor trigger (plan R2-03 T3)
|
2026-07-13 09:50:40 -04:00 |
|
Joseph Doherty
|
ab77094a26
|
fix(transport): script-artifact change publisher covers Add resolutions — delete-then-reimport no longer starves non-self-healing subscribers (plan R2-05 T5)
|
2026-07-13 09:50:32 -04:00 |
|
Joseph Doherty
|
9668600c38
|
docs(inbound): correct bus-consumer claims in tracker + invalidation-contract doc + CLAUDE.md (plan R2-06 T2)
|
2026-07-13 09:49:53 -04:00 |
|
Joseph Doherty
|
db0285e2de
|
fix(inbound): wire the compiled-handler cache as the IScriptArtifactChangeBus ApiMethod consumer (plan R2-06 T1)
|
2026-07-13 09:48:48 -04:00 |
|
Joseph Doherty
|
f149626a76
|
fix(siteruntime): faulted expression-eval task clears _evalInFlight instead of killing the ScriptActor trigger (plan R2-03 T2)
|
2026-07-13 09:48:46 -04:00 |
|
Joseph Doherty
|
31fa5eafa4
|
perf(template-engine): read-only staleness/comparison paths skip Expression-trigger compiles — deploy gate remains the authoritative check (plan R2-05 T4)
|
2026-07-13 09:48:40 -04:00 |
|
Joseph Doherty
|
3a5b885a44
|
fix(saf): resync authority uses the shared oldest-Up predicate + delivery-gate delegate; apply-time re-check guard (plan R2-02 T3)
|
2026-07-13 09:48:37 -04:00 |
|
Joseph Doherty
|
d233ecbe8f
|
perf(template-engine): cache Expression-trigger compile verdicts under the trigger-surface key — unchanged expressions compile once per process (plan R2-05 T3)
|
2026-07-13 09:46:36 -04:00 |
|
Joseph Doherty
|
6e0fa21307
|
test(saf): failing two-node repro — leader-vs-oldest resync divergence wipes delivering node buffer (plan R2-02 T2)
|
2026-07-13 09:46:16 -04:00 |
|
Joseph Doherty
|
06d79f6516
|
fix(template-engine): verdict-cache key gains the globals-surface discriminator — cross-surface verdict reuse structurally impossible (plan R2-05 T2)
|
2026-07-13 09:45:54 -04:00 |
|
Joseph Doherty
|
f25812fc7c
|
fix(dcl): stale MxGateway event-loop fault on a cancelled token no longer flaps the fresh connection (plan R2-03 T1)
|
2026-07-13 09:45:20 -04:00 |
|
Joseph Doherty
|
5573a9eeb9
|
fix(template-engine): trigger-expression syntax check reports ALL violations/compile errors, not just the first (plan R2-05 T1)
|
2026-07-13 09:45:04 -04:00 |
|
Joseph Doherty
|
a1c7c4ef26
|
feat(kpi): GetLatestRollupHourAsync watermark seam for the backfill fast-path (plan R2-04 T2)
|
2026-07-13 09:44:57 -04:00 |
|
Joseph Doherty
|
91209070d0
|
fix(comm): shared oldest-Up ActiveNodeEvaluator in Communication; Host evaluator delegates (plan R2-02 T1)
|
2026-07-13 09:43:22 -04:00 |
|
Joseph Doherty
|
90cdb6e51a
|
chore(hygiene): root secret-capture guards — .gitignore patterns + opt-in pre-commit secret scan (plan R2-08 T3)
|
2026-07-13 09:42:49 -04:00 |
|
Joseph Doherty
|
29c1286943
|
fix(kpi): untracked projected fold fetch — fold reads no longer flood the change tracker (plan R2-04 T1)
|
2026-07-13 09:42:31 -04:00 |
|