From 6e666c0265b56521933d2177521e0b192c87eab1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=83=AA=E3=82=AD=E8=90=8C?= Date: Wed, 10 Sep 2025 16:10:27 +0200 Subject: [PATCH] further fixes to error reporting: extra context, disable colour --- crates/rkgk/src/api/wall.rs | 6 ++++-- crates/rkgk/src/main.rs | 5 ++++- static/connection-status.js | 7 +++++-- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/crates/rkgk/src/api/wall.rs b/crates/rkgk/src/api/wall.rs index 4091426..1f38d1a 100644 --- a/crates/rkgk/src/api/wall.rs +++ b/crates/rkgk/src/api/wall.rs @@ -94,7 +94,8 @@ async fn fallible_websocket(api: Arc, ws: &mut WebSocket) -> eyre::Result<( ws.send(to_message(&Version { version })).await?; - let login_request: LoginRequest = from_message(&recv_expect(ws).await?)?; + let login_request: LoginRequest = + from_message(&recv_expect(ws).await?).context("LoginRequest")?; let user_id = login_request.user; let secret = base64::engine::general_purpose::URL_SAFE .decode(&login_request.secret) @@ -284,7 +285,8 @@ impl SessionLoop { loop { select! { Some(message) = ws.recv() => { - let request = from_message(&message?)?; + let message = message?; + let request = from_message(&message).context("Request")?; self.process_request(ws, request).await?; } diff --git a/crates/rkgk/src/main.rs b/crates/rkgk/src/main.rs index bd87b52..7189efe 100644 --- a/crates/rkgk/src/main.rs +++ b/crates/rkgk/src/main.rs @@ -93,7 +93,10 @@ async fn main() { #[cfg(feature = "memory-profiling")] let _client = tracy_client::Client::start(); - color_eyre::install().unwrap(); + color_eyre::config::HookBuilder::new() + .theme(color_eyre::config::Theme::new()) + .install() + .unwrap(); tracing_subscriber::registry() .with(tracing_subscriber::fmt::layer()) .with( diff --git a/static/connection-status.js b/static/connection-status.js index e563b04..7f85a44 100644 --- a/static/connection-status.js +++ b/static/connection-status.js @@ -36,11 +36,14 @@ export class ConnectionStatus extends HTMLElement { showError(error) { this.errorDialog.showModal(); + if (typeof error.error == "string") { + this.errorText.value = error.error.toString(); + } if (error instanceof Error) { if (error.stack != null && error.stack != "") { - this.errorText.textContent = `${error.toString()}\n\n${error.stack}`; + this.errorText.value = `${error.toString()}\n\n${error.stack}`; } else { - this.errorText.textContent = error.toString(); + this.errorText.value = error.toString(); } } }