Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
fb64352
feat(routing): per-channel MCP and built-in tool filtering
nick-stebbings Mar 17, 2026
cf2e296
fix: address review feedback on channel routing
nick-stebbings Mar 21, 2026
cd7b03d
feat: migrate channel routing to SettingsStore with hot-reload
nick-stebbings Mar 21, 2026
0ae5923
fix: address serrrfirat review — DM bypass, owner scope, hot-reload
nick-stebbings Mar 31, 2026
b83891b
fix(routing): address serrrfirat review — validation, perf, DM detection
nick-stebbings Apr 9, 2026
de9e82c
fix(routing): suppress false-positive panic check on test assertions
nick-stebbings Apr 10, 2026
d0d2f4f
fix(routing): restore load_from_store method and add channel_routing …
nick-stebbings Apr 10, 2026
fb2e2b6
fix(routing): address zmanian review — SIGHUP detection, save_to_stor…
nick-stebbings Apr 12, 2026
c32f0ff
refactor(routing): none_arc/reload_from_store helpers + SIGHUP reload…
nick-stebbings Apr 12, 2026
1d5a85a
fix(channel-routing): bypass direct tui and http channels
nick-stebbings Apr 13, 2026
2dd5494
fix channel routing review issues
nick-stebbings Apr 13, 2026
805a34a
fix channel routing for autonomous jobs
nick-stebbings Apr 15, 2026
44f481c
fix(routing): address serrrfirat review — trusted flag, fail-closed j…
nick-stebbings Apr 20, 2026
0bc6f81
perf(routing): HashSet lookups, is_tool_permitted, typed tenant getter
nick-stebbings May 5, 2026
c50f4cb
fix(routing): address zmanian blockers — fail-closed, channel propaga…
nick-stebbings May 5, 2026
5b89ba4
style(routing): apply fmt cleanup
nick-stebbings May 5, 2026
5b268fa
style(routing): fix remaining rustfmt diffs
nick-stebbings May 5, 2026
cea2677
fix(test): add missing channel routing dep
nick-stebbings May 5, 2026
f3d7e84
fix(routing): wire cached Arc into WorkerDeps, doc derive_routed_mcp_…
nick-stebbings May 7, 2026
b8941de
fix(routing): dispatch-time channel enforcement + SIGHUP debug!, work…
nick-stebbings May 10, 2026
f63967d
style(fmt): rustfmt pass + test-rig local_jobs_only isolation
nick-stebbings May 10, 2026
59b0c81
fix(routing): populate channel_routing Arc from store in worker test,…
nick-stebbings May 15, 2026
c92b804
fix(rebase): update crate::llm → ironclaw_llm after LLM extraction, a…
nick-stebbings May 15, 2026
5c75dd0
style(clippy): collapse nested if let blocks in dispatch.rs
nick-stebbings May 15, 2026
cb1489e
fix(test): register RestrictedMcpTool async to correctly simulate MCP…
nick-stebbings May 15, 2026
8dd34fe
fix(test): add with_local_jobs_only to job_list_cancel
nick-stebbings May 15, 2026
57942ea
fix(routing): enforce channel routing at execution time in the worker…
nick-stebbings May 24, 2026
68ad868
fix(routing): address round-3 review: close all 6 blocking/strong gaps
nick-stebbings May 25, 2026
62855e4
fix(routing): close approval-resume gate, document scope, add MCP int…
nick-stebbings May 25, 2026
85f2b1c
chore(deps): update kuchikikiki 0.9.2 → 0.9.1 (yanked version)
nick-stebbings May 25, 2026
a864277
fix(test): use struct initializer for JobContext to avoid field_reass…
nick-stebbings May 25, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 5 additions & 45 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 5 additions & 0 deletions src/agent/agent_loop.rs
Original file line number Diff line number Diff line change
Expand Up @@ -388,6 +388,9 @@ pub struct AgentDeps {
pub llm_backend: String,
/// Per-tenant rate limiting registry (lazily creates rate state per user).
pub tenant_rates: Arc<crate::tenant::TenantRateRegistry>,
/// Per-channel tool routing config. Wrapped in RwLock for hot-reload support.
pub channel_routing:
Arc<tokio::sync::RwLock<Option<crate::agent::channel_routing::ChannelRoutingConfig>>>,
}

/// The main agent that coordinates all components.
Expand Down Expand Up @@ -466,6 +469,7 @@ impl Agent {
if let Some(ref interceptor) = deps.http_interceptor {
scheduler.set_http_interceptor(Arc::clone(interceptor));
}
scheduler.set_channel_routing(Arc::clone(&deps.channel_routing));
let scheduler = Arc::new(scheduler);

Self {
Expand Down Expand Up @@ -2473,6 +2477,7 @@ mod tests {
builder: None,
llm_backend: "nearai".to_string(),
tenant_rates: Arc::new(crate::tenant::TenantRateRegistry::new(4, 3)),
channel_routing: Arc::new(tokio::sync::RwLock::new(None)),
};

Agent::new(
Expand Down
Loading
Loading