From 8a39d60cc99b6d830e4b72d3694d3125f82f0cb9 Mon Sep 17 00:00:00 2001 From: Victoria Fischer Date: Mon, 8 Jun 2026 18:42:08 +0200 Subject: [PATCH] main: fix missing text colors in conversation logs --- src/main.rs | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/main.rs b/src/main.rs index 6f726df..789e9ce 100644 --- a/src/main.rs +++ b/src/main.rs @@ -13,7 +13,7 @@ use futures::{StreamExt, future::FutureExt}; use ratatui::prelude::*; use tui_skeleton::{AnimationMode, SkeletonText}; -use crate::{audio::{AudioInputControl, TtsOutStream, start_audio_input}, prediction::{BandcampResult, PossibleResponse}, scene::{ConversationEntry, Scene, StageActions, StageDirection}, transcription::TranscriptionControl, tts::{TtsControl, start_tts}}; +use crate::{audio::{AudioInputControl, start_audio_input}, prediction::{BandcampResult, PossibleResponse}, scene::{ConversationEntry, Scene, StageActions, StageDirection}, transcription::TranscriptionControl, tts::{TtsControl, start_tts}}; mod scene; mod events; @@ -32,6 +32,8 @@ mod audio; // FIXME: It is unclear what would happen if we are live editing the save.json, have a typo, then reload. The file might get wiped without recovery. // TODO: Would be nice to have some SFX integrated, with bleeps and calculation nosies or something periodically +// TODO: Should rewrite the entire prompt prediction loop, so the UI pushes modification events to the session and receives a new Scene from time to time whenever the prediction engine thinks it should regenerate one. + /* Usage loop: - Prompt user to select one of: - Select response 1 (1) @@ -150,6 +152,12 @@ impl App { ConversationEntry::SystemMessage(_) => Style::new().fg(style::Color::DarkGray), }; + let text_style = match entry { + ConversationEntry::StageDirection(_) => Style::new().fg(style::Color::Yellow), + ConversationEntry::SystemMessage(_) => Style::new().fg(style::Color::DarkGray), + _ => Style::new() + }; + let text = match entry { ConversationEntry::Eva(text) => text, ConversationEntry::ShipComputer(text) => text, @@ -166,9 +174,9 @@ impl App { .enumerate() .map(|(idx, s)| { if idx == 0 { - Line::from_iter([Span::from(prefix).style(style), Span::from(s[prefix.len()..].to_string())]) + Line::from_iter([Span::from(prefix).style(style), Span::from(s[prefix.len()..].to_string()).style(text_style)]) } else { - Line::from(s.to_string()) + Line::from(s.to_string()).style(text_style) } }).collect(); @@ -551,7 +559,6 @@ impl App { } fn reload_mixxx_playlist(&mut self) { - // TODO: Should have some status message which states how many tracks are in the playlist if let Err(err) = self.direction.reload_mixxx_playlist() { self.next_actions.push(ConversationEntry::SystemMessage(format!("Error while loading mixxx playlist: {:?}", err))); } else {