Skip to content

feat(cli): configurable subagent profiles with prompt/model/tool isolation (ANGA-807)#72

Open
anhermon wants to merge 1 commit into
mainfrom
feature/anga-807-subagent-profiles-clean
Open

feat(cli): configurable subagent profiles with prompt/model/tool isolation (ANGA-807)#72
anhermon wants to merge 1 commit into
mainfrom
feature/anga-807-subagent-profiles-clean

Conversation

@anhermon

Copy link
Copy Markdown
Owner

Summary

  • add named subagent_profiles support to agent config, with fallback lookup from agent.project_metadata.subagent_profiles
  • extend spawn_subagent tool input to accept optional profile, and route sub-agent creation through profile-aware prompt/model/tool selection
  • add per-profile tool allowlist/denylist enforcement by building profile-specific tool registries and guarding spawn_subagent execution when not registered
  • document profile configuration and usage in README.md
  • add agent tests for config-defined profiles, project-metadata profiles, and fallback behavior when profile is missing

Testing

  • cargo fmt
  • cargo test -p harness-cli (fails in this runtime: linker cc not installed)

…ss (ANGA-807)

Co-Authored-By: Paperclip <noreply@paperclip.ing>

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 97b098bfab

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread crates/cli/src/agent.rs

let backend = self.config.provider.backend.as_str();
let provider: anyhow::Result<Arc<dyn Provider>> = match backend {
"echo" => Ok(Arc::new(EchoProvider::new())),

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P0 Badge Instantiate EchoProvider without missing constructor

EchoProvider is defined as a unit struct and has no new() associated function, so this call causes a compile-time error (no function or associated item named \new`) in harness-cli. Because this code is type-checked unconditionally in provider_for_subagent_profile`, the crate cannot build in any environment regardless of whether the echo backend is used at runtime.

Useful? React with 👍 / 👎.

@anhermon anhermon left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

HOLD — P0 compile error flagged by Codex: EchoProvider is a unit struct with no new() function, causing a compile-time error in provider_for_subagent_profile. The crate cannot build. Fix: either use EchoProvider directly (no ::new()), or add impl EchoProvider { pub fn new() -> Self { EchoProvider } }. Do not merge until this is resolved.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant