Pulse/pkg/securityutil
rcourtman c035c5b514 Cover the missing arms of the SSRF, clone and classifier guards
A second pass targeting PARTIALLY covered functions rather than untouched
ones, so every case here is an arm the existing suites never reached.
Percentages are per-function coverage, measured before and after.

- pkg/securityutil: the SSRF guards, which is where the uncovered arms
  actually matter. isCarrierGradeNATIPv4 and isLocalNetworkIP are pinned at
  the first and last address of 100.64.0.0/10 and just outside both ends,
  across loopback, link-local, every RFC1918 range and IPv6 unique-local.
  joinURLPath, IsLocalNetworkHost, resolveOutboundIPAddrs and
  cloneRestrictedTransport to 100 percent, resolvePermittedOutboundIPs to
  96.8, with the transport clone asserted independent of its source.
- internal/models: eleven deep-copy helpers from as low as 25 percent to 100.
  Every one asserts real independence, mutating each nested slice, map and
  pointer field of the clone and checking the original is untouched, which is
  the failure mode a deep-copy helper actually has.
- internal/alerts: metricClearThreshold 28.6 to 100, resourceTypeLabel and
  alertspecsMetricTriggered 50 to 100, the four canonical spec-id and
  tracking-key builders 66.7 to 100, inferCanonicalKindFromLegacyAlert to 100,
  and the backup-snapshot and ack-identity predicates.
- internal/servicediscovery: the four fingerprint generators to 100, each
  asserted for both stability and sensitivity; the three command builders and
  ValidateResourceID on their exact output and each rejection reason.
- internal/storagehealth: zfsScanActive and firstNonEmpty.

cephClusterSourceRank is deliberately left at 75 percent: its default arm is
unreachable because normalizeCephClusterSource can only return the two cases
above it. That is recorded rather than faked.

No source file is modified. Adversarial review returned no rejects and flagged
nine re-hit subtests; all nine were removed and every target function
re-measured at an identical percentage, proving they carried nothing.

PULSE_ALLOW_CONTRACT_NEUTRAL_COMMIT=test-only branch coverage, no source or contract change
2026-07-25 00:39:15 +01:00
..
httpurl.go Add an explicit operator override for plaintext HTTP to non-local Pulse hosts 2026-07-14 16:42:02 +01:00
httpurl_branchcov0724pm_test.go Cover the missing arms of the SSRF, clone and classifier guards 2026-07-25 00:39:15 +01:00
httpurl_test.go Add an explicit operator override for plaintext HTTP to non-local Pulse hosts 2026-07-14 16:42:02 +01:00
outbound_branchcov0724pm_test.go Cover the missing arms of the SSRF, clone and classifier guards 2026-07-25 00:39:15 +01:00
outbound_http.go fix(ai): harden local compatible providers 2026-07-24 12:35:31 +01:00
outbound_http_branchcov0718_test.go Add Go branch-coverage tests for twelve pure backend helpers 2026-07-19 15:10:09 +01:00
outbound_http_test.go fix(securityutil): dial every permitted resolved IP instead of pinning the first 2026-07-17 23:35:45 +01:00
pkg_securityutil_httpurl_branchcov0716_test.go Add Go branch-coverage tests for pure config and helper packages 2026-07-16 10:19:51 +01:00
securityutil_websocket_origin_branchcov0716_test.go Add Go branch-coverage tests for models config securityutil and aicontracts helpers 2026-07-16 14:20:13 +01:00
websocket_origin.go Allow insecure dev HTTP agent runtime URLs 2026-04-23 13:48:54 +01:00