RC-4
release-tag / release-image (push) Successful in 2m32s

This commit is contained in:
2026-08-09 18:41:47 +02:00
parent 440423c5b6
commit 94dbd4ccab
195 changed files with 3335 additions and 3501 deletions
+54
View File
@@ -21,6 +21,9 @@ type RuntimeSettings struct {
ViewMode string `json:"view_mode"`
MaxDisplayNodes int `json:"max_display_nodes"`
LowPowerMode bool `json:"low_power_mode"`
SpeedMode bool `json:"speed_mode"`
SpeedCPUWorkers int `json:"speed_cpu_tasks"`
SpeedGPUInflight int `json:"speed_gpu_tasks"`
ProcessingMode string `json:"processing_mode"`
AutonomousResearchEnabled bool `json:"autonomous_research_enabled"`
AutonomousResearchIdleOnly bool `json:"autonomous_research_idle_only"`
@@ -53,6 +56,9 @@ func (e *Engine) defaultRuntimeSettings() RuntimeSettings {
ViewMode: e.Cfg.DefaultView,
MaxDisplayNodes: e.Cfg.MaxDisplayNodes,
LowPowerMode: e.Cfg.LowPowerMode,
SpeedMode: e.Cfg.SpeedMode,
SpeedCPUWorkers: e.Cfg.SpeedCPUWorkers,
SpeedGPUInflight: e.Cfg.SpeedGPUInflight,
ProcessingMode: e.Cfg.ProcessingMode,
AutonomousResearchEnabled: e.Cfg.AutonomousResearchEnabled,
AutonomousResearchIdleOnly: e.Cfg.AutonomousResearchIdleOnly,
@@ -86,6 +92,23 @@ func normalizeRuntimeSettings(in RuntimeSettings) RuntimeSettings {
if in.MaxDisplayNodes > 500000 {
in.MaxDisplayNodes = 500000
}
if in.SpeedCPUWorkers < 1 {
in.SpeedCPUWorkers = 1
}
if in.SpeedCPUWorkers > 256 {
in.SpeedCPUWorkers = 256
}
if in.SpeedGPUInflight < 1 {
in.SpeedGPUInflight = 1
}
if in.SpeedGPUInflight > 64 {
in.SpeedGPUInflight = 64
}
if in.SpeedMode {
// Eco and Speed have opposite scheduling/rendering goals. Speed wins when
// an older client accidentally submits both flags.
in.LowPowerMode = false
}
if in.AutonomousResearchMinPriority < 0 {
in.AutonomousResearchMinPriority = 0
}
@@ -172,6 +195,9 @@ func mergeRuntimeSettingsJSON(settings *RuntimeSettings, data []byte) {
decode("view_mode", &settings.ViewMode)
decode("max_display_nodes", &settings.MaxDisplayNodes)
decode("low_power_mode", &settings.LowPowerMode)
decode("speed_mode", &settings.SpeedMode)
decode("speed_cpu_tasks", &settings.SpeedCPUWorkers)
decode("speed_gpu_tasks", &settings.SpeedGPUInflight)
decode("processing_mode", &settings.ProcessingMode)
decode("autonomous_research_enabled", &settings.AutonomousResearchEnabled)
decode("autonomous_research_idle_only", &settings.AutonomousResearchIdleOnly)
@@ -217,6 +243,12 @@ func (e *Engine) SetRuntimeSettings(settings RuntimeSettings) (RuntimeSettings,
if settings.AutonomousResearchTasksPerCycle == 0 {
settings.AutonomousResearchTasksPerCycle = previous.AutonomousResearchTasksPerCycle
}
if settings.SpeedCPUWorkers == 0 {
settings.SpeedCPUWorkers = previous.SpeedCPUWorkers
}
if settings.SpeedGPUInflight == 0 {
settings.SpeedGPUInflight = previous.SpeedGPUInflight
}
if settings.ProcessingMode == "" {
settings.ProcessingMode = previous.ProcessingMode
}
@@ -226,6 +258,12 @@ func (e *Engine) SetRuntimeSettings(settings RuntimeSettings) (RuntimeSettings,
if settings.MaxDisplayNodes < 0 || settings.MaxDisplayNodes > 500000 {
return e.RuntimeSettings(), fmt.Errorf("max_display_nodes must be between 0 and 500000")
}
if settings.SpeedCPUWorkers < 1 || settings.SpeedCPUWorkers > 256 {
return e.RuntimeSettings(), fmt.Errorf("speed_cpu_tasks must be between 1 and 256")
}
if settings.SpeedGPUInflight < 1 || settings.SpeedGPUInflight > 64 {
return e.RuntimeSettings(), fmt.Errorf("speed_gpu_tasks must be between 1 and 64")
}
if settings.AutonomousResearchMinPriority < 0 || settings.AutonomousResearchMinPriority > 1 {
return e.RuntimeSettings(), fmt.Errorf("autonomous_research_min_priority must be between 0 and 1")
}
@@ -243,6 +281,11 @@ func (e *Engine) SetRuntimeSettings(settings RuntimeSettings) (RuntimeSettings,
previous = e.runtime
e.runtime = settings
e.runtimeMu.Unlock()
e.applyRuntimePerformance(settings)
if settings.SpeedMode && !previous.SpeedMode {
e.signalSpeedWork()
}
if settings.AutonomousResearchEnabled && !previous.AutonomousResearchEnabled {
e.signalAutonomousResearch()
@@ -265,6 +308,7 @@ func (e *Engine) SetRuntimeSettings(settings RuntimeSettings) (RuntimeSettings,
e.runtimeMu.Lock()
e.runtime = previous
e.runtimeMu.Unlock()
e.applyRuntimePerformance(previous)
return previous, err
}
}
@@ -285,6 +329,9 @@ func (e *Engine) SetRuntimeSettings(settings RuntimeSettings) (RuntimeSettings,
"view_mode": settings.ViewMode,
"max_display_nodes": settings.MaxDisplayNodes,
"low_power_mode": settings.LowPowerMode,
"speed_mode": settings.SpeedMode,
"speed_cpu_tasks": settings.SpeedCPUWorkers,
"speed_gpu_tasks": settings.SpeedGPUInflight,
"processing_mode": settings.ProcessingMode,
"autonomous_research_enabled": settings.AutonomousResearchEnabled,
"autonomous_research_idle_only": settings.AutonomousResearchIdleOnly,
@@ -296,6 +343,13 @@ func (e *Engine) SetRuntimeSettings(settings RuntimeSettings) (RuntimeSettings,
return settings, nil
}
func (e *Engine) SpeedModeEnabled() bool {
e.runtimeMu.RLock()
enabled := e.runtime.SpeedMode
e.runtimeMu.RUnlock()
return enabled
}
func (e *Engine) LearningEnabled() bool {
e.runtimeMu.RLock()
enabled := e.runtime.LearningEnabled