Skip to content

Commit 21fb92a

Browse files
committed
feat: violet theme palette + ACP smoke-verified + runtime comment fix
theme_colors.rs: - Replace default_theme() placeholder with full OpenCoven violet palette: accent #8B5CF6 (violet-500), secondary_accent #EC4899 (pink-500), action #A78BFA (violet-400), info #C4B5FD (violet-300), border #4C1D95 (violet-900), success #34D399 (emerald-400), warning #FBBF24 (amber-400), error #F87171 (red-400), disabled #6D28D9 (violet-700 muted) - Add coven_dark() variant: same palette, text_light #EDE9FE (violet-100), near-black text_dark with violet tint, deeper border #37006E (violet-950) - Register 'coven' / 'coven-code' / 'coven-dark' in for_theme() acp/registry-template/agent.json: already updated in prior commit crates/acp/src/lib.rs: OpenCoven integration seam doc (prior commit) cli/src/main.rs: - Fix comment 'claude acp' -> 'coven-code acp' ACP smoke test (local): coven-code acp responds to JSON-RPC initialize: {"agentInfo":{"name":"coven-code","title":"Coven Code","version":"0.1.4"},...} cargo check: clean
1 parent bbded06 commit 21fb92a

2 files changed

Lines changed: 45 additions & 15 deletions

File tree

src-rust/crates/cli/src/main.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -394,7 +394,7 @@ async fn main() -> anyhow::Result<()> {
394394
return upgrade::run_upgrade(&raw_args[2..]).await;
395395
}
396396

397-
// Fast-path: `claude acp` — start the Agent Client Protocol stdio server.
397+
// Fast-path: `coven-code acp` — start the Agent Client Protocol stdio server.
398398
if raw_args.get(1).map(|s| s.as_str()) == Some("acp") {
399399
return claurst_acp::run_acp_server().await;
400400
}

src-rust/crates/tui/src/theme_colors.rs

Lines changed: 44 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@ impl ColorPalette {
3535
/// Get the color palette for a given theme name.
3636
pub fn for_theme(theme_name: &str) -> Self {
3737
match theme_name {
38+
"coven" | "coven-code" => Self::default_theme(),
39+
"coven-dark" => Self::coven_dark(),
3840
"deuteranopia" => Self::deuteranopia(),
3941
"dark" => Self::dark(),
4042
"light" => Self::light(),
@@ -46,22 +48,50 @@ impl ColorPalette {
4648
}
4749
}
4850

49-
/// Default Coven Code theme
50-
/// OpenCoven seam: replace palette here with violet/coven brand colors.
51-
/// Target: primary=#8B5CF6 (violet-500), accent=#EC4899 (pink-500)
51+
/// Default Coven Code theme — OpenCoven brand palette
52+
///
53+
/// Violet-first dark theme matching the OpenCoven brand:
54+
/// primary/accent: #8B5CF6 violet-500
55+
/// secondary_accent: #EC4899 pink-500
56+
/// action: #A78BFA violet-400 (slightly lighter for interactive)
57+
/// info: #C4B5FD violet-300 (readable on dark)
58+
/// border: #4C1D95 violet-900 (dark border, not grey)
59+
/// success: #34D399 emerald-400 (distinct from violet)
60+
/// warning: #FBBF24 amber-400
61+
/// error: #F87171 red-400
5262
fn default_theme() -> Self {
5363
Self {
54-
error: Color::Rgb(255, 87, 51), // Bright red-orange
55-
success: Color::Rgb(76, 175, 80), // Green
56-
warning: Color::Rgb(255, 152, 0), // Orange
57-
info: Color::Cyan,
58-
action: Color::Cyan,
59-
disabled: Color::DarkGray,
60-
accent: Color::Cyan,
61-
secondary_accent: Color::Rgb(233, 30, 99), // Magenta
62-
text_light: Color::White,
63-
text_dark: Color::Black,
64-
border: Color::DarkGray,
64+
// Violet/pink brand palette
65+
accent: Color::Rgb(139, 92, 246), // #8B5CF6 violet-500
66+
secondary_accent: Color::Rgb(236, 72, 153), // #EC4899 pink-500
67+
action: Color::Rgb(167, 139, 250), // #A78BFA violet-400
68+
info: Color::Rgb(196, 181, 253), // #C4B5FD violet-300
69+
border: Color::Rgb(76, 29, 149), // #4C1D95 violet-900
70+
// Semantic states — distinct from violet family
71+
success: Color::Rgb(52, 211, 153), // #34D399 emerald-400
72+
warning: Color::Rgb(251, 191, 36), // #FBBF24 amber-400
73+
error: Color::Rgb(248, 113, 113), // #F87171 red-400
74+
// Text / disabled
75+
disabled: Color::Rgb(109, 40, 217), // #6D28D9 violet-700 (muted)
76+
text_light: Color::White,
77+
text_dark: Color::Black,
78+
}
79+
}
80+
81+
/// Coven Code dark variant — violet palette on a true dark background
82+
fn coven_dark() -> Self {
83+
Self {
84+
accent: Color::Rgb(139, 92, 246), // #8B5CF6 violet-500
85+
secondary_accent: Color::Rgb(236, 72, 153), // #EC4899 pink-500
86+
action: Color::Rgb(167, 139, 250), // #A78BFA violet-400
87+
info: Color::Rgb(196, 181, 253), // #C4B5FD violet-300
88+
border: Color::Rgb(55, 14, 110), // #37006E violet-950
89+
success: Color::Rgb(52, 211, 153), // #34D399 emerald-400
90+
warning: Color::Rgb(251, 191, 36), // #FBBF24 amber-400
91+
error: Color::Rgb(248, 113, 113), // #F87171 red-400
92+
disabled: Color::Rgb(76, 29, 149), // #4C1D95 violet-900 (dimmer)
93+
text_light: Color::Rgb(237, 233, 254), // #EDE9FE violet-100
94+
text_dark: Color::Rgb(15, 5, 40), // near-black with violet tint
6595
}
6696
}
6797

0 commit comments

Comments
 (0)