feat: Telegram fleet alerts, forge sigil scramble, UI polish, agent ops
- Calibrate: per-event Telegram/SMTP toggles, test notification, chat ID help - Notify on agent connect/reconnect, offline/hashrate/rejection, forge complete - Sigil scramble post-forge uniquification and Dispense Reveal ceremony - Full system check, desktop push, BITS/host-binary persistence, Path Tracer - Dashboard/Crucible visual polish, haptics, sacred geometry, mobile nav - README documents alerts, sigil scramble, and pack-usb workflow - USB bundle repacked via pack-usb.bat (AetherForge.exe + synced agent source)
This commit is contained in:
41
server/internal/alerts/settings.go
Normal file
41
server/internal/alerts/settings.go
Normal file
@@ -0,0 +1,41 @@
|
||||
package alerts
|
||||
|
||||
// Event toggles — all default true in server DefaultConfig.
|
||||
type EventToggles struct {
|
||||
AgentConnect bool
|
||||
AgentReconnect bool
|
||||
AgentOffline bool
|
||||
HashrateDrop bool
|
||||
RejectionRate bool
|
||||
BuildComplete bool
|
||||
}
|
||||
|
||||
// Settings combines delivery credentials with per-event toggles.
|
||||
type Settings struct {
|
||||
NotifyConfig
|
||||
Events EventToggles
|
||||
}
|
||||
|
||||
func NewSettings(nc NotifyConfig, ev EventToggles) Settings {
|
||||
return Settings{NotifyConfig: nc, Events: ev}
|
||||
}
|
||||
|
||||
// EnabledForAlertType maps evaluator alert types to toggles.
|
||||
func (s Settings) EnabledForAlertType(alertType string) bool {
|
||||
switch alertType {
|
||||
case "offline":
|
||||
return s.Events.AgentOffline
|
||||
case "hashrate_drop":
|
||||
return s.Events.HashrateDrop
|
||||
case "rejection_rate":
|
||||
return s.Events.RejectionRate
|
||||
default:
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
const (
|
||||
EventAgentConnect = "agent_connect"
|
||||
EventAgentReconnect = "agent_reconnect"
|
||||
EventBuildComplete = "build_complete"
|
||||
)
|
||||
Reference in New Issue
Block a user