Send strategy manifest to clients

This commit is contained in:
2026-07-26 14:39:16 +02:00
parent ec7c3e0c3f
commit 1429133b1e
2 changed files with 27 additions and 31 deletions
+26 -5
View File
@@ -59,17 +59,38 @@ impl TerminalServer {
} }
} }
async fn handle_client( async fn initialize_client(self: &Arc<Self>, id: &usize) -> tokio::io::Result<()> {
self: &Arc<Self>, let engine = self.get_engine();
id: &usize, let pair = engine.strategy.pair.lock().await;
mut reader: OwnedReadHalf,
) -> tokio::io::Result<()> { self.send_to(
id,
pulse_wire::terminal::TerminalServerMessage::StrategyUpdated(Strategy {
strategy: pair.strategy_manifest.lock().await.clone(),
risk: pair.risk_manifest.lock().await.clone(),
mode: Mode::Auto,
state: ItemState::Running,
cooldown: TimeFrame::M15,
}),
)
.await?;
self.send_to( self.send_to(
id, id,
pulse_wire::terminal::TerminalServerMessage::SetLogs(self.logs.lock().await.clone()), pulse_wire::terminal::TerminalServerMessage::SetLogs(self.logs.lock().await.clone()),
) )
.await?; .await?;
Ok(())
}
async fn handle_client(
self: &Arc<Self>,
id: &usize,
mut reader: OwnedReadHalf,
) -> tokio::io::Result<()> {
self.initialize_client(id).await?;
loop { loop {
let mut len_buf = [0u8; size_of::<usize>()]; let mut len_buf = [0u8; size_of::<usize>()];
let size = reader.read_exact(&mut len_buf).await?; let size = reader.read_exact(&mut len_buf).await?;
+1 -26
View File
@@ -181,32 +181,7 @@ async fn main() -> tokio::io::Result<()> {
signals: ctx.use_state(Vec::new()), signals: ctx.use_state(Vec::new()),
logs: ctx.use_state(Vec::new()), logs: ctx.use_state(Vec::new()),
inspect: ctx.use_state(InspectTarget::None), inspect: ctx.use_state(InspectTarget::None),
strategy: ctx.use_state(Some(Strategy { strategy: ctx.use_state(None),
strategy: StrategyManifest {
name: "Liquidity Sweep".to_string(),
description:
"Detects liquidity grabs around key support and resistance levels."
.to_string(),
author: "Klesty Selimaj".to_string(),
version: "1.0.0".to_string(),
timeframes: vec![TimeFrame::M5, TimeFrame::M15, TimeFrame::H1],
},
risk: RiskManifest {
name: "Aggressive".to_string(),
description: "High-risk profile with larger position sizing.".to_string(),
author: "Klesty Selimaj".to_string(),
version: "1.0.0".to_string(),
max_loss: 5,
cooldown: TimeFrame::M15,
},
mode: Mode::Auto,
state: ItemState::Running,
cooldown: TimeFrame::M15,
})),
status: ctx.use_state(None), status: ctx.use_state(None),
}) })
}) })