mirror of
https://github.com/yogeshojha/rengine.git
synced 2026-10-20 15:21:30 +02:00
dnsx drops 20–60% of answers under load and exits 0, so a subdomain stage could store half its hosts unresolved and still read Success. Resolution now runs in shuffled batches (dns_batch_size) with the thread count clamped to the range the resolver actually keeps up with; a batch answering far below the median of its peers is retried, and one that stops producing is abandoned after dns_idle_timeout instead of the whole run waiting on a total ceiling. What the resolver managed — batches, retries, stalls — is reported, never assumed. StageResult gains warnings + partial. The stage runner records a new PARTIAL activity status carrying the notes, logs the stage outcome as a warning and emits it live. The run ribbon paints a partial stage amber with a triangle, the stage dialog shows the note in a warning box, and activityRan() is the one "did it run" test so progress and summaries count partial as done. reverse_dns reports the same way when dnsx times out or is missing. stream_json yields a StreamOutcome (return code, timed_out, record count, stderr) instead of a bare iterator, kills on idle as well as on total time, and a timed-out run keeps the records that landed instead of discarding them. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012YK61xuAJGMhq1uniLhHX5
12 lines
305 B
Python
12 lines
305 B
Python
from tools.runner.executor import CLIToolRunner, ToolExecutionError, ToolNotFoundError
|
|
from tools.runner.models import OutputFormat, StreamOutcome, ToolResult
|
|
|
|
__all__ = [
|
|
"CLIToolRunner",
|
|
"OutputFormat",
|
|
"StreamOutcome",
|
|
"ToolExecutionError",
|
|
"ToolNotFoundError",
|
|
"ToolResult",
|
|
]
|