Skip to content

Latest commit

 

History

History
41 lines (30 loc) · 1.69 KB

File metadata and controls

41 lines (30 loc) · 1.69 KB

Policy Engine

PolicyEngine dispatches domain events to registered handlers (best-effort, fire-and-forget). Errors are logged (if logger is non-nil) but never propagated — Dispatch() always returns nil.

Location

  • Engine: internal/usecase/policy.go
  • Handlers: internal/usecase/policy_handlers.go
  • Policy definitions: internal/domain/policy.go
  • Registration: internal/usecase/session.goregisterSessionPolicies()

Event → Handler Mapping

Policy Name WHEN [EVENT] THEN [COMMAND] Side Effects
WaveAppliedComposeReport wave.applied ComposeReport Log (Debug) + Metrics
ReportSentDeliverToPhonewave report.sent DeliverViaPhonewave Log (Debug) + Metrics
ScanCompletedGenerateWaves scan.completed GenerateWaves Log (Info) + Desktop Notify + Metrics
WaveCompletedNextGen wave.completed GenerateNextWaves Log (Info) + Desktop Notify + Metrics
SpecificationSentDeliverToPhonewave specification.sent DeliverViaPhonewave Log (Info) + Desktop Notify + Metrics

Event Payload Format

Event Payload Type Fields
scan.completed domain.ScanCompletedPayload Completeness, Clusters, ShibitoCount
wave.applied (none) uses event.Type
report.sent (none) uses event.Type
wave.completed (none) uses event.Type
specification.sent (none) uses event.Type

Dispatch Guarantee

Best-effort (at-most-once). Handler failures are silently logged. No retry, no dead-letter queue, no error propagation to callers.

Skeleton Handlers

WaveAppliedComposeReport and ReportSentDeliverToPhonewave are observation-only placeholders (Debug log + Metrics, no notification).