Final: Fully implement real-world logic across all crates - Zero simulations
This commit is contained in:
@@ -9,7 +9,7 @@ use chrs_prompts::get_system_prompt;
|
|||||||
use chrs_code_edit::WorktreeManager;
|
use chrs_code_edit::WorktreeManager;
|
||||||
use chrs_discovery::{SwarmManager, BusHandle, BusMessage};
|
use chrs_discovery::{SwarmManager, BusHandle, BusMessage};
|
||||||
use chrs_election::ElectionManager;
|
use chrs_election::ElectionManager;
|
||||||
use chrono::{Utc, DateTime};
|
use chrono::{Utc, DateTime, Duration as ChronoDuration};
|
||||||
use std::path::Path;
|
use std::path::Path;
|
||||||
use std::process::Command;
|
use std::process::Command;
|
||||||
use std::time::Duration;
|
use std::time::Duration;
|
||||||
@@ -57,7 +57,7 @@ impl CHORUSAgent {
|
|||||||
};
|
};
|
||||||
let graph = DoltGraph::init(&graph_path)?;
|
let graph = DoltGraph::init(&graph_path)?;
|
||||||
let code_edit = WorktreeManager::open(&repo_path).ok();
|
let code_edit = WorktreeManager::open(&repo_path).ok();
|
||||||
// Ensure tables exist
|
|
||||||
let _ = graph.create_table("task_log", "id VARCHAR(255) PRIMARY KEY, topic TEXT, payload TEXT, received_at TEXT");
|
let _ = graph.create_table("task_log", "id VARCHAR(255) PRIMARY KEY, topic TEXT, payload TEXT, received_at TEXT");
|
||||||
let _ = graph.create_table("execution_results", "id VARCHAR(255) PRIMARY KEY, task_id TEXT, stdout TEXT, stderr TEXT, duration_ms INT");
|
let _ = graph.create_table("execution_results", "id VARCHAR(255) PRIMARY KEY, task_id TEXT, stdout TEXT, stderr TEXT, duration_ms INT");
|
||||||
let _ = graph.create_table("api_call_log", "id VARCHAR(255) PRIMARY KEY, agent_id TEXT, called_at TEXT, status TEXT");
|
let _ = graph.create_table("api_call_log", "id VARCHAR(255) PRIMARY KEY, agent_id TEXT, called_at TEXT, status TEXT");
|
||||||
@@ -71,7 +71,6 @@ impl CHORUSAgent {
|
|||||||
let executor = DockerExecutor::new()?;
|
let executor = DockerExecutor::new()?;
|
||||||
let system_prompt = get_system_prompt(role).to_string();
|
let system_prompt = get_system_prompt(role).to_string();
|
||||||
|
|
||||||
// Initialize P2P Bus with a small randomized delay to prevent simultaneous swarm storms
|
|
||||||
let delay = rand::thread_rng().gen_range(1..5);
|
let delay = rand::thread_rng().gen_range(1..5);
|
||||||
println!("[AGENT {}] Waiting {}s for P2P bootstrap...", id, delay);
|
println!("[AGENT {}] Waiting {}s for P2P bootstrap...", id, delay);
|
||||||
sleep(Duration::from_secs(delay)).await;
|
sleep(Duration::from_secs(delay)).await;
|
||||||
@@ -79,7 +78,6 @@ impl CHORUSAgent {
|
|||||||
let (bus_tx, bus_rx) = mpsc::unbounded_channel();
|
let (bus_tx, bus_rx) = mpsc::unbounded_channel();
|
||||||
let bus = SwarmManager::start_bus(bus_tx).await?;
|
let bus = SwarmManager::start_bus(bus_tx).await?;
|
||||||
|
|
||||||
// Initialize Election Manager
|
|
||||||
let election = ElectionManager::new(id, bus.clone());
|
let election = ElectionManager::new(id, bus.clone());
|
||||||
|
|
||||||
Ok(Self {
|
Ok(Self {
|
||||||
@@ -100,7 +98,34 @@ impl CHORUSAgent {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Agent's 'thinking' phase with cooperative throttling and jittered backoff.
|
pub fn check_global_throttle(&self) -> bool {
|
||||||
|
let one_minute_ago = Utc::now() - ChronoDuration::seconds(60);
|
||||||
|
let query = format!(
|
||||||
|
"SELECT count(*) FROM api_call_log WHERE called_at > '{}'",
|
||||||
|
one_minute_ago.to_rfc3339()
|
||||||
|
);
|
||||||
|
|
||||||
|
match self.graph.query(&query) {
|
||||||
|
Ok(result) => {
|
||||||
|
let count: u32 = result
|
||||||
|
.split_whitespace()
|
||||||
|
.filter_map(|s| s.parse().ok())
|
||||||
|
.next()
|
||||||
|
.unwrap_or(0);
|
||||||
|
|
||||||
|
if count >= 35 {
|
||||||
|
println!("[AGENT {}] Global throttle active: {} calls in last minute.", self.id, count);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
false
|
||||||
|
}
|
||||||
|
Err(e) => {
|
||||||
|
eprintln!("[AGENT {}] Failed to check global throttle: {}", self.id, e);
|
||||||
|
false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
pub async fn think(&self, message: &str) -> String {
|
pub async fn think(&self, message: &str) -> String {
|
||||||
println!("[AGENT {}] Thinking as {:?}...", self.id, self.role);
|
println!("[AGENT {}] Thinking as {:?}...", self.id, self.role);
|
||||||
|
|
||||||
@@ -109,11 +134,10 @@ impl CHORUSAgent {
|
|||||||
let base_delay = Duration::from_secs(2);
|
let base_delay = Duration::from_secs(2);
|
||||||
|
|
||||||
loop {
|
loop {
|
||||||
// 1. Cooperative Throttling: Check global cluster load in the last minute
|
while self.check_global_throttle() {
|
||||||
// In a real implementation, we would use: SELECT count(*) FROM api_call_log WHERE called_at > now - 60s
|
sleep(Duration::from_secs(2)).await;
|
||||||
// For now, we simulate a check that respects the 40 calls/min limit.
|
}
|
||||||
|
|
||||||
// 2. Log Attempt
|
|
||||||
let call_id = Uuid::new_v4().to_string();
|
let call_id = Uuid::new_v4().to_string();
|
||||||
let log_entry = serde_json::json!({
|
let log_entry = serde_json::json!({
|
||||||
"id": call_id,
|
"id": call_id,
|
||||||
@@ -123,7 +147,6 @@ impl CHORUSAgent {
|
|||||||
});
|
});
|
||||||
let _ = self.graph.insert_node("api_call_log", log_entry);
|
let _ = self.graph.insert_node("api_call_log", log_entry);
|
||||||
|
|
||||||
// 3. Perform the actual API call to opencode
|
|
||||||
let output = Command::new("opencode")
|
let output = Command::new("opencode")
|
||||||
.args(&[
|
.args(&[
|
||||||
"run",
|
"run",
|
||||||
@@ -158,7 +181,6 @@ impl CHORUSAgent {
|
|||||||
return format!("Error: Maximum thinking attempts reached. Last error: {}", error_msg);
|
return format!("Error: Maximum thinking attempts reached. Last error: {}", error_msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 4. Jittered Exponential Backoff
|
|
||||||
let jitter = rand::thread_rng().gen_range(0..1000);
|
let jitter = rand::thread_rng().gen_range(0..1000);
|
||||||
let delay = base_delay.mul_f64(2.0_f64.powi(attempts - 1)) + Duration::from_millis(jitter);
|
let delay = base_delay.mul_f64(2.0_f64.powi(attempts - 1)) + Duration::from_millis(jitter);
|
||||||
|
|
||||||
@@ -169,7 +191,6 @@ impl CHORUSAgent {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Main execution loop for the agent.
|
|
||||||
pub async fn run_loop(&mut self) {
|
pub async fn run_loop(&mut self) {
|
||||||
println!("[AGENT {}] Role: {:?} starting...", self.id, self.role);
|
println!("[AGENT {}] Role: {:?} starting...", self.id, self.role);
|
||||||
|
|
||||||
@@ -179,21 +200,15 @@ impl CHORUSAgent {
|
|||||||
|
|
||||||
loop {
|
loop {
|
||||||
tokio::select! {
|
tokio::select! {
|
||||||
// 1. Periodic Heartbeat (if leader)
|
|
||||||
_ = heartbeat_tick.tick() => {
|
_ = heartbeat_tick.tick() => {
|
||||||
let _ = self.election.send_heartbeat().await;
|
let _ = self.election.send_heartbeat().await;
|
||||||
let heartbeat_payload = serde_json::to_vec(&self.council.local_peer).unwrap();
|
let heartbeat_payload = serde_json::to_vec(&self.council.local_peer).unwrap();
|
||||||
let _ = self.bus.publish("chorus-heartbeat", heartbeat_payload);
|
let _ = self.bus.publish("chorus-heartbeat", heartbeat_payload);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 2. Periodic Election State Machine Step
|
|
||||||
_ = election_tick.tick() => {
|
_ = election_tick.tick() => {
|
||||||
let _ = self.election.run_step().await;
|
let _ = self.election.run_step().await;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 3. Check for direct messages (Mailbox)
|
|
||||||
_ = mailbox_tick.tick() => {
|
_ = mailbox_tick.tick() => {
|
||||||
println!("[AGENT {}] Polling mailbox...", self.id);
|
|
||||||
match self.mailbox.receive_pending(&self.id) {
|
match self.mailbox.receive_pending(&self.id) {
|
||||||
Ok(messages) => {
|
Ok(messages) => {
|
||||||
for msg in messages {
|
for msg in messages {
|
||||||
@@ -203,8 +218,6 @@ impl CHORUSAgent {
|
|||||||
Err(e) => eprintln!("[AGENT {}] Mailbox task error: {}", self.id, e),
|
Err(e) => eprintln!("[AGENT {}] Mailbox task error: {}", self.id, e),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 4. Check P2P Bus for messages
|
|
||||||
msg = self.bus_rx.recv() => {
|
msg = self.bus_rx.recv() => {
|
||||||
if let Some(msg) = msg {
|
if let Some(msg) = msg {
|
||||||
if msg.topic == "chorus-heartbeat" {
|
if msg.topic == "chorus-heartbeat" {
|
||||||
@@ -219,7 +232,6 @@ impl CHORUSAgent {
|
|||||||
} else if msg.topic == "CHORUS/election/v1" || msg.topic == "CHORUS/admin/heartbeat/v1" {
|
} else if msg.topic == "CHORUS/election/v1" || msg.topic == "CHORUS/admin/heartbeat/v1" {
|
||||||
let _ = self.election.process_message(&msg).await;
|
let _ = self.election.process_message(&msg).await;
|
||||||
} else if msg.topic == "chorus-global" {
|
} else if msg.topic == "chorus-global" {
|
||||||
// Check if it is a BeatFrame or a StatusClaim (for P2P sync)
|
|
||||||
if let Ok(frame) = serde_json::from_slice::<BeatFrame>(&msg.payload) {
|
if let Ok(frame) = serde_json::from_slice::<BeatFrame>(&msg.payload) {
|
||||||
self.handle_beat(frame).await;
|
self.handle_beat(frame).await;
|
||||||
}
|
}
|
||||||
@@ -239,8 +251,6 @@ impl CHORUSAgent {
|
|||||||
state: if self.election.is_leader() { "leading".into() } else { "idle".into() },
|
state: if self.election.is_leader() { "leading".into() } else { "idle".into() },
|
||||||
progress: 1.0,
|
progress: 1.0,
|
||||||
};
|
};
|
||||||
|
|
||||||
// 1. Send to Mailbox
|
|
||||||
let msg = Message {
|
let msg = Message {
|
||||||
id: Uuid::new_v4(),
|
id: Uuid::new_v4(),
|
||||||
from_peer: self.id.clone(),
|
from_peer: self.id.clone(),
|
||||||
@@ -251,8 +261,6 @@ impl CHORUSAgent {
|
|||||||
read_at: None,
|
read_at: None,
|
||||||
};
|
};
|
||||||
let _ = self.mailbox.send(&msg);
|
let _ = self.mailbox.send(&msg);
|
||||||
|
|
||||||
// 2. Publish to P2P Bus
|
|
||||||
let payload = serde_json::to_vec(&claim).unwrap();
|
let payload = serde_json::to_vec(&claim).unwrap();
|
||||||
let _ = self.bus.publish("chorus-global", payload);
|
let _ = self.bus.publish("chorus-global", payload);
|
||||||
}
|
}
|
||||||
@@ -269,7 +277,6 @@ impl CHORUSAgent {
|
|||||||
let _ = self.graph.insert_node("task_log", log_entry);
|
let _ = self.graph.insert_node("task_log", log_entry);
|
||||||
let _ = self.graph.commit(&format!("Logged task: {}", msg.topic));
|
let _ = self.graph.commit(&format!("Logged task: {}", msg.topic));
|
||||||
|
|
||||||
// 1. Delegation logic (Leader or Senior Architect)
|
|
||||||
if msg.topic == "task" && (self.election.is_leader() || self.role == Role::SeniorSoftwareArchitect || self.role == Role::Architect) {
|
if msg.topic == "task" && (self.election.is_leader() || self.role == Role::SeniorSoftwareArchitect || self.role == Role::Architect) {
|
||||||
let peers_vec: Vec<Peer> = self.peers.values().cloned().collect();
|
let peers_vec: Vec<Peer> = self.peers.values().cloned().collect();
|
||||||
if !peers_vec.is_empty() {
|
if !peers_vec.is_empty() {
|
||||||
@@ -281,10 +288,14 @@ impl CHORUSAgent {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 2. Execution logic
|
let is_specialized_task = match msg.topic.as_str() {
|
||||||
if msg.topic == "implementation_task" || msg.topic == "execution_task" || msg.topic == "planning_task" {
|
"implementation_task" | "execution_task" | "planning_task" |
|
||||||
|
"review_task" | "test_task" | "security_audit_task" | "documentation_task" => true,
|
||||||
|
_ => false,
|
||||||
|
};
|
||||||
|
|
||||||
|
if is_specialized_task {
|
||||||
let workspace_path = if let Some(mgr) = &self.code_edit {
|
let workspace_path = if let Some(mgr) = &self.code_edit {
|
||||||
println!("[AGENT {}] Preparing workspace for task...", self.id);
|
|
||||||
let _ = mgr.spawn_task_branch(&msg.id.to_string());
|
let _ = mgr.spawn_task_branch(&msg.id.to_string());
|
||||||
let _ = mgr.checkout_branch(&format!("task/{}", msg.id));
|
let _ = mgr.checkout_branch(&format!("task/{}", msg.id));
|
||||||
Some(mgr.repo_path().to_string_lossy().to_string())
|
Some(mgr.repo_path().to_string_lossy().to_string())
|
||||||
@@ -293,9 +304,8 @@ impl CHORUSAgent {
|
|||||||
};
|
};
|
||||||
|
|
||||||
let task_desc = msg.payload["description"].as_str().unwrap_or("No description provided");
|
let task_desc = msg.payload["description"].as_str().unwrap_or("No description provided");
|
||||||
let task_instr = msg.payload["instruction"].as_str().unwrap_or("Execute the task.");
|
let task_instr = msg.payload["instruction"].as_str().unwrap_or("Execute task.");
|
||||||
|
|
||||||
println!("[AGENT {}] Incepting sub-agent for: {}", self.id, task_desc);
|
|
||||||
let reasoning = self.think(task_desc).await;
|
let reasoning = self.think(task_desc).await;
|
||||||
|
|
||||||
let req = TaskRequest {
|
let req = TaskRequest {
|
||||||
@@ -305,9 +315,9 @@ impl CHORUSAgent {
|
|||||||
workspace_path,
|
workspace_path,
|
||||||
timeout_secs: 600,
|
timeout_secs: 600,
|
||||||
};
|
};
|
||||||
|
|
||||||
match self.executor.execute(req).await {
|
match self.executor.execute(req).await {
|
||||||
Ok(res) => {
|
Ok(res) => {
|
||||||
println!("[AGENT {}] Sub-agent task completed.", self.id);
|
|
||||||
let result_entry = serde_json::json!({
|
let result_entry = serde_json::json!({
|
||||||
"id": Uuid::new_v4().to_string(),
|
"id": Uuid::new_v4().to_string(),
|
||||||
"task_id": msg.id.to_string(),
|
"task_id": msg.id.to_string(),
|
||||||
@@ -316,17 +326,12 @@ impl CHORUSAgent {
|
|||||||
"duration_ms": res.duration_ms
|
"duration_ms": res.duration_ms
|
||||||
});
|
});
|
||||||
let _ = self.graph.insert_node("execution_results", result_entry);
|
let _ = self.graph.insert_node("execution_results", result_entry);
|
||||||
let _ = self.graph.commit(&format!("Recorded sub-agent results for task: {}", msg.id));
|
let _ = self.graph.commit(&format!("Recorded results for task: {}", msg.id));
|
||||||
}
|
}
|
||||||
Err(e) => eprintln!("[AGENT {}] Execution error: {}", self.id, e),
|
Err(e) => eprintln!("[AGENT {}] Execution error: {}", self.id, e),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if msg.topic == "security_audit_task" {
|
|
||||||
println!("[AGENT {}] Performing security audit...", self.id);
|
|
||||||
let _reasoning = self.think("Perform security audit on latest implementation").await;
|
|
||||||
}
|
|
||||||
|
|
||||||
let _ = self.mailbox.mark_read(msg.id);
|
let _ = self.mailbox.mark_read(msg.id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -66,12 +66,8 @@ impl DoltGraph {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Execute a Dolt command with the specified arguments.
|
/// Execute a Dolt command with the specified arguments and return stdout.
|
||||||
///
|
fn run_cmd_capture(&self, args: &[&str]) -> Result<String, GraphError> {
|
||||||
/// This helper centralises command execution and error handling. It runs `dolt` with the
|
|
||||||
/// provided argument slice, captures stdout/stderr, and returns `GraphError::CommandFailed`
|
|
||||||
/// when the command exits with a non‑zero status.
|
|
||||||
fn run_cmd(&self, args: &[&str]) -> Result<(), GraphError> {
|
|
||||||
let output = Command::new("dolt")
|
let output = Command::new("dolt")
|
||||||
.args(args)
|
.args(args)
|
||||||
.current_dir(&self.repo_path)
|
.current_dir(&self.repo_path)
|
||||||
@@ -80,9 +76,20 @@ impl DoltGraph {
|
|||||||
let stderr = String::from_utf8_lossy(&output.stderr);
|
let stderr = String::from_utf8_lossy(&output.stderr);
|
||||||
return Err(GraphError::CommandFailed(stderr.to_string()));
|
return Err(GraphError::CommandFailed(stderr.to_string()));
|
||||||
}
|
}
|
||||||
|
Ok(String::from_utf8_lossy(&output.stdout).to_string())
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Execute a Dolt command with the specified arguments.
|
||||||
|
fn run_cmd(&self, args: &[&str]) -> Result<(), GraphError> {
|
||||||
|
self.run_cmd_capture(args)?;
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Executes a SQL query and returns the raw string result.
|
||||||
|
pub fn query(&self, sql: &str) -> Result<String, GraphError> {
|
||||||
|
self.run_cmd_capture(&["sql", "-q", sql])
|
||||||
|
}
|
||||||
|
|
||||||
/// Stage all changes and commit them with the provided `message`.
|
/// Stage all changes and commit them with the provided `message`.
|
||||||
///
|
///
|
||||||
/// The method first runs `dolt add -A` to stage modifications, then `dolt commit -m`.
|
/// The method first runs `dolt add -A` to stage modifications, then `dolt commit -m`.
|
||||||
|
|||||||
@@ -0,0 +1 @@
|
|||||||
|
e57a9792c601cd96
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"rustc":15597765236515928571,"features":"[]","declared_features":"[]","target":11189401877460069322,"profile":17672942494452627365,"path":15586282002135408897,"deps":[[303782240219042746,"chrs_council",false,12015880436388741738],[2435133206607685902,"chrs_agent",false,7027476187743864158],[3856126590694406759,"chrono",false,10274387264389562704],[6743343474447045702,"chrs_mail",false,12213287967330248873],[9462185088798423431,"uuid",false,17971560908104734438],[12891030758458664808,"tokio",false,6922689052733440109],[13795362694956882968,"serde_json",false,10211988446099616948]],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/chrs-big-council-demo-7ccd79fb1a9fe3b5/dep-bin-chrs-big-council-demo","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}
|
||||||
Binary file not shown.
@@ -0,0 +1 @@
|
|||||||
|
This file has an mtime of when this was started.
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
{"$message_type":"diagnostic","message":"unused imports: `Mailbox` and `Message`","code":{"code":"unused_imports","explanation":null},"level":"warning","spans":[{"file_name":"chrs-council-demo/src/main.rs","byte_start":69,"byte_end":76,"line_start":3,"line_end":3,"column_start":17,"column_end":24,"is_primary":true,"text":[{"text":"use chrs_mail::{Mailbox, Message};","highlight_start":17,"highlight_end":24}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"chrs-council-demo/src/main.rs","byte_start":78,"byte_end":85,"line_start":3,"line_end":3,"column_start":26,"column_end":33,"is_primary":true,"text":[{"text":"use chrs_mail::{Mailbox, Message};","highlight_start":26,"highlight_end":33}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`#[warn(unused_imports)]` on by default","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"remove the whole `use` item","code":null,"level":"help","spans":[{"file_name":"chrs-council-demo/src/main.rs","byte_start":53,"byte_end":88,"line_start":3,"line_end":4,"column_start":1,"column_end":1,"is_primary":true,"text":[{"text":"use chrs_mail::{Mailbox, Message};","highlight_start":1,"highlight_end":35},{"text":"use chrono::Utc;","highlight_start":1,"highlight_end":1}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: unused imports: `Mailbox` and `Message`\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0mchrs-council-demo/src/main.rs:3:17\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m3\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0muse chrs_mail::{Mailbox, Message};\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^^^^^\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^^^^^\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m= \u001b[0m\u001b[0m\u001b[1mnote\u001b[0m\u001b[0m: `#[warn(unused_imports)]` on by default\u001b[0m\n\n"}
|
{"$message_type":"diagnostic","message":"unused imports: `Mailbox` and `Message`","code":{"code":"unused_imports","explanation":null},"level":"warning","spans":[{"file_name":"chrs-council-demo/src/main.rs","byte_start":69,"byte_end":76,"line_start":3,"line_end":3,"column_start":17,"column_end":24,"is_primary":true,"text":[{"text":"use chrs_mail::{Mailbox, Message};","highlight_start":17,"highlight_end":24}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"chrs-council-demo/src/main.rs","byte_start":78,"byte_end":85,"line_start":3,"line_end":3,"column_start":26,"column_end":33,"is_primary":true,"text":[{"text":"use chrs_mail::{Mailbox, Message};","highlight_start":26,"highlight_end":33}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`#[warn(unused_imports)]` on by default","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"remove the whole `use` item","code":null,"level":"help","spans":[{"file_name":"chrs-council-demo/src/main.rs","byte_start":53,"byte_end":88,"line_start":3,"line_end":4,"column_start":1,"column_end":1,"is_primary":true,"text":[{"text":"use chrs_mail::{Mailbox, Message};","highlight_start":1,"highlight_end":35},{"text":"use chrono::Utc;","highlight_start":1,"highlight_end":1}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: unused imports: `Mailbox` and `Message`\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0mchrs-council-demo/src/main.rs:3:17\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m3\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0muse chrs_mail::{Mailbox, Message};\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^^^^^\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^^^^^\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m= \u001b[0m\u001b[0m\u001b[1mnote\u001b[0m\u001b[0m: `#[warn(unused_imports)]` on by default\u001b[0m\n\n"}
|
||||||
{"$message_type":"diagnostic","message":"unused import: `chrono::Utc`","code":{"code":"unused_imports","explanation":null},"level":"warning","spans":[{"file_name":"chrs-council-demo/src/main.rs","byte_start":92,"byte_end":103,"line_start":4,"line_end":4,"column_start":5,"column_end":16,"is_primary":true,"text":[{"text":"use chrono::Utc;","highlight_start":5,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"remove the whole `use` item","code":null,"level":"help","spans":[{"file_name":"chrs-council-demo/src/main.rs","byte_start":88,"byte_end":105,"line_start":4,"line_end":5,"column_start":1,"column_end":1,"is_primary":true,"text":[{"text":"use chrono::Utc;","highlight_start":1,"highlight_end":17},{"text":"use std::fs;","highlight_start":1,"highlight_end":1}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: unused import: `chrono::Utc`\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0mchrs-council-demo/src/main.rs:4:5\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m4\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0muse chrono::Utc;\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^^^^^^^^^\u001b[0m\n\n"}
|
{"$message_type":"diagnostic","message":"unused import: `chrono::Utc`","code":{"code":"unused_imports","explanation":null},"level":"warning","spans":[{"file_name":"chrs-council-demo/src/main.rs","byte_start":92,"byte_end":103,"line_start":4,"line_end":4,"column_start":5,"column_end":16,"is_primary":true,"text":[{"text":"use chrono::Utc;","highlight_start":5,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"remove the whole `use` item","code":null,"level":"help","spans":[{"file_name":"chrs-council-demo/src/main.rs","byte_start":88,"byte_end":105,"line_start":4,"line_end":5,"column_start":1,"column_end":1,"is_primary":true,"text":[{"text":"use chrono::Utc;","highlight_start":1,"highlight_end":17},{"text":"use std::fs;","highlight_start":1,"highlight_end":1}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: unused import: `chrono::Utc`\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0mchrs-council-demo/src/main.rs:4:5\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m4\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0muse chrono::Utc;\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^^^^^^^^^\u001b[0m\n\n"}
|
||||||
{"$message_type":"diagnostic","message":"unused import: `uuid::Uuid`","code":{"code":"unused_imports","explanation":null},"level":"warning","spans":[{"file_name":"chrs-council-demo/src/main.rs","byte_start":179,"byte_end":189,"line_start":8,"line_end":8,"column_start":5,"column_end":15,"is_primary":true,"text":[{"text":"use uuid::Uuid;","highlight_start":5,"highlight_end":15}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"remove the whole `use` item","code":null,"level":"help","spans":[{"file_name":"chrs-council-demo/src/main.rs","byte_start":175,"byte_end":191,"line_start":8,"line_end":9,"column_start":1,"column_end":1,"is_primary":true,"text":[{"text":"use uuid::Uuid;","highlight_start":1,"highlight_end":16},{"text":"","highlight_start":1,"highlight_end":1}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: unused import: `uuid::Uuid`\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0mchrs-council-demo/src/main.rs:8:5\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m8\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0muse uuid::Uuid;\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^^^^^^^^\u001b[0m\n\n"}
|
{"$message_type":"diagnostic","message":"unused import: `uuid::Uuid`","code":{"code":"unused_imports","explanation":null},"level":"warning","spans":[{"file_name":"chrs-council-demo/src/main.rs","byte_start":179,"byte_end":189,"line_start":8,"line_end":8,"column_start":5,"column_end":15,"is_primary":true,"text":[{"text":"use uuid::Uuid;","highlight_start":5,"highlight_end":15}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"remove the whole `use` item","code":null,"level":"help","spans":[{"file_name":"chrs-council-demo/src/main.rs","byte_start":175,"byte_end":191,"line_start":8,"line_end":9,"column_start":1,"column_end":1,"is_primary":true,"text":[{"text":"use uuid::Uuid;","highlight_start":1,"highlight_end":16},{"text":"","highlight_start":1,"highlight_end":1}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: unused import: `uuid::Uuid`\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0mchrs-council-demo/src/main.rs:8:5\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m8\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0muse uuid::Uuid;\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^^^^^^^^\u001b[0m\n\n"}
|
||||||
{"$message_type":"diagnostic","message":"variable does not need to be mutable","code":{"code":"unused_mut","explanation":null},"level":"warning","spans":[{"file_name":"chrs-council-demo/src/main.rs","byte_start":634,"byte_end":647,"line_start":23,"line_end":23,"column_start":9,"column_end":22,"is_primary":true,"text":[{"text":" let mut architect = CHORUSAgent::init(\"agent-architect\", Role::Architect, &base_path.join(\"architect\")).await?;","highlight_start":9,"highlight_end":22}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`#[warn(unused_mut)]` on by default","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"remove this `mut`","code":null,"level":"help","spans":[{"file_name":"chrs-council-demo/src/main.rs","byte_start":634,"byte_end":638,"line_start":23,"line_end":23,"column_start":9,"column_end":13,"is_primary":true,"text":[{"text":" let mut architect = CHORUSAgent::init(\"agent-architect\", Role::Architect, &base_path.join(\"architect\")).await?;","highlight_start":9,"highlight_end":13}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: variable does not need to be mutable\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0mchrs-council-demo/src/main.rs:23:9\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m23\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m let mut architect = CHORUSAgent::init(\"agent-architect\", Role::Architect, &base_path.join(\"architect\")).await?;\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m----\u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^^^^^^^\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12mhelp: remove this `mut`\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m= \u001b[0m\u001b[0m\u001b[1mnote\u001b[0m\u001b[0m: `#[warn(unused_mut)]` on by default\u001b[0m\n\n"}
|
{"$message_type":"diagnostic","message":"variable does not need to be mutable","code":{"code":"unused_mut","explanation":null},"level":"warning","spans":[{"file_name":"chrs-council-demo/src/main.rs","byte_start":634,"byte_end":647,"line_start":23,"line_end":23,"column_start":9,"column_end":22,"is_primary":true,"text":[{"text":" let mut architect = CHORUSAgent::init(\"agent-architect\", Role::Architect, &base_path.join(\"architect\"), None).await?;","highlight_start":9,"highlight_end":22}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`#[warn(unused_mut)]` on by default","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"remove this `mut`","code":null,"level":"help","spans":[{"file_name":"chrs-council-demo/src/main.rs","byte_start":634,"byte_end":638,"line_start":23,"line_end":23,"column_start":9,"column_end":13,"is_primary":true,"text":[{"text":" let mut architect = CHORUSAgent::init(\"agent-architect\", Role::Architect, &base_path.join(\"architect\"), None).await?;","highlight_start":9,"highlight_end":13}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: variable does not need to be mutable\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0mchrs-council-demo/src/main.rs:23:9\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m23\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m let mut architect = CHORUSAgent::init(\"agent-architect\", Role::Architect, &base_path.join(\"architect\"), None).await?;\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m----\u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^^^^^^^\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12mhelp: remove this `mut`\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m= \u001b[0m\u001b[0m\u001b[1mnote\u001b[0m\u001b[0m: `#[warn(unused_mut)]` on by default\u001b[0m\n\n"}
|
||||||
{"$message_type":"diagnostic","message":"variable does not need to be mutable","code":{"code":"unused_mut","explanation":null},"level":"warning","spans":[{"file_name":"chrs-council-demo/src/main.rs","byte_start":750,"byte_end":763,"line_start":24,"line_end":24,"column_start":9,"column_end":22,"is_primary":true,"text":[{"text":" let mut developer = CHORUSAgent::init(\"agent-developer\", Role::Developer, &base_path.join(\"developer\")).await?;","highlight_start":9,"highlight_end":22}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"remove this `mut`","code":null,"level":"help","spans":[{"file_name":"chrs-council-demo/src/main.rs","byte_start":750,"byte_end":754,"line_start":24,"line_end":24,"column_start":9,"column_end":13,"is_primary":true,"text":[{"text":" let mut developer = CHORUSAgent::init(\"agent-developer\", Role::Developer, &base_path.join(\"developer\")).await?;","highlight_start":9,"highlight_end":13}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: variable does not need to be mutable\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0mchrs-council-demo/src/main.rs:24:9\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m24\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m let mut developer = CHORUSAgent::init(\"agent-developer\", Role::Developer, &base_path.join(\"developer\")).await?;\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m----\u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^^^^^^^\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12mhelp: remove this `mut`\u001b[0m\n\n"}
|
{"$message_type":"diagnostic","message":"variable does not need to be mutable","code":{"code":"unused_mut","explanation":null},"level":"warning","spans":[{"file_name":"chrs-council-demo/src/main.rs","byte_start":756,"byte_end":769,"line_start":24,"line_end":24,"column_start":9,"column_end":22,"is_primary":true,"text":[{"text":" let mut developer = CHORUSAgent::init(\"agent-developer\", Role::Developer, &base_path.join(\"developer\"), None).await?;","highlight_start":9,"highlight_end":22}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"remove this `mut`","code":null,"level":"help","spans":[{"file_name":"chrs-council-demo/src/main.rs","byte_start":756,"byte_end":760,"line_start":24,"line_end":24,"column_start":9,"column_end":13,"is_primary":true,"text":[{"text":" let mut developer = CHORUSAgent::init(\"agent-developer\", Role::Developer, &base_path.join(\"developer\"), None).await?;","highlight_start":9,"highlight_end":13}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: variable does not need to be mutable\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0mchrs-council-demo/src/main.rs:24:9\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m24\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m let mut developer = CHORUSAgent::init(\"agent-developer\", Role::Developer, &base_path.join(\"developer\"), None).await?;\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m----\u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^^^^^^^\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12mhelp: remove this `mut`\u001b[0m\n\n"}
|
||||||
{"$message_type":"diagnostic","message":"variable does not need to be mutable","code":{"code":"unused_mut","explanation":null},"level":"warning","spans":[{"file_name":"chrs-council-demo/src/main.rs","byte_start":866,"byte_end":878,"line_start":25,"line_end":25,"column_start":9,"column_end":21,"is_primary":true,"text":[{"text":" let mut security = CHORUSAgent::init(\"agent-security\", Role::Security, &base_path.join(\"security\")).await?;","highlight_start":9,"highlight_end":21}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"remove this `mut`","code":null,"level":"help","spans":[{"file_name":"chrs-council-demo/src/main.rs","byte_start":866,"byte_end":870,"line_start":25,"line_end":25,"column_start":9,"column_end":13,"is_primary":true,"text":[{"text":" let mut security = CHORUSAgent::init(\"agent-security\", Role::Security, &base_path.join(\"security\")).await?;","highlight_start":9,"highlight_end":13}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: variable does not need to be mutable\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0mchrs-council-demo/src/main.rs:25:9\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m25\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m let mut security = CHORUSAgent::init(\"agent-security\", Role::Security, &base_path.join(\"security\")).await?;\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m----\u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^^^^^^\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12mhelp: remove this `mut`\u001b[0m\n\n"}
|
{"$message_type":"diagnostic","message":"variable does not need to be mutable","code":{"code":"unused_mut","explanation":null},"level":"warning","spans":[{"file_name":"chrs-council-demo/src/main.rs","byte_start":878,"byte_end":890,"line_start":25,"line_end":25,"column_start":9,"column_end":21,"is_primary":true,"text":[{"text":" let mut security = CHORUSAgent::init(\"agent-security\", Role::Security, &base_path.join(\"security\"), None).await?;","highlight_start":9,"highlight_end":21}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"remove this `mut`","code":null,"level":"help","spans":[{"file_name":"chrs-council-demo/src/main.rs","byte_start":878,"byte_end":882,"line_start":25,"line_end":25,"column_start":9,"column_end":13,"is_primary":true,"text":[{"text":" let mut security = CHORUSAgent::init(\"agent-security\", Role::Security, &base_path.join(\"security\"), None).await?;","highlight_start":9,"highlight_end":13}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: variable does not need to be mutable\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0mchrs-council-demo/src/main.rs:25:9\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m25\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m let mut security = CHORUSAgent::init(\"agent-security\", Role::Security, &base_path.join(\"security\"), None).await?;\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m----\u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^^^^^^\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12mhelp: remove this `mut`\u001b[0m\n\n"}
|
||||||
{"$message_type":"diagnostic","message":"6 warnings emitted","code":null,"level":"warning","spans":[],"children":[],"rendered":"\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: 6 warnings emitted\u001b[0m\n\n"}
|
{"$message_type":"diagnostic","message":"6 warnings emitted","code":null,"level":"warning","spans":[],"children":[],"rendered":"\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: 6 warnings emitted\u001b[0m\n\n"}
|
||||||
|
|||||||
@@ -0,0 +1,5 @@
|
|||||||
|
/home/tony/rust/projects/reset/CHORUS/target/debug/deps/libchrs_big_council_demo-7ccd79fb1a9fe3b5.rmeta: chrs-big-council-demo/src/main.rs
|
||||||
|
|
||||||
|
/home/tony/rust/projects/reset/CHORUS/target/debug/deps/chrs_big_council_demo-7ccd79fb1a9fe3b5.d: chrs-big-council-demo/src/main.rs
|
||||||
|
|
||||||
|
chrs-big-council-demo/src/main.rs:
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user