From 68287d89d430b177adf5d508547fddfe416f6b6f Mon Sep 17 00:00:00 2001 From: Val Alexander <68980965+BunsDev@users.noreply.github.com> Date: Thu, 18 Jun 2026 23:07:37 -0500 Subject: [PATCH] fix(commands): expose coven adapter install Co-authored-by: Nova --- docs/commands.md | 4 +++- src-rust/crates/commands/src/lib.rs | 20 +++++++++++++++++--- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/docs/commands.md b/docs/commands.md index ace5af4..cedd984 100644 --- a/docs/commands.md +++ b/docs/commands.md @@ -1074,7 +1074,9 @@ the slash invocation acts as the confirmation). parallel-work claim protocol /coven hooks-install install pre-commit/pre-push hooks for the claim protocol -/coven adapter list|doctor [id] inspect harness adapters +/coven adapter list [--json] list configured harness adapters +/coven adapter doctor [id] diagnose configured harness adapters +/coven adapter install install a trusted local adapter recipe /coven logs prune [--days N] prune session logs /coven wt | --list | --doctor | --prune-merged | --prune-stale [DAYS] worktree management diff --git a/src-rust/crates/commands/src/lib.rs b/src-rust/crates/commands/src/lib.rs index 87b84af..0d20c09 100644 --- a/src-rust/crates/commands/src/lib.rs +++ b/src-rust/crates/commands/src/lib.rs @@ -8864,7 +8864,9 @@ fn coven_help_text() -> &'static str { /coven hooks-install Install git hooks for the claim protocol\n\ \n\ Harness adapters & maintenance\n\ - /coven adapter list|doctor [id]\n\ + /coven adapter list [--json] List configured harness adapters\n\ + /coven adapter doctor [id] Diagnose configured harness adapters\n\ + /coven adapter install Install a trusted local adapter recipe\n\ /coven logs prune [--days N]\n\ /coven wt |--list|--doctor|--prune-merged|--prune-stale [DAYS]\n\ \n\ @@ -9621,7 +9623,7 @@ impl SlashCommand for CovenCommand { "adapter" => { if rest.is_empty() { return CommandResult::Error( - "Usage: /coven adapter list [--json] | adapter doctor [id]".to_string(), + "Usage: /coven adapter list [--json] | adapter doctor [id] | adapter install ".to_string(), ); } let mut argv: Vec<&str> = vec!["adapter"]; @@ -10995,6 +10997,10 @@ mod tests { for verb in ["calls", "claim", "hooks-install", "adapter", "logs", "wt"] { assert!(msg.contains(verb), "help should mention {verb}: {msg}"); } + assert!( + msg.contains("/coven adapter install "), + "help should show the adapter install path: {msg}" + ); } other => panic!("expected Message, got {:?}", other), } @@ -11013,7 +11019,15 @@ mod tests { let mut ctx = make_ctx(); let cmd = find_command("coven").unwrap(); let result = cmd.execute("adapter", &mut ctx).await; - assert!(matches!(result, CommandResult::Error(_))); + match result { + CommandResult::Error(msg) => { + assert!( + msg.contains("adapter install "), + "usage should include adapter install: {msg}" + ); + } + other => panic!("expected Error, got {:?}", other), + } } #[tokio::test]