99da32d635
fix(communication): P3-4 open-attempt deadline + P3-5 duplicate-subscribe cap order
Joseph Doherty
2026-08-19 16:18:53 -04:00
6823e7e3fa
fix(dcl): P2-5 seed probe-resolved tags; P2-6 close the Connecting/Reconnecting AdapterDisconnected gap
Joseph Doherty
2026-08-19 16:24:30 -04:00
b68f553f1e
fix(host): h2 keepalive on site gRPC listener (arch-review 2026-08-19 P4-3)
Joseph Doherty
2026-08-19 14:49:37 -04:00
e63ffd90ee
fix(siteruntime): stamp the ensure-started heal with the store-write generation + order the redeploy override reset ahead of the successor (arch-review 2026-08-19 P1-1 + P1-2)
Joseph Doherty
2026-08-19 14:47:34 -04:00
d0a748e632
fix(communication)+fix(siteruntime): carry DetachedScriptThreads/ScriptRunShedCount/SiteStreamAlarmDropCount across the health wire; restore drained counters on failed send (arch-review 2026-08-19 P8-1)
Joseph Doherty
2026-08-19 14:47:04 -04:00
eca0ab768d
fix(auditlog)+fix(configdb): budget the ingest fallback loop; index + varchar-type the SiteCalls list query (arch-review 2026-08-19 P5-1 + P5-2)
Joseph Doherty
2026-08-19 14:44:44 -04:00
6c11362d9f
fix(auditlog)+fix(siteeventlog): complete audit write tasks only after commit; run event-log retention on standby (arch-review 2026-08-19 P4-2 + P4-4)
Joseph Doherty
2026-08-19 14:44:37 -04:00
26ab6f8f09
fix(dcl): generation-fence ConnectResult + roll back failed OPC UA subscribe batches (arch-review 2026-08-19 P2-3 + P2-4)
Joseph Doherty
2026-08-19 14:40:56 -04:00
d18f344e66
docs(plans): remediation plan for the four 2026-08-19 arch-review High findings (P2-1, P2-2, P6-1, P6-2) — all four executed in this session
Joseph Doherty
2026-08-19 14:01:23 -04:00
042e2efd1d
fix(centralui): enforce site scoping on AlarmSummary — filter site list + deny out-of-scope alarm fetches, mirroring DebugView (arch-review 2026-08-19 P6-2 High)
Joseph Doherty
2026-08-19 13:45:12 -04:00
61a14bccab
fix(management): CAS-guard secured-write reject (WHERE Status='Pending') so reject can never falsify an executed two-person write (arch-review 2026-08-19 P6-1 High)
Joseph Doherty
2026-08-19 13:46:59 -04:00
59468399db
fix(dcl): reset MxGateway alarm-stream state on reconnect so the native-alarm feed resumes (arch-review 2026-08-19 P2-2 High)
Joseph Doherty
2026-08-19 13:45:25 -04:00
c4d3c8b875
fix(dcl): carry adapter generation on SubscribeCompleted/AlarmSubscribeCompleted; drop stale completions and release captured-adapter handles (arch-review 2026-08-19 P2-1 High)
Joseph Doherty
2026-08-19 13:54:06 -04:00
e9e44a9ef0
test(loadharness)+docs: wire-path stream probes — R2 batching benchmark-proven at target scale
Joseph Doherty
2026-08-18 10:32:46 -04:00
d3be5f0527
test(communication): close register row 102 — serialize the two gauge-moving classes so the subscribers.active baseline holds
Joseph Doherty
2026-08-18 09:18:43 -04:00
324ba369d9
infra(docker)+test(siteeventlog): close register tripwires 79 + 93 — rig data to named volumes; pin site_events schema to the cap-model calibration
Joseph Doherty
2026-08-18 08:43:52 -04:00
5936573e71
docs(register): close row 38 — OtOpcUa racing-clear test rebuilt on retry-exhaustion assertion cross-session (34829ea0, 837d8a17)
Joseph Doherty
2026-08-18 08:08:17 -04:00
505f356916
merge(agent): whole-snapshot staleness guard — generalize row 101's definitions generation to one _storeWriteGeneration over both tables, bumped at BOTH ends of every actor-thread config mutation (dispatch + completion; ApplyDeployment/Disable/Delete advance actor state before the write, so completion-only left a window); stale sweep discarded whole (closes the proven backward-restart and delete-resurrection hazards), stale boot load re-dispatched with a capped fallback; CDC/reconciliation writes deliberately never bump — discovering them is the sweep's purpose
Joseph Doherty
2026-08-18 05:38:52 -04:00
f02e116688
fix(siteruntime): extend the row-101 stale-snapshot guard to the instance-config half
Joseph Doherty
2026-08-18 05:38:00 -04:00
4da5f7cd7a
docs(register): close row 101 — stale-snapshot race verified real (worse than guessed: spurious removal is NOT self-healing), definitions-write generation guard shipped in 0d3a90a9
Joseph Doherty
2026-08-17 07:04:40 -04:00
0d3a90a9fd
fix(siteruntime): guard the DCL arbitration overlay against stale store snapshots — register row 101
Joseph Doherty
2026-08-17 07:03:26 -04:00
8c500d8170
test(sitecallaudit): await the upsert assertions in SingleTimestampSaturation — gating on CallCount alone races the async repo write under parallel suite load (one full-suite failure observed 2026-08-17; 3/3 green in isolation; row-95 fingerprint)
Joseph Doherty
2026-08-17 06:40:33 -04:00
16056f8eb6
fix(management): ParseDeploymentStatus rejects ordinals — Enum.TryParse accepts "2" as InProgress despite the row-88 names-only contract; same LooksNumeric guard as the audit strict parser (found by the Wave 6 rows-98/99 agent survey)
Joseph Doherty
2026-08-17 06:21:12 -04:00
8a9a8d2951
merge(agent-c): row 100 — SiteScriptCompileCache becomes an instance-scoped sealed class owned by the ScriptCompilationService DI singleton (zero production Clear() callers existed, so Clear() is deleted outright); row-91 serialized collection relaxed and delta assertions restored to exact counts; new registration test pins the load-bearing singleton lifetime
Joseph Doherty
2026-08-17 06:20:17 -04:00
152ec85e92
merge(agent-b): rows 98/99 — site-scope gate fail-closed on unresolvable targets (5 sites, not 2: the inline GetInstance/GetSite/GetDataConnection shapes were an id-enumeration oracle; all route through DenyUnresolvedTargetIfScoped, denial indistinguishable from out-of-scope); CLI audit query/export drop 7 case-sensitive AcceptOnlyFromAmong gates for help-text values + a new strict server-side ParseEnumListStrict (no silent drop, no ordinals)
Joseph Doherty
2026-08-17 06:20:14 -04:00
9dbda4a2f2
merge(agent-a): row 97 — live DCL connections reconfigure in place: ReconfigureConnectionCommand handled in all three DataConnectionActor states via a shared SwapAdapter (also unifies both failover swap sites), endpoint selection re-armed to Primary and unstable-disconnect accounting suppressed; EnsureDclConnection's change edge now sends the reconfigure instead of a dead-end Warning
Joseph Doherty
2026-08-17 06:20:09 -04:00
7c1268d85c
feat(dcl+siteruntime): reconfigure a LIVE data connection in place — register row 97
Joseph Doherty
2026-08-17 06:19:13 -04:00
f33f25a10b
fix(auth+cli): fail-closed site-scope gate (row 98); case-insensitive audit filter values with a strict server-side check (row 99)
Joseph Doherty
2026-08-17 06:05:29 -04:00
84b405ff5f
refactor(siteruntime): scope SiteScriptCompileCache to the ScriptCompilationService singleton — close register row 100
Joseph Doherty
2026-08-17 06:03:58 -04:00
106e467dfd
merge(agent-c): rows 91/95/96 — compile-cache tests on key-scoped delta assertions; Watch/Stop/ExpectTerminated at all 23 fast-tick actor creation sites in the three remaining AuditLog.Tests classes; per-suite xunit maxParallelThreads:4 for the four MSSQL-fixture suites (matches the row-82 semaphore slots) + Test Parallelism Policy doc
Joseph Doherty
2026-08-17 05:28:51 -04:00
ad0100f2f9
merge(agent-a): rows 37/86/87/88 — deployment reads consolidated on QueryDeploymentListPageAsync (QueryDeploymentSummariesAsync deleted); SiteScopeService honors the Administrator system-wide rule (claims no longer scope admins — the documented ManagementActor semantic now holds on both surfaces); site scope rides the query join (whole-table instance read gone), PageSize bounded (default 50, cap 1000); unparseable --status fails loudly naming valid values
Joseph Doherty
2026-08-17 05:28:51 -04:00
6cfb6a7970
merge(agent-b): rows 89/90 — data_connection_definitions overlay as DCL arbitration source (definitions win where present, flattened snapshot otherwise; ping-pong killed by winning-config hashing; tombstoned removals survive instance starts; premise corrected — standby DCL is empty, loss was create-time on any restart/failover)
Joseph Doherty
2026-08-17 05:28:43 -04:00
d2d4db492b
test(infra): close register row 96 — per-suite xunit parallelism caps for the resource-heavy suites
Joseph Doherty
2026-08-17 05:27:52 -04:00
34a8079d15
test(auditlog): close register row 95 — stop the three remaining leaked fast-tick actors
Joseph Doherty
2026-08-17 05:27:37 -04:00
26e3a1b9a6
test(siteruntime): close register row 91 — compile-cache asserts become key-scoped deltas
Joseph Doherty
2026-08-17 05:27:22 -04:00
c57e74e660
fix(siteruntime): arbitrate DCL connection config — definitions store wins (rows 89 + 90)
Joseph Doherty
2026-08-17 05:22:42 -04:00
9f67147e7b
refactor(deployments): one paged read of DeploymentRecords + close its three drifts
Joseph Doherty
2026-08-17 05:15:18 -04:00
15e5887b52
docs(register): row-85 live-probe evidence (Created DCL connection fired alongside the sweep self-heal in the original failure sequence — no second restart, all tags Good); row-96 evidence from the close-out run (Playwright drill-in nav timeout under parallel load, green isolated)
Joseph Doherty
2026-08-17 04:33:33 -04:00
2b1e220f7c
docs(register): close row 82 (cross-process create+migrate semaphore on sp_getapplock + honest timeouts + deterministic actor stops; premise corrected — per-run DB names already existed); add rows 95-96 (systemic leaked-tick-actor pattern in three more classes, uncapped xunit parallelism policy)
Joseph Doherty
2026-08-17 04:10:14 -04:00
75195fc512
merge(agent-c): row 82 — cross-process create+migrate throttle (sp_getapplock counting semaphore), honest command timeouts, deterministic actor stops in the two leaking AuditLog test classes
Joseph Doherty
2026-08-17 04:09:36 -04:00
da23f2dcae
test(mssql): close register row 82 — throttle cross-process create+migrate, stop leaked test actors
Joseph Doherty
2026-08-17 04:08:45 -04:00
71c7ed91c5
docs(register): close rows 81 (cap scoped to site_events via sampled page-layout model — dbstat proven unavailable and pinned) and 84 (backlog note once per tick); add rows 92-94 (mid-history width blindness, schema-calibrated constants, dbstat tripwire semantics)
Joseph Doherty
2026-08-17 04:00:02 -04:00
5162408a9f
merge(agent-b): rows 81+84 — storage cap now measures site_events' own footprint (sampled page-layout model; dbstat probed unavailable and pinned); backlog note once per tick
Joseph Doherty
2026-08-17 03:59:21 -04:00
ddb3c32e06
fix(siteeventlog): scope the storage cap to site_events' own pages (register rows 81, 84)
Joseph Doherty
2026-08-17 03:58:41 -04:00
817a72108e
docs(register): close rows 85 (premise corrected — ensure moved into the CreateInstanceActor funnel; not replication-specific, enable path was a second live instance) and 83 (shared DeploymentManagerStartupProbe gate); add rows 89-91 (connection-only deploy not applied on peer, no peer-deletion removal path, SiteScriptCompileCacheTests absolute-count fragility)
Joseph Doherty
2026-08-17 03:53:36 -04:00
2cae8773bf
merge(agent-a): rows 85+83 — EnsureDclConnections moved into the CreateInstanceActor funnel (self-healed/enabled instances get their DCL connections); ReconcileStartsInstanceTests gated on first instance-count report
Joseph Doherty
2026-08-17 03:52:35 -04:00
524bdbbe90
test(siteruntime): gate ReconcileStartsInstanceTests on the DM's first instance-count report (register row 83)
Joseph Doherty
2026-08-17 03:48:12 -04:00
8f2c2813ea
fix(siteruntime): self-healed and newly-enabled instances now get their DCL connections (register row 85)
Joseph Doherty
2026-08-17 03:48:01 -04:00
92b587d2a1
docs(register): record Low-tail sweep dispositions — close rows 58 (mutation-verified retention pins), 60 (premise corrected: DTOs not EF entities; lazy-loading pin), 65 (trigger fired — prune rides BundleSessionEvictionService); refresh rows 36/37/59/64 with re-verification evidence; add rows 86-88 (CLI/UI deployment scope divergence, CLI unbounded non-transactional scoping, silent --status parse fallback)
Joseph Doherty
2026-08-17 03:44:27 -04:00
2807b5a3ea
fix(transport)+test: close deferred-work register rows 58, 60, 65 (Low-tail sweep)
Joseph Doherty
2026-08-17 03:42:31 -04:00
07220bc655
docs(register): row-78 live-probe evidence (sweep self-heal fired in the original failure sequence); add row 85 — DCL connection actors not spawned for replication-seeded connection configs (row 78 one layer down, found by the probe)
Joseph Doherty
2026-08-16 04:56:15 -04:00
019edf1c46
test(playwright): row-28 follow-through — three dialog flows still expected the old 'Delete' label (SiteCalls Discard, Notification Discard, Instance Disable); labels went explicit in 0db253b5 but these text asserts/filters were missed because that wave's suite run predated the rig redeploy
Joseph Doherty
2026-08-16 04:34:56 -04:00
b6676a89e6
docs(register): close rows 34, 62, 71-78, 80 with evidence; row 79 mitigation chosen (accept + runbook); add rows 81-84 (cap-vs-oplog self-fight, AuditLog MS SQL fixture parallel flake, boot-load test-gating trap, double backlog note)
Joseph Doherty
2026-08-16 04:21:06 -04:00
f46cc19736
Merge rows 78+72: DeploymentManager singleton instance sweep — starts replication-seeded enabled instances and converges stale revisions through the real HandleDeploy path; one repair attempt per (instance, revision)
Joseph Doherty
2026-08-16 04:17:45 -04:00
4d39ad3cd7
Merge rows 80+73+71: nullable LocalDb health fields on unreplicated sites (Host supplies ReplicationIsConfigured), StartupReconcilerActive on the health report (proto field 29) with central No-self-heal badge, standby active-node ERR downgraded via narrowly-keyed Serilog filter
Joseph Doherty
2026-08-16 04:17:40 -04:00
9f418a6aea
Merge row 34: site_events purge burst measured (2.73M-row worst case = 2.7x MaxOplogRows) and paced — shared 250k/tick budget, 5-min catch-up, ceiling-hit counter
Joseph Doherty
2026-08-16 04:17:16 -04:00
98c9458830
test(transport): row 74 — gauge asserts become delta-over-scoped-action, not absolute
Joseph Doherty
2026-08-15 21:16:55 -04:00
3dc38fb674
docs(loadtest+register): close row 29 — 1-hour sustain run settles F1 as not-a-leak (working-set slope -28.89 MB/min, one gen-2 collect, 135M updates at 100.0% nominal); raw metrics JSON archived
Joseph Doherty
2026-08-15 20:27:09 -04:00
e3ca77a234
docs(register+decision): rows 69/70/78/79/80 — site-a LocalDb corruption recovered, auto-down deprecation drill-verified benign (explicit provider-class wins; re-drill on every Akka bump), replication-seeded configs start no actors (row-67 side door), OrbStack virtiofs hazard, non-null localDb health fields on unreplicated sites
Joseph Doherty
2026-08-15 19:26:37 -04:00
caf9f45165
docs(register): close rows 27, 28, 32, 33, 35, 40, 54-57, 61, 63, 66, 67 with evidence; add rows 71-77; record the row-42 seven-script audit result
Joseph Doherty
2026-08-15 18:03:27 -04:00
744ff36a7b
merge: startup reconcile starts the healed InstanceActor (register row 67) — EnsureInstanceStartedCommand to the DM singleton, idempotent, disable-wins, Warning site event on self-heal
Joseph Doherty
2026-08-15 17:56:21 -04:00