feat: enhance strictness of Rust compiler settings and improve code quality by treating warnings as errors

This commit is contained in:
asepharyana
2026-07-13 06:22:31 +07:00
parent 3f5f27c339
commit 5334c2501b
20 changed files with 95 additions and 108 deletions
-8
View File
@@ -44,7 +44,6 @@ pub struct ToolCtx {
pub workspaces: Vec<PathBuf>,
pub session_dir: PathBuf,
pub memory_dir: PathBuf,
pub _download_dir: PathBuf,
pub worktrees_dir: PathBuf,
pub dir_cache: std::sync::Arc<tokio::sync::RwLock<super::app::state::misc::DirCache>>,
pub origin: crate::app::state::types::Origin,
@@ -87,7 +86,6 @@ pub struct ToolCtxBuilder {
pub workspaces: Vec<PathBuf>,
pub session_dir: PathBuf,
pub memory_dir: PathBuf,
pub download_dir: PathBuf,
pub worktrees_dir: PathBuf,
pub dir_cache: std::sync::Arc<tokio::sync::RwLock<super::app::state::misc::DirCache>>,
pub origin: crate::app::state::types::Origin,
@@ -103,7 +101,6 @@ impl Default for ToolCtxBuilder {
workspaces: Vec::new(),
session_dir: PathBuf::new(),
memory_dir: PathBuf::new(),
download_dir: PathBuf::new(),
worktrees_dir: PathBuf::new(),
dir_cache: std::sync::Arc::new(tokio::sync::RwLock::new(super::app::state::misc::DirCache::new())),
origin: crate::app::state::types::Origin::Main,
@@ -122,9 +119,6 @@ impl ToolCtxBuilder {
pub fn workspaces(mut self, v: Vec<PathBuf>) -> Self { self.workspaces = v; self }
/// Set the origin (main process vs. daemon-attached).
pub fn origin(mut self, v: crate::app::state::types::Origin) -> Self { self.origin = v; self }
/// Set the lsp_manager.
#[allow(dead_code)]
pub fn lsp_manager(mut self, v: Arc<Mutex<crate::app::lsp::LspManager>>) -> Self { self.lsp_manager = v; self }
/// Set the workflow-level findings sharing Arc (for subagent-to-subagent
/// communication within a workflow run).
pub fn workflow_findings(mut self, v: Option<Arc<Mutex<Vec<String>>>>) -> Self { self.workflow_findings = v; self }
@@ -134,7 +128,6 @@ impl ToolCtxBuilder {
workspaces: self.workspaces,
session_dir: self.session_dir,
memory_dir: self.memory_dir,
_download_dir: self.download_dir,
worktrees_dir: self.worktrees_dir,
dir_cache: self.dir_cache,
origin: self.origin,
@@ -228,7 +221,6 @@ pub fn tool_defs(tools: &[Box<dyn Tool>]) -> Vec<crate::dto::provider::request::
/// Return: the canonical absolute path, or an error if the workspace index is invalid
/// or the resolved path falls outside all workspace roots.
pub fn resolve_path(workspaces: &[PathBuf], rel: &str) -> Result<PathBuf> {
let _parts: Vec<&str> = rel.splitn(2, '/').collect();
let (ws_idx, path) = if rel.starts_with('[') {
let close = rel.find(']').ok_or_else(|| anyhow::anyhow!("invalid workspace prefix"))?;
let idx: usize = rel[1..close].parse().map_err(|_| anyhow::anyhow!("invalid workspace index"))?;
+3 -3
View File
@@ -39,10 +39,10 @@ impl Tool for PlanEnter {
///
/// Return: fixed acknowledgement string on success; error if either arg is missing.
fn run(&self, _ctx: &ToolCtx, args: &Value) -> Result<String> {
let _plan = args.get("plan")
let _ = args.get("plan")
.and_then(|v| v.as_str())
.ok_or_else(|| anyhow!("missing required argument: plan"))?;
let _sign_off = args.get("sign_off")
let _ = args.get("sign_off")
.and_then(|v| v.as_str())
.ok_or_else(|| anyhow!("missing required argument: sign_off"))?;
Ok("plan recorded".to_string())
@@ -78,7 +78,7 @@ impl Tool for PlanReady {
///
/// Return: fixed "ready to execute" string on success; error if `confirmation` is missing.
fn run(&self, _ctx: &ToolCtx, args: &Value) -> Result<String> {
let _confirmation = args.get("confirmation")
let _ = args.get("confirmation")
.and_then(|v| v.as_str())
.ok_or_else(|| anyhow!("missing required argument: confirmation"))?;
Ok("ready to execute".to_string())
+2 -4
View File
@@ -63,8 +63,7 @@ impl Tool for Bash {
.and_then(|v| v.as_str())
.ok_or_else(|| anyhow!("missing required argument: command"))?
.to_string();
let _description = args.get("description").and_then(|v| v.as_str()).unwrap_or("");
let timeout_ms = args.get("timeout").and_then(|v| v.as_u64()).unwrap_or(120000).min(600000);
let timeout_ms = args.get("timeout").and_then(|v| v.as_u64()).unwrap_or(120_000).min(600_000);
// Only gate destructive git operations; credential reads are allowed
// locally since the AI needs access, and the real threat is committing
// secrets to a public repo (handled by git pre-commit hooks / user).
@@ -100,9 +99,8 @@ impl Tool for Bash {
} else {
format!("{}\n\nExit code: 0 ({:.2}s)", trimmed, elapsed)
});
} else {
return Ok(format!("{}\n\nExit code: {} ({:.2}s)", trimmed, status.code().unwrap_or(-1), elapsed));
}
return Ok(format!("{}\n\nExit code: {} ({:.2}s)", trimmed, status.code().unwrap_or(-1), elapsed));
}
Ok(None) => {
if start.elapsed() > timeout {