feat: added command sent in cluster panel

This commit is contained in:
2026-07-13 13:14:34 +02:00
parent eb9e2db41a
commit 68982e9a85
5 changed files with 280 additions and 12 deletions
+15
View File
@@ -886,6 +886,13 @@ func (a *App) startup(ctx context.Context) {
if a.ctx != nil {
wruntime.EventsEmit(a.ctx, "cluster:spot", s)
}
// A HISTORICAL spot (recovered from a SH/DX table) goes to the grid and
// stops there. It is a replay of the past: firing 100 alerts at once, or
// painting 100 stale stations on the panadapter as if they were on the
// air right now, would be actively misleading.
if s.Historical {
return
}
// Fire any matching alert rules (sound / visual / e-mail).
a.evaluateAlerts(s)
// Mirror the spot onto the FlexRadio panadapter when enabled. The
@@ -904,6 +911,14 @@ func (a *App) startup(ctx context.Context) {
wruntime.EventsEmit(a.ctx, "cluster:state", a.cluster.Status())
}
},
// Raw traffic → the cluster console. Spots are parsed out of this stream,
// but SH/DX, WHO, the MOTD and error replies are NOT spots — without this
// they were dropped on the floor and the command box looked inert.
func(l cluster.Line) {
if a.ctx != nil {
wruntime.EventsEmit(a.ctx, "cluster:line", l)
}
},
)
a.refreshOperatorGrid()
if cs, _ := a.clusterAutoConnect(); cs {