diff --git a/crates/hyperlog-server/src/commands.rs b/crates/hyperlog-server/src/commands.rs index 4f10ab4..24a552d 100644 --- a/crates/hyperlog-server/src/commands.rs +++ b/crates/hyperlog-server/src/commands.rs @@ -1,5 +1,6 @@ use hyperlog_core::log::{GraphItem, ItemState}; +#[allow(dead_code)] pub enum Command { CreateRoot { root: String, @@ -33,8 +34,10 @@ pub enum Command { }, } +#[allow(dead_code)] pub struct Commander {} +#[allow(dead_code, unused_variables)] impl Commander { pub fn execute(&self, cmd: Command) -> anyhow::Result<()> { match cmd { @@ -57,8 +60,6 @@ impl Commander { Command::ToggleItem { root, path } => todo!(), Command::Move { root, src, dest } => todo!(), } - - Ok(()) } pub async fn create_root(&self, root: &str) -> anyhow::Result<()> { diff --git a/crates/hyperlog-server/src/external_grpc.rs b/crates/hyperlog-server/src/external_grpc.rs index 59fb353..e637f48 100644 --- a/crates/hyperlog-server/src/external_grpc.rs +++ b/crates/hyperlog-server/src/external_grpc.rs @@ -1,9 +1,8 @@ -use std::{collections::HashMap, net::SocketAddr}; - use hyperlog_protos::hyperlog::{ graph_server::{Graph, GraphServer}, *, }; +use std::net::SocketAddr; use tonic::{transport, Response}; use crate::{ @@ -11,6 +10,7 @@ use crate::{ state::SharedState, }; +#[allow(dead_code)] pub struct Server { querier: Querier, } diff --git a/crates/hyperlog-server/src/external_http.rs b/crates/hyperlog-server/src/external_http.rs index 2dbe14e..ac1c3cb 100644 --- a/crates/hyperlog-server/src/external_http.rs +++ b/crates/hyperlog-server/src/external_http.rs @@ -1,4 +1,4 @@ -use std::{net::SocketAddr, sync::Arc}; +use std::net::SocketAddr; use axum::{extract::MatchedPath, http::Request, routing::get, Router}; use tower_http::trace::TraceLayer; diff --git a/crates/hyperlog-tui/src/commands/batch.rs b/crates/hyperlog-tui/src/commands/batch.rs index ebb6efe..fb4a2bf 100644 --- a/crates/hyperlog-tui/src/commands/batch.rs +++ b/crates/hyperlog-tui/src/commands/batch.rs @@ -31,7 +31,6 @@ impl IntoCommand for BatchCommand { for command in self.commands { let msg = command.execute(dispatch.clone()); if let Some(msg) = msg { - tracing::info!("executing batch command for msg: {:?}", msg); dispatch.send(msg); } } diff --git a/crates/hyperlog-tui/src/commands/update_graph.rs b/crates/hyperlog-tui/src/commands/update_graph.rs index baead7e..06c6379 100644 --- a/crates/hyperlog-tui/src/commands/update_graph.rs +++ b/crates/hyperlog-tui/src/commands/update_graph.rs @@ -6,8 +6,6 @@ use crate::{ state::SharedState, }; -use super::IntoCommand; - pub struct UpdateGraphCommand { querier: Querier, } @@ -26,11 +24,6 @@ impl UpdateGraphCommand { let now = std::time::SystemTime::now(); dispatch.send(Msg::GraphUpdated(GraphUpdatedEvent::Initiated)); - #[cfg(debug_assertions)] - { - tokio::time::sleep(std::time::Duration::from_secs(1)).await; - } - match self .querier .get_async(&root, path) @@ -38,6 +31,15 @@ impl UpdateGraphCommand { .ok_or(anyhow::anyhow!("failed to find path")) { Ok(graph) => { + dispatch.send(Msg::GraphUpdated(GraphUpdatedEvent::Optimistic( + graph.clone(), + ))); + + #[cfg(debug_assertions)] + { + tokio::time::sleep(std::time::Duration::from_secs(1)).await; + } + dispatch.send(Msg::GraphUpdated(GraphUpdatedEvent::Success(graph))) } Err(e) => dispatch.send(Msg::GraphUpdated(GraphUpdatedEvent::Failure( diff --git a/crates/hyperlog-tui/src/components/graph_explorer.rs b/crates/hyperlog-tui/src/components/graph_explorer.rs index 0bc2b98..f2967ce 100644 --- a/crates/hyperlog-tui/src/components/graph_explorer.rs +++ b/crates/hyperlog-tui/src/components/graph_explorer.rs @@ -65,6 +65,10 @@ impl<'a> GraphExplorerState<'a> { GraphUpdatedEvent::Failure(e) => { tracing::error!("graph update failed: {}", e); } + GraphUpdatedEvent::Optimistic(graph) => { + tracing::trace!("graph updated optimistically"); + self.graph = Some(graph.clone()); + } } } diff --git a/crates/hyperlog-tui/src/models.rs b/crates/hyperlog-tui/src/models.rs index cb106ed..04ef7d1 100644 --- a/crates/hyperlog-tui/src/models.rs +++ b/crates/hyperlog-tui/src/models.rs @@ -27,6 +27,7 @@ pub enum Msg { #[derive(Debug)] pub enum GraphUpdatedEvent { Initiated, + Optimistic(GraphItem), Success(GraphItem), Failure(String), } diff --git a/crates/hyperlog/src/cli.rs b/crates/hyperlog/src/cli.rs index f6d52c7..52841bb 100644 --- a/crates/hyperlog/src/cli.rs +++ b/crates/hyperlog/src/cli.rs @@ -1,7 +1,7 @@ use std::net::SocketAddr; use clap::{Parser, Subcommand}; -use hyperlog_tui::{commander, core_state::State, state}; +use hyperlog_tui::{commander, core_state::State}; #[derive(Parser)] #[command(author, version, about, long_about = None)]