feat(cluster): the spot list size is a setting

The list is a ring buffer that held a thousand spots, and on a busy
evening a thousand arrive in a couple of minutes. So the buffer decided
how long a spot lived, and the spot LIFETIME setting never got the chance
to expire anything: fifteen minutes meant nothing when the oldest spot
was pushed out after two.

Now settable (Preferences → Cluster, beside the lifetime, since between
them they decide the same thing), 100 to 10 000. The ceiling is a real
limit rather than a round number: every spot is matched against the
worked index and the alert rules, and is a row the cluster grid and every
open band map re-render.
This commit is contained in:
2026-08-24 19:15:32 +02:00
parent 4e9b1eebe9
commit 27d0952d01
7 changed files with 103 additions and 9 deletions
+4
View File
@@ -563,6 +563,8 @@ export function GetSolarData():Promise<solar.Data>;
export function GetSpotColors():Promise<main.SpotColors>;
export function GetSpotMax():Promise<number>;
export function GetSpotTTLMinutes():Promise<number>;
export function GetStartupStatus():Promise<main.StartupStatus>;
@@ -1149,6 +1151,8 @@ export function SetPassphrase(arg1:string):Promise<void>;
export function SetScpEnabled(arg1:boolean):Promise<void>;
export function SetSpotMax(arg1:number):Promise<void>;
export function SetSpotTTLMinutes(arg1:number):Promise<void>;
export function SetTelemetryEnabled(arg1:boolean):Promise<void>;
+8
View File
@@ -1066,6 +1066,10 @@ export function GetSpotColors() {
return window['go']['main']['App']['GetSpotColors']();
}
export function GetSpotMax() {
return window['go']['main']['App']['GetSpotMax']();
}
export function GetSpotTTLMinutes() {
return window['go']['main']['App']['GetSpotTTLMinutes']();
}
@@ -2238,6 +2242,10 @@ export function SetScpEnabled(arg1) {
return window['go']['main']['App']['SetScpEnabled'](arg1);
}
export function SetSpotMax(arg1) {
return window['go']['main']['App']['SetSpotMax'](arg1);
}
export function SetSpotTTLMinutes(arg1) {
return window['go']['main']['App']['SetSpotTTLMinutes'](arg1);
}