feat(alerting): AlertingProperties + AlertStateTransitions state machine
- AlertingProperties @ConfigurationProperties with effective*() accessors and
5000 ms floor clamp on evaluatorTickIntervalMs; warn logged at startup
- AlertStateTransitions pure static state machine: Clear/Firing/Batch/Error
branches, PENDING→FIRING promotion on forDuration elapsed; Batch delegated
to job
- AlertInstance wither helpers: withState, withFiredAt, withResolvedAt, withAck,
withSilenced, withTitleMessage, withLastNotifiedAt, withContext
- AlertingBeanConfig gains @EnableConfigurationProperties(AlertingProperties),
alertingInstanceId bean (hostname:pid), alertingClock bean,
PerKindCircuitBreaker bean wired from props
- 12 unit tests in AlertStateTransitionsTest covering all transitions
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>