From 659de0dc0414e7c29225b2562735964a2340dece Mon Sep 17 00:00:00 2001 From: oiupoyt Date: Tue, 29 Sep 2026 07:25:13 +0530 Subject: [PATCH] style: replace emojis with clean minimal terminal symbols --- README.md | 6 +++--- src/main.rs | 18 +++++++++--------- src/tui/ui.rs | 18 +++++++++--------- 3 files changed, 21 insertions(+), 21 deletions(-) diff --git a/README.md b/README.md index 4445414..8a91a36 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# BrokeCrew 🤖⚡ +# BrokeCrew [![CI](https://github.com/oiupoyt/brokecrew/actions/workflows/ci.yml/badge.svg)](https://github.com/oiupoyt/brokecrew/actions) [![License](https://img.shields.io/badge/license-MIT%20OR%20Apache--2.0-blue.svg)](LICENSE-MIT) @@ -31,8 +31,8 @@ Simply run `brokecrew` to enter the rich, full-screen interactive TUI: brokecrew ``` -- **Live Team View**: Color-coded persona avatars (`⚡ coder`, `🔍 reviewer`, `🏛️ architect`), token streaming with markdown & syntax formatting. -- **Quota & Budget Monitor**: Real-time headers displaying rolling minute and 24h limits (`⏱ 1m: 2/20`, `📅 24h: 14/50`). +- **Live Team View**: Color-coded persona indicators (`● coder`, `● reviewer`, `● architect`), token streaming with markdown & syntax formatting. +- **Quota & Budget Monitor**: Real-time headers displaying rolling minute and 24h limits (`1m: 2/20`, `24h: 14/50`). - **Interactive Modals**: - `[Tab]` — Open Persona Selector (switch between intelligent Stage A/B `Auto-Route` and dedicated personas). - `[Ctrl+P]` — Open Pipeline Selector (execute multi-agent pipelines like `build-and-review`). diff --git a/src/main.rs b/src/main.rs index afb7b27..7e41225 100644 --- a/src/main.rs +++ b/src/main.rs @@ -144,7 +144,7 @@ async fn main() -> Result<(), Box> { .map_err(|e| format!("Failed to save API key to OS credential store: {e}"))?; println!( "{}", - "✔ OpenRouter API key saved securely in OS credential store." + "✓ OpenRouter API key saved securely in OS credential store." .bright_green() .bold() ); @@ -263,7 +263,7 @@ async fn main() -> Result<(), Box> { ); println!(" Daily requests today: {}", daily_color); if status.approaching_daily_limit { - println!(" {}", "⚠ Notice: Approaching daily free-tier limit. Non-urgent calls may be deferred.".yellow().bold()); + println!(" {}", "! Notice: Approaching daily free-tier limit. Non-urgent calls may be deferred.".yellow().bold()); } } Err(e) => { @@ -323,7 +323,7 @@ fn ensure_api_key(config: &AppConfig) -> Result Result Result<(), Box> { println!( "\n{} Starting pipeline '{}' ({} steps)", - "⚡".bright_cyan(), + "›".bright_cyan(), pipeline.name.bold(), pipeline.steps.len() ); @@ -667,7 +667,7 @@ async fn run_pipeline( } println!(); if fell_back { - eprintln!("{}", "⚠ Fallback occurred during step execution".yellow()); + eprintln!("{}", "! Fallback occurred during step execution".yellow()); } } } diff --git a/src/tui/ui.rs b/src/tui/ui.rs index a9540c8..124c64f 100644 --- a/src/tui/ui.rs +++ b/src/tui/ui.rs @@ -603,7 +603,7 @@ fn render_minimal_messages(frame: &mut Frame, app: &AppState, area: Rect, palett let mut header_spans = vec![ Span::raw(" "), Span::styled( - format!("⚡ {name}"), + format!("● {name}"), Style::default().fg(persona_color).bold(), ), Span::styled( @@ -614,7 +614,7 @@ fn render_minimal_messages(frame: &mut Frame, app: &AppState, area: Rect, palett if msg.fell_back { header_spans.push(Span::raw(" ")); header_spans.push(Span::styled( - "⚠ fallback", + "[fallback]", Style::default().fg(Color::Yellow).bold(), )); } @@ -640,7 +640,7 @@ fn render_minimal_messages(frame: &mut Frame, app: &AppState, area: Rect, palett let mut header_spans = vec![ Span::raw(" "), Span::styled( - format!("⚡ Step {}/{}: {persona}", step_index + 1, total_steps), + format!("● Step {}/{}: {persona}", step_index + 1, total_steps), Style::default().fg(persona_color).bold(), ), Span::styled( @@ -651,7 +651,7 @@ fn render_minimal_messages(frame: &mut Frame, app: &AppState, area: Rect, palett if msg.fell_back { header_spans.push(Span::raw(" ")); header_spans.push(Span::styled( - "⚠ fallback", + "[fallback]", Style::default().fg(Color::Yellow).bold(), )); } @@ -986,7 +986,7 @@ fn render_workings_pane(frame: &mut Frame, app: &AppState, area: Rect, palette: lines.push(Line::from(vec![ Span::raw(" "), Span::styled( - format!("⚡ pipeline: {pipe_name}"), + format!("› pipeline: {pipe_name}"), Style::default().fg(palette.accent).bold(), ), ])); @@ -1035,7 +1035,7 @@ fn render_workings_pane(frame: &mut Frame, app: &AppState, area: Rect, palette: } else if step.is_completed { lines.push(Line::from(vec![ Span::raw(" "), - Span::styled("[✔] ", Style::default().fg(Color::LightGreen).bold()), + Span::styled("[✓] ", Style::default().fg(Color::LightGreen).bold()), Span::styled( format!("{}. {}", idx + 1, step.persona), Style::default().fg(Color::White).bold(), @@ -1084,7 +1084,7 @@ fn render_workings_pane(frame: &mut Frame, app: &AppState, area: Rect, palette: if let Some(stage) = &app.workings.route_stage { lines.push(Line::from(vec![ Span::raw(" "), - Span::styled("⚡ ", Style::default().fg(palette.accent).bold()), + Span::styled("● ", Style::default().fg(palette.accent).bold()), Span::styled(stage.clone(), Style::default().fg(palette.accent).bold()), ])); if let Some(details) = &app.workings.route_details { @@ -1132,7 +1132,7 @@ fn render_workings_pane(frame: &mut Frame, app: &AppState, area: Rect, palette: let (icon, color) = if att.is_success { ("•", Color::LightGreen) } else if att.is_error { - ("✖", Color::LightRed) + ("×", Color::LightRed) } else { (sp, Color::Yellow) }; @@ -1231,7 +1231,7 @@ fn render_workings_pane(frame: &mut Frame, app: &AppState, area: Rect, palette: ])); for pipe in &app.pipelines { lines.push(Line::from(vec![ - Span::raw(" ⚡ "), + Span::raw(" › "), Span::styled(&pipe.name, Style::default().fg(Color::Yellow)), ])); }