Pulse/internal/ai/eval
rcourtman 0f938f8e9b Cover eval scenario catalog, control-plane printers and pure helpers
Adds branch-coverage tests for eight packages whose target functions were
measured at 0% before this change. Every named target was verified to move
by running each package's coverage with and without the new file.

- internal/ai/eval: all 36 Scenario constructors and the four PatrolScenario
  constructors 0% -> 100%. These are catalog-invariant tests, not literal
  echoes: unique names, populated required fields, runnable assertions, tool
  references checked against the agentcapabilities registry, and exact
  assertion-count deltas across the env-gated conditional appends. A parity
  test scans scenarios.go itself, so adding a constructor without registering
  it in the table now fails rather than silently going untested.
- cmd/pulse-control-plane: nine MSP and tenant-runtime print helpers
  0% -> 100%, covering the nil, empty-slice and optional-field arms.
- internal/ai/memory: RemediationLog GetByID, MarkRolledBack and
  GetRollbackable 0% -> 100%, pinning the overwrite-vs-preserve contract on
  RollbackInfo and each falsy arm of the rollbackable predicate.
- internal/alerts/config: AlertConfig.UnmarshalJSON 0% -> 90% and
  NormalizeAlertConfigAliases 52.9% -> 94.1%.
- internal/config: RunMigrationIfNeeded 0% -> 100%, copyFile 0% -> 88.9%.
- internal/mock: AvailabilityFixtures, FixtureGraph.SupplementalChanges and
  generateMockHostRate 0% -> 100%.
- internal/api: testProxmoxPlatformConnection 0% -> 100% through its injected
  connect func, so no network is involved.
- internal/servicediscovery: needsDeepScan 0% -> 100% across every return arm
  including the confidence boundary.

No source file is modified. Adversarial review found no rejects; two findings
were acted on before committing, replacing a circular catalog-count assertion
with the real source-parity scan and reducing an AllPatrolScenarios test that
compared the function against the same constructors it calls to the ordering
and completeness signal that is actually independent.

PULSE_ALLOW_CONTRACT_NEUTRAL_COMMIT=test-only branch coverage, no source or contract change

Contract-Neutral: test-only branch coverage, no source or contract change
2026-07-23 16:42:08 +01:00
..
assertions.go backend and governance: MCP contract, agent capabilities, API, and release-control 2026-06-23 17:26:15 +01:00
assertions_additional_test.go Fix resource-context Assistant tool targeting 2026-06-04 19:18:08 +01:00
branchcov0723pm_test.go Cover eval scenario catalog, control-plane printers and pure helpers 2026-07-23 16:42:08 +01:00
eval.go Add resource-context Assistant eval 2026-06-04 18:44:47 +01:00
eval_test.go feat(eval): add patrol-specific eval scenarios and assertions 2026-01-28 23:19:11 +00:00
network_error_test.go fix(test): remove flaky content type test in eval 2026-02-02 19:26:24 +00:00
patrol.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
patrol_additional_test.go test(ai): improve eval package coverage to 40% 2026-02-02 19:09:13 +00:00
patrol_assertions.go Require grounded actionable Patrol findings 2026-07-15 18:44:33 +01:00
patrol_assertions_branchcov0723am_test.go Cover control plane status helpers, patrol assertions and setup classifiers 2026-07-23 06:34:03 +01:00
patrol_assertions_test.go Require grounded actionable Patrol findings 2026-07-15 18:44:33 +01:00
patrol_override_test.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
patrol_quality.go feat(patrol): implement patrol findings, evaluation, and investigation logic 2026-01-31 16:23:08 +00:00
patrol_quality_test.go test(ai): add patrol quality logic tests, coverage now 42.5% 2026-02-02 19:10:45 +00:00
patrol_scenario_test.go test(ai): comprehensive eval coverage (~71%) including scenarios, overrides, and error cases 2026-02-02 19:18:19 +00:00
patrol_scenarios.go feat(patrol): implement patrol findings, evaluation, and investigation logic 2026-01-31 16:23:08 +00:00
print_helpers_test.go test(ai): comprehensive eval coverage (~71%) including scenarios, overrides, and error cases 2026-02-02 19:18:19 +00:00
runner_additional_test.go Make Assistant tool choice model-owned 2026-05-15 11:27:15 +01:00
runner_test.go Make Assistant tool choice model-owned 2026-05-15 11:27:15 +01:00
scenario_test.go Add discovery readiness to Assistant context 2026-06-04 21:56:36 +01:00
scenarios.go Add discovery readiness to Assistant context 2026-06-04 21:56:36 +01:00