mirror of
https://github.com/fabro-sh/fabro.git
synced 2026-09-14 23:22:51 +00:00
Extends the workspace clippy.toml — which already bans std:🧵:sleep, std:🧵:spawn, and std::process::Command::new on Tokio paths — with: - disallowed-types: std::io::{Read, Write, BufRead, BufReader, BufWriter} and std::net::{TcpStream, TcpListener, UdpSocket} - disallowed-methods: std::io::{stdin, stdout, stderr} Non-blocking std::io items (Error, ErrorKind, Result, IsTerminal, Cursor) remain allowed. std::fs is intentionally deferred. Annotates ~24 pre-existing sync call sites with #[expect(..., reason = "...")] matching the established pattern. All annotations describe why blocking I/O is intentional in that context (sync CLI command, test helper, pre-fork flush, etc.), so a future conversion to async will surface as an unfulfilled lint expectation instead of silently drifting. Fixes one real Tokio-path issue surfaced by the new lint: fabro-cli's server-start daemon-health poller (try_connect) was a sync fn called from async execute_daemon; std::net::TcpStream::connect_timeout blocked a Tokio worker for up to 100ms per poll iteration. Converted to tokio::net::{TcpStream, UnixStream} with tokio::time::timeout. One follow-up flagged in-code: fabro-agent/src/cli.rs's JSON event writer uses std::io::stdout() inside tokio::spawn. Annotated with a FOLLOW-UP reason pointing at tokio::io::stdout; left unchanged since volume is low and scope exceeded this pass. Verified: clippy clean, cargo +nightly fmt --check clean, full nextest workspace run (4131 passed, 182 skipped). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| fabro-agent | ||
| fabro-api | ||
| fabro-auth | ||
| fabro-checkpoint | ||
| fabro-cli | ||
| fabro-config | ||
| fabro-core | ||
| fabro-devcontainer | ||
| fabro-github | ||
| fabro-graphviz | ||
| fabro-hooks | ||
| fabro-http | ||
| fabro-install | ||
| fabro-interview | ||
| fabro-llm | ||
| fabro-macros | ||
| fabro-mcp | ||
| fabro-model | ||
| fabro-oauth | ||
| fabro-proc | ||
| fabro-retro | ||
| fabro-sandbox | ||
| fabro-server | ||
| fabro-slack | ||
| fabro-spa | ||
| fabro-store | ||
| fabro-telemetry | ||
| fabro-template | ||
| fabro-test | ||
| fabro-tracker | ||
| fabro-types | ||
| fabro-util | ||
| fabro-validate | ||
| fabro-vault | ||
| fabro-workflow | ||