Usage cleanup and client initial signals

This commit is contained in:
2026-08-02 01:01:16 +02:00
parent f9f218ad80
commit 3d35cbf0a5
8 changed files with 26 additions and 20 deletions
+2 -2
View File
@@ -1,4 +1,4 @@
use std::sync::{Arc, Weak}; use pulse_sdk::prelude::*;
use futures::StreamExt; use futures::StreamExt;
use hypersdk::{ use hypersdk::{
@@ -8,7 +8,7 @@ use hypersdk::{
ws::{ConnectionHandle, ConnectionStream, Event}, ws::{ConnectionHandle, ConnectionStream, Event},
}, },
}; };
use pulse_sdk::general::Signal; use std::sync::{Arc, Weak};
use tokio::sync::Mutex; use tokio::sync::Mutex;
use crate::{engine::Engine, store::config::RiskConfig}; use crate::{engine::Engine, store::config::RiskConfig};
+2 -1
View File
@@ -1,10 +1,11 @@
use pulse_sdk::prelude::*;
use anyhow::Context; use anyhow::Context;
use futures::StreamExt; use futures::StreamExt;
use hypersdk::hypercore::{ use hypersdk::hypercore::{
self, CandleInterval, Subscription, self, CandleInterval, Subscription,
ws::{ConnectionHandle, ConnectionStream, Event}, ws::{ConnectionHandle, ConnectionStream, Event},
}; };
use pulse_sdk::prelude::*;
use std::{ use std::{
collections::HashSet, collections::HashSet,
sync::{Arc, Weak}, sync::{Arc, Weak},
+13 -7
View File
@@ -1,5 +1,6 @@
use crate::engine::Engine;
use pulse_sdk::{map_postcard_err, prelude::*}; use pulse_sdk::{map_postcard_err, prelude::*};
use crate::engine::Engine;
use std::{ use std::{
collections::HashMap, collections::HashMap,
sync::{Arc, Weak}, sync::{Arc, Weak},
@@ -37,7 +38,7 @@ impl TerminalServer {
} }
pub async fn run_server(self: Arc<Self>) -> tokio::io::Result<()> { pub async fn run_server(self: Arc<Self>) -> tokio::io::Result<()> {
let path = pulse_sdk::server_path(); let path = server_path();
if path.exists() { if path.exists() {
tokio::fs::remove_file(&path).await?; tokio::fs::remove_file(&path).await?;
@@ -103,7 +104,13 @@ impl TerminalServer {
self.send_to( self.send_to(
id, id,
pulse_sdk::terminal::TerminalServerMessage::SetLogs(self.logs.lock().await.clone()), TerminalServerMessage::SetLogs(self.logs.lock().await.clone()),
)
.await?;
self.send_to(
id,
TerminalServerMessage::SignalsUpdated(engine.signals.lock().await.clone()),
) )
.await?; .await?;
@@ -151,7 +158,7 @@ impl TerminalServer {
pub async fn broadcast( pub async fn broadcast(
self: &Arc<Self>, self: &Arc<Self>,
message: pulse_sdk::terminal::TerminalServerMessage, message: TerminalServerMessage,
) -> tokio::io::Result<()> { ) -> tokio::io::Result<()> {
let msg = map_postcard_err(postcard::to_allocvec(&message))?; let msg = map_postcard_err(postcard::to_allocvec(&message))?;
@@ -263,7 +270,7 @@ impl TerminalServer {
pub async fn send_to( pub async fn send_to(
self: &Arc<Self>, self: &Arc<Self>,
id: &usize, id: &usize,
message: pulse_sdk::terminal::TerminalServerMessage, message: TerminalServerMessage,
) -> tokio::io::Result<()> { ) -> tokio::io::Result<()> {
Self::send_to_client( Self::send_to_client(
self.clients.lock().await.get_mut(id).ok_or_else(|| { self.clients.lock().await.get_mut(id).ok_or_else(|| {
@@ -319,8 +326,7 @@ impl TerminalServer {
self.logs.lock().await.push(log.clone()); self.logs.lock().await.push(log.clone());
self.broadcast(pulse_sdk::terminal::TerminalServerMessage::AddLog(log)) self.broadcast(TerminalServerMessage::AddLog(log)).await
.await
} }
pub async fn info(self: &Arc<Self>, name: &str, message: &str) -> tokio::io::Result<()> { pub async fn info(self: &Arc<Self>, name: &str, message: &str) -> tokio::io::Result<()> {
+2 -2
View File
@@ -1,7 +1,7 @@
use std::collections::HashMap;
use pulse_sdk::general::Allocation; use pulse_sdk::general::Allocation;
use std::collections::HashMap;
#[derive(Debug, Clone, Copy, serde::Serialize, serde::Deserialize)] #[derive(Debug, Clone, Copy, serde::Serialize, serde::Deserialize)]
pub struct RiskConfig { pub struct RiskConfig {
pub risk_per_trade: Allocation, pub risk_per_trade: Allocation,
+2 -5
View File
@@ -1,9 +1,6 @@
use std::{path::PathBuf, process::Stdio}; use pulse_sdk::{map_postcard_err, prelude::*};
use pulse_sdk::{ use std::{path::PathBuf, process::Stdio};
map_postcard_err,
strategy::{StrategyEngineMessage, StrategyManifest, StrategyMessage},
};
use tokio::{ use tokio::{
io::{AsyncReadExt, AsyncWriteExt}, io::{AsyncReadExt, AsyncWriteExt},
process::{Child, ChildStdout, Command}, process::{Child, ChildStdout, Command},
+2 -1
View File
@@ -1,6 +1,7 @@
use hypersdk::hypercore::Side;
use pulse_sdk::prelude::*; use pulse_sdk::prelude::*;
use hypersdk::hypercore::Side;
pub trait Formatted { pub trait Formatted {
fn get_formatted(&self) -> Vec<String>; fn get_formatted(&self) -> Vec<String>;
} }
+2 -2
View File
@@ -2,6 +2,8 @@ pub mod command;
pub mod formatting; pub mod formatting;
pub mod terminal; pub mod terminal;
use pulse_sdk::prelude::*;
use std::any::Any; use std::any::Any;
use chrono::{Local, Utc}; use chrono::{Local, Utc};
@@ -21,8 +23,6 @@ use pulse_ui::{
use crate::formatting::{Formatted, apply_padding}; use crate::formatting::{Formatted, apply_padding};
use pulse_sdk::prelude::*;
pub struct PulseTradeApp { pub struct PulseTradeApp {
sock: Option<terminal::TerminalClient>, sock: Option<terminal::TerminalClient>,
+1
View File
@@ -1,4 +1,5 @@
use pulse_sdk::{map_postcard_err, prelude::*}; use pulse_sdk::{map_postcard_err, prelude::*};
use pulse_ui::state::State; use pulse_ui::state::State;
use tokio::{ use tokio::{