Add AI chat to dashboard, refactor stream module, snapshot --urls, batch argument mode (#1160)

* chat

* refactor

* fixes

* fixes

* fixes

* fixes

* improvements

* download chat

* batch

* fixes

* fixes

* fixes

* fmt

* fixes

* fixes

* fixes

* fmt
This commit is contained in:
Chris Tate
2026-04-06 08:10:43 -05:00
committed by GitHub
parent fcb6615f5a
commit 317e6869b6
44 changed files with 4933 additions and 1957 deletions
+20 -5
View File
@@ -1,15 +1,30 @@
//! Color output utilities respecting NO_COLOR environment variable.
//! Color output utilities.
//!
//! When the NO_COLOR environment variable is present (regardless of value),
//! all color formatting is disabled per https://no-color.org/
//! Colors are off by default (agent-friendly). Enable with
//! `AGENT_BROWSER_COLOR=1`. Setting `NO_COLOR` to any value disables
//! colors per <https://no-color.org/>.
use std::env;
use std::sync::OnceLock;
/// Returns true if color output is enabled (NO_COLOR is NOT set)
fn env_is_truthy(name: &str) -> Option<bool> {
env::var(name)
.ok()
.map(|val| !matches!(val.to_lowercase().as_str(), "0" | "false" | "no"))
}
/// Returns true if color output is enabled.
///
/// Priority: `NO_COLOR` (presence disables, per spec) >
/// `AGENT_BROWSER_COLOR` (truthy enables) > default (off).
pub fn is_enabled() -> bool {
static COLORS_ENABLED: OnceLock<bool> = OnceLock::new();
*COLORS_ENABLED.get_or_init(|| env::var("NO_COLOR").is_err())
*COLORS_ENABLED.get_or_init(|| {
if env::var_os("NO_COLOR").is_some() {
return false;
}
env_is_truthy("AGENT_BROWSER_COLOR").unwrap_or(false)
})
}
/// Format text in red (errors)