docs(code-review): re-review 17 changed modules at 1f9de8a2 — 8 new findings

Re-reviewed the modules whose source changed since the last review baseline
(full-review remediation fd618cf1 + InboundAPI Database-helper fixes b3c90143),
focused on whether the fixes are sound and regression-free. 9 of 17 modules
clean; 8 new findings (0 Critical, 0 High, 4 Medium, 4 Low), all code-verified
by the orchestrator before recording:

- DataConnectionLayer-029 (Med): DCL-023's unsubscribe-clears-in-flight reopens a
  double-subscribe window that leaks an orphaned alarm feed; the alarm completion
  handler overwrites the subscription id without the tag-path guard at line 908.
- InboundAPI-031 (Med): WaitForAttribute's 5s grace backstop is tighter than the
  CommunicationService Ask's timeout+IntegrationTimeout (30s) round-trip slack, so
  a slow-but-valid timed-out 'false' arriving in the 5-30s window is cancelled into
  an unhandled OperationCanceledException/500 (contradicts spec 6 + its own comment).
- SiteRuntime-032 (Med): SiteRuntime-029's wasPresent guard skips the deployed-count
  decrement when deleting a DISABLED instance (absent from both maps), drifting the
  health-dashboard tally; self-heals on singleton restart (observational, hence Med).
- StoreAndForward-028 (Med): StoreAndForward-025 resets the register-guard but not
  _bufferedCount, so a same-instance Stop->Start re-seeds the depth gauge to ~2N.
- AuditLog-017, CentralUI-037, ScriptAnalysis-009, SiteRuntime-033 (Low): a
  test-coverage gap plus stale doc-comments/spec following the remediation.

Header commit/date bumped to 1f9de8a2 / 2026-06-24 on all 17 modules; README
regenerated (8 pending / 576 total).
This commit is contained in:
Joseph Doherty
2026-06-24 09:20:03 -04:00
parent 1f9de8a2b5
commit c42bb48585
18 changed files with 635 additions and 66 deletions
+34 -24
View File
@@ -41,38 +41,38 @@ module file and counted in **Total**.
|----------|---------------|
| Critical | 0 |
| High | 0 |
| Medium | 0 |
| Low | 0 |
| **Total** | **0** |
| Medium | 4 |
| Low | 4 |
| **Total** | **8** |
## Module Status
| Module | Last reviewed | Commit | Open (C/H/M/L) | Open | Total |
|--------|---------------|--------|----------------|------|-------|
| [AuditLog](AuditLog/findings.md) | 2026-06-20 | `4307c381` | 0/0/0/0 | 0 | 16 |
| [AuditLog](AuditLog/findings.md) | 2026-06-24 | `1f9de8a2` | 0/0/0/1 | 1 | 17 |
| [CLI](CLI/findings.md) | 2026-06-19 | `d6ead8ae` | 0/0/0/0 | 0 | 24 |
| [CentralUI](CentralUI/findings.md) | 2026-06-19 | `d6ead8ae` | 0/0/0/0 | 0 | 36 |
| [CentralUI](CentralUI/findings.md) | 2026-06-24 | `1f9de8a2` | 0/0/0/1 | 1 | 37 |
| [ClusterInfrastructure](ClusterInfrastructure/findings.md) | 2026-06-20 | `4307c381` | 0/0/0/0 | 0 | 15 |
| [Commons](Commons/findings.md) | 2026-06-19 | `d6ead8ae` | 0/0/0/0 | 0 | 26 |
| [Commons](Commons/findings.md) | 2026-06-24 | `1f9de8a2` | 0/0/0/0 | 0 | 26 |
| [Communication](Communication/findings.md) | 2026-06-20 | `4307c381` | 0/0/0/0 | 0 | 24 |
| [ConfigurationDatabase](ConfigurationDatabase/findings.md) | 2026-06-19 | `d6ead8ae` | 0/0/0/0 | 0 | 27 |
| [DataConnectionLayer](DataConnectionLayer/findings.md) | 2026-06-20 | `4307c381` | 0/0/0/0 | 0 | 26 |
| [DeploymentManager](DeploymentManager/findings.md) | 2026-06-20 | `4307c381` | 0/0/0/0 | 0 | 27 |
| [ExternalSystemGateway](ExternalSystemGateway/findings.md) | 2026-06-20 | `4307c381` | 0/0/0/0 | 0 | 26 |
| [ConfigurationDatabase](ConfigurationDatabase/findings.md) | 2026-06-24 | `1f9de8a2` | 0/0/0/0 | 0 | 27 |
| [DataConnectionLayer](DataConnectionLayer/findings.md) | 2026-06-24 | `1f9de8a2` | 0/0/1/0 | 1 | 27 |
| [DeploymentManager](DeploymentManager/findings.md) | 2026-06-24 | `1f9de8a2` | 0/0/0/0 | 0 | 27 |
| [ExternalSystemGateway](ExternalSystemGateway/findings.md) | 2026-06-24 | `1f9de8a2` | 0/0/0/0 | 0 | 26 |
| [HealthMonitoring](HealthMonitoring/findings.md) | 2026-06-20 | `4307c381` | 0/0/0/0 | 0 | 25 |
| [Host](Host/findings.md) | 2026-06-20 | `4307c381` | 0/0/0/0 | 0 | 26 |
| [InboundAPI](InboundAPI/findings.md) | 2026-06-20 | `4307c381` | 0/0/0/0 | 0 | 30 |
| [KpiHistory](KpiHistory/findings.md) | 2026-06-20 | `4307c381` | 0/0/0/0 | 0 | 6 |
| [ManagementService](ManagementService/findings.md) | 2026-06-19 | `d6ead8ae` | 0/0/0/0 | 0 | 26 |
| [Host](Host/findings.md) | 2026-06-24 | `1f9de8a2` | 0/0/0/0 | 0 | 26 |
| [InboundAPI](InboundAPI/findings.md) | 2026-06-24 | `1f9de8a2` | 0/0/1/0 | 1 | 31 |
| [KpiHistory](KpiHistory/findings.md) | 2026-06-24 | `1f9de8a2` | 0/0/0/0 | 0 | 6 |
| [ManagementService](ManagementService/findings.md) | 2026-06-24 | `1f9de8a2` | 0/0/0/0 | 0 | 26 |
| [NotificationOutbox](NotificationOutbox/findings.md) | 2026-06-19 | `d6ead8ae` | 0/0/0/0 | 0 | 13 |
| [NotificationService](NotificationService/findings.md) | 2026-06-20 | `4307c381` | 0/0/0/0 | 0 | 28 |
| [ScriptAnalysis](ScriptAnalysis/findings.md) | 2026-06-20 | `4307c381` | 0/0/0/0 | 0 | 8 |
| [ScriptAnalysis](ScriptAnalysis/findings.md) | 2026-06-24 | `1f9de8a2` | 0/0/0/1 | 1 | 9 |
| [Security](Security/findings.md) | 2026-06-20 | `4307c381` | 0/0/0/0 | 0 | 25 |
| [SiteCallAudit](SiteCallAudit/findings.md) | 2026-06-20 | `4307c381` | 0/0/0/0 | 0 | 9 |
| [SiteEventLogging](SiteEventLogging/findings.md) | 2026-06-20 | `4307c381` | 0/0/0/0 | 0 | 27 |
| [SiteRuntime](SiteRuntime/findings.md) | 2026-06-20 | `4307c381` | 0/0/0/0 | 0 | 31 |
| [StoreAndForward](StoreAndForward/findings.md) | 2026-06-20 | `4307c381` | 0/0/0/0 | 0 | 27 |
| [TemplateEngine](TemplateEngine/findings.md) | 2026-06-20 | `4307c381` | 0/0/0/0 | 0 | 25 |
| [SiteCallAudit](SiteCallAudit/findings.md) | 2026-06-24 | `1f9de8a2` | 0/0/0/0 | 0 | 9 |
| [SiteEventLogging](SiteEventLogging/findings.md) | 2026-06-24 | `1f9de8a2` | 0/0/0/0 | 0 | 27 |
| [SiteRuntime](SiteRuntime/findings.md) | 2026-06-24 | `1f9de8a2` | 0/0/1/1 | 2 | 33 |
| [StoreAndForward](StoreAndForward/findings.md) | 2026-06-24 | `1f9de8a2` | 0/0/1/0 | 1 | 28 |
| [TemplateEngine](TemplateEngine/findings.md) | 2026-06-24 | `1f9de8a2` | 0/0/0/0 | 0 | 25 |
| [Transport](Transport/findings.md) | 2026-06-19 | `d6ead8ae` | 0/0/0/0 | 0 | 15 |
## Pending Findings
@@ -90,10 +90,20 @@ _None open._
_None open._
### Medium (0)
### Medium (4)
_None open._
| ID | Module | Title |
|----|--------|-------|
| DataConnectionLayer-029 | [DataConnectionLayer](DataConnectionLayer/findings.md) | Resubscribe during orphaned in-flight subscribe leaks an alarm feed |
| InboundAPI-031 | [InboundAPI](InboundAPI/findings.md) | Wait grace backstop tighter than the layer's round-trip slack |
| SiteRuntime-032 | [SiteRuntime](SiteRuntime/findings.md) | Deleting a disabled instance leaks the deployed count |
| StoreAndForward-028 | [StoreAndForward](StoreAndForward/findings.md) | StopAsync resets register-guard but not _bufferedCount, double-counting gauge on restart |
### Low (0)
### Low (4)
_None open._
| ID | Module | Title |
|----|--------|-------|
| AuditLog-017 | [AuditLog](AuditLog/findings.md) | AuditLog-014 guard path not exercised by a test |
| CentralUI-037 | [CentralUI](CentralUI/findings.md) | RunInSandboxAsync doc comment omits new Database-throws behavior |
| ScriptAnalysis-009 | [ScriptAnalysis](ScriptAnalysis/findings.md) | Inline Pass 1 comment no longer reflects parameterized base references |
| SiteRuntime-033 | [SiteRuntime](SiteRuntime/findings.md) | Native-alarm doc stale re: per-condition eviction and cap return-to-normal |