style: replace emojis with clean minimal terminal symbols

This commit is contained in:
katR 2026-09-29 07:25:13 +05:30
parent e8dd01509c
commit 659de0dc04
3 changed files with 21 additions and 21 deletions

View file

@ -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`).

View file

@ -144,7 +144,7 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
.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<dyn std::error::Error>> {
);
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<String, Box<dyn std::error::Erro
if io::stdin().is_terminal() {
eprintln!(
"{}",
"⚡ Welcome to BrokeCrew! No OpenRouter API key found in keyring, env, or config."
":: Welcome to BrokeCrew! No OpenRouter API key found in keyring, env, or config."
.bright_cyan()
.bold()
);
@ -339,7 +339,7 @@ fn ensure_api_key(config: &AppConfig) -> Result<String, Box<dyn std::error::Erro
let _ = AppConfig::save_api_key_to_keyring(&trimmed);
eprintln!(
"{}",
"✔ OpenRouter API key saved securely in OS credential store."
"✓ OpenRouter API key saved securely in OS credential store."
.bright_green()
.bold()
);
@ -454,7 +454,7 @@ async fn execute_prompt(
if status.approaching_daily_limit {
eprintln!(
"{} Daily usage: {}/{}",
"⚠ Budget notice: Approaching daily ceiling.".yellow(),
"! Budget notice: Approaching daily ceiling.".yellow(),
status.daily_requests,
status.daily_limit
);
@ -526,7 +526,7 @@ async fn execute_prompt(
if let Some(info) = route_info {
eprintln!(
"{}",
format!("⚡ [BrokeCrew: {info} ➔ {}]", target_persona).dimmed()
format!("› [BrokeCrew: {info} ➔ {}]", target_persona).dimmed()
);
}
@ -567,7 +567,7 @@ async fn execute_prompt(
if res.fell_back {
eprintln!(
"{}",
format!("⚠ Candidate fallback: served by {}", res.model_used).yellow()
format!("! Candidate fallback: served by {}", res.model_used).yellow()
);
}
// Record budget for each failed attempt plus the successful one
@ -597,7 +597,7 @@ async fn run_pipeline(
) -> Result<(), Box<dyn std::error::Error>> {
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());
}
}
}

View file

@ -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)),
]));
}