Joseph Doherty
3ad5ad0d7e
merge(r2): r2-plan03
2026-07-13 11:08:27 -04:00
Joseph Doherty
774e3918db
merge(r2): PLAN-R2-07 UI/Management/Security
2026-07-13 11:08:10 -04:00
Joseph Doherty
b7f5470666
merge(r2): PLAN-R2-01 Cluster/Host/Failover
2026-07-13 11:08:10 -04:00
Joseph Doherty
9b8ce0f51e
merge(r2): PLAN-R2-02 Communication & S&F (Critical N1)
2026-07-13 11:08:10 -04:00
Joseph Doherty
2751a6dba9
test(management): freeze scrubber fragment coverage over DataConnection config types + document array-merge limit (plan R2-07 T12)
2026-07-13 11:05:19 -04:00
Joseph Doherty
1b88ca1296
fix(security): amortize LoginThrottle.Prune off the failed-bind hot path (plan R2-07 T11)
2026-07-13 11:03:26 -04:00
Joseph Doherty
5b16429635
fix(sitestream): deathwatch resets live-cache liveness on aggregator termination (plan R2-07 T10)
2026-07-13 11:01:54 -04:00
Joseph Doherty
56d39b5fce
fix(host): site singletons (deployment-manager, event-log-handler) via SingletonRegistrar — PhaseClusterLeave drains for site SQLite writes (plan R2-01 T11)
2026-07-13 11:01:44 -04:00
Joseph Doherty
76ef97f729
fix(ui): disposal guard on Alarm Summary live callback, matching the DebugView pattern (plan R2-07 T9)
2026-07-13 10:58:50 -04:00
Joseph Doherty
925c869826
fix(ui): Alarm Summary poll defers row rebuilds to the live path while IsLive (plan R2-07 T8)
2026-07-13 10:57:09 -04:00
Joseph Doherty
d33337a834
fix(ui): drop stale-site poll results on Alarm Summary site switch (plan R2-07 T7)
2026-07-13 10:55:25 -04:00
Joseph Doherty
1fcfa4fb16
fix(security): scope-filter secured-write listing + align spec with enforced site scoping (plan R2-07 T6)
2026-07-13 10:53:16 -04:00
Joseph Doherty
80e5b36852
refactor(host): CentralSingletonRegistrar -> SingletonRegistrar with optional role scope — unblocks site-singleton drains (plan R2-01 T10)
2026-07-13 10:49:49 -04:00
Joseph Doherty
92936747b7
fix(security): additive permitted-sites filter on secured-write query/count (plan R2-07 T5)
2026-07-13 10:48:45 -04:00
Joseph Doherty
c2707fdcf8
docs(health): CentralHealthReportLoop comments say oldest-member, not cluster leader — stop re-teaching the S2 conflation (plan R2-01 T9)
2026-07-13 10:46:18 -04:00
Joseph Doherty
9b9222d223
fix(security): enforce LDAP-mapping site scope on secured-write submit/approve/reject (plan R2-07 T4)
2026-07-13 10:46:08 -04:00
Joseph Doherty
11efe4be05
fix(health): flag metrics-stale for never-reported sites via FirstSeenAt anchor — null LastReportReceivedAt no longer skips the check (plan R2-01 T8)
2026-07-13 10:45:22 -04:00
Joseph Doherty
e4765b2eed
docs(tracker): correct the wonder-app-vd03 deferral record — artifact is present (gitignored); overlay edits applied on-disk by R2-01 T5/T6 (plan R2-01 T7)
2026-07-13 10:42:38 -04:00
Joseph Doherty
24c2097ec3
fix(security): ship trusted-proxy ForwardedHeaders config for Traefik topologies + document lockout-DoS trade-off (plan R2-07 T3)
2026-07-13 10:42:37 -04:00
Joseph Doherty
b532a1e30e
fix(security): trusted-proxy ForwardedHeaders so LoginThrottle keys on the real client IP (plan R2-07 T2)
2026-07-13 10:38:41 -04:00
Joseph Doherty
65e0f770d1
test(failover): unskip FailoverTimingTests on the two-node rig at production timings — measured 33.7s vs ~25s design envelope (plan R2-01 T4; covers report-08 NF2)
2026-07-13 10:38:19 -04:00
Joseph Doherty
e1a692016e
fix(security): throttle DebugStreamHub LDAP bind via ManagementAuthenticator + correct coverage doc (plan R2-07 T1)
2026-07-13 10:36:32 -04:00
Joseph Doherty
30356803e7
docs(docker): mark failover-drill results table PENDING — live drill run (plan R2-01 T3) deferred to avoid disrupting the running docker cluster
2026-07-13 10:34:24 -04:00
Joseph Doherty
d536450611
docs(cluster): per-direction failover truth — first-seed bootstrap constraint + operator recovery actions; drop the undeliverable ~25s active-crash promise (plan R2-01 T2)
2026-07-13 10:33:56 -04:00
Joseph Doherty
badc97afe8
fix(docker): failover drill kills the STANDBY by default; active mode measures the registered keep-oldest outage instead of pretending recovery (plan R2-01 T1)
2026-07-13 10:32:54 -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
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
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
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
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
cc4ff7029d
chore(saf): eagerly validate SweepBatchLimit/SweepTargetParallelism (plan R2-02 T9)
2026-07-13 10:10:34 -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
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
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
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
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
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
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
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
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
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
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
1429ddaa0e
docs(plans): add MES alarm-status API draft plan (2026-06-30)
...
Ports the legacy WWSupport/APIServer MES alarm-status endpoints onto the
Inbound API, mirroring the MesMoveIn/MesMoveOut pattern; draft for review,
not yet executed. Committed ahead of PLAN-R2-08 T13's hygiene pass.
2026-07-13 01:45:50 -04:00
Joseph Doherty
5bbd7689fa
docs(archreview): round-2 re-review (2026-07-12) + 8 fix plans (86 tasks)
...
Re-ran all 8 domain reviews at HEAD 8c888f13 against the b910f5eb baseline:
every round-1 finding source-verified (168 fixed, 0 regressions, 0 false
claims); 56 new findings (1 Critical / 4 High / 15 Medium / 36 Low),
concentrated in post-baseline code (anti-entropy resync, KPI rollup
backfill, live alarm stream) and seams the fixes exposed.
Headliners: S&F resync predicate inversion can wipe the delivering node's
buffer (02-N1 Critical); resync snapshot exceeds the Akka remoting frame
size (02-N2); failover drill kills the one node keep-oldest can't survive
(01-N1); unbounded rollup backfill per failover (04-R1); live production
API key in untracked test.txt (08-NF1).
Adds PLAN-R2-01..08 + .tasks.json manifests and the Round-2 board,
P0 list, cross-plan mutexes, and wave order in 00-MASTER-TRACKER.
2026-07-12 23:52:10 -04:00
Joseph Doherty
8c888f13a0
merge(deferred-10): aggregated live alarm stream for Alarm Summary
...
Merges plan #10 (feat/live-alarm-stream) into main alongside plan #22 .
Claude-Session: https://claude.ai/code/session_01MtdgwpEeCUn6cUA5f1LMPj
2026-07-10 13:01:04 -04:00