Repository navigation
Add 100-agent harness stress profiling - #177
Conversation
Co-authored-by: Medulla <medulla@tinyhumans.ai>
Co-authored-by: Medulla <medulla@tinyhumans.ai>
Co-authored-by: Medulla <medulla@tinyhumans.ai>
|
Warning Review limit reached
This review includes 15 billable files and costs up to $3.75. Or wait 36 minutes for your next included review. View limit detailsLimit details: You’ve used the included review currently available. Review configuration: ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Advanced Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (15)
Comment |
Tiny Sweeper reviewTiny Sweeper reviewed this change across 6 lane(s) and found 2 active actionable finding(s). Detailed lane evidence and any incomplete work are listed below. State: Ready for maintainer review Review snapshot
Completeness: Complete What changedThe review could not produce a supported behavioral summary; inspect the cited changed surface and lane details below. FeaturesNone identified with supported citations. TestsNo supported feature-to-test mapping was produced. Test execution is not inferred. Findings
Resolved this pass
Before mergeNone. How this fits togetherflowchart LR
n0["smoke_sink_clone_shares_state<br/>changed"]:::changed
n1["subscribe"]:::impacted
n2["new"]:::impacted
n0 -->|calls| n1
n0 -->|tests| n1
n0 -->|calls| n2
n0 -->|tests| n2
classDef changed fill:#0d4429,stroke:#238636,color:#e6edf3
classDef impacted fill:#161b22,stroke:#6e7681,color:#c9d1d9
classDef flagged fill:#5a1e02,stroke:#d93f0b,color:#ffffff
classDef blocking fill:#67060c,stroke:#f85149,color:#ffffff
Agent review detailscritique
security
tests
commits
description
e2e
Evidence and run details
|
There was a problem hiding this comment.
tinysweeper found nothing blocking. Approving.
$0.0597 · 896,737 in / 32,150 out · 50,469 cached (6%) · ladder/vectors, gpt-5.6-luna, deepseek/deepseek-v4-flash, deepseek-v4-flash · 1,173 embedded
critique: $0.0313 · 468,079 in / 12,496 out · 22,325 cached (5%) · gpt-5.6-luna, deepseek/deepseek-v4-flash
security: $0.0237 · 365,016 in / 6,165 out · 10,992 cached (3%) · gpt-5.6-luna
tests: $0.0033 · 28,252 in / 4,383 out · 0 cached (0%) · deepseek/deepseek-v4-flash
description: $0.0006 · 19,130 in / 6,705 out · 1,024 cached (5%) · deepseek-v4-flash
…ilure tests The sample counter in ProcessProfiler was incremented on every sampling attempt, even when the RSS query failed, which inflated the count on systems where memory information is unavailable. The counter now only increments when a successful RSS reading is obtained, and the initial count is set to one only if the initial RSS value is present. Additionally, a new test verifies that both JournalSink and JsonlSink correctly report append failures when their underlying backends are unavailable. Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
The test for sample count now only runs on Linux, where profiling samples are reliably collected. On other platforms the assertion verifies that no samples are recorded, preventing false failures in cross-platform test runs. Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
There was a problem hiding this comment.
tinysweeper found nothing blocking. Approving.
$0.0199 · 248,293 in / 15,262 out · 18,338 cached (7%) · ladder/vectors, gpt-5.6-luna, deepseek/deepseek-v4-flash · 1,177 embedded
critique: $0.0082 · 106,236 in / 7,808 out · 12,704 cached (12%) · gpt-5.6-luna, deepseek/deepseek-v4-flash
security: $0.0052 · 81,319 in / 1,655 out · 5,634 cached (7%) · gpt-5.6-luna
tests: $0.0027 · 26,324 in / 2,034 out · 0 cached (0%) · deepseek/deepseek-v4-flash
description: $0.0017 · 17,257 in / 949 out · 0 cached (0%) · deepseek/deepseek-v4-flash
| }); | ||
| let worker = Arc::clone(&shared); | ||
| let interval = sample_interval.max(Duration::from_millis(1)); | ||
| let sampler = std::thread::Builder::new() |
There was a problem hiding this comment.
Account for RSS when sampler creation fails
If spawn fails (for example, because the process has exhausted its thread limit), .ok() leaves sampler as None. finish still captures final_snapshot, but never adds its RSS to shared.peak_rss_bytes or sample_count; the reported peak therefore remains the initial RSS and can miss the entire workload's memory increase. Either return the thread-creation error or fold the final snapshot into the peak and sample count regardless of whether a sampler thread was created.
[RULE] unchecked-resource-failure ·
…egistry refactor(subagents): remove registry forwarding shim
Summary
Performance
For 100 concurrent agents with 100 local mock runs each:
These are single-host measurements of harness overhead with a deterministic local mock provider. The checked-in driver supports repeatable JSON output for machine-specific comparisons.
Validation
cargo fmt --all -- --checkcargo test --workspacecargo clippy --workspace --all-targets -- -D warningscargo test -p tinyagents-integration-tests --test harness_stress --release -- --ignored --nocaptureoff,count, andrecordobservability modesgit diff --check upstream/main...HEADThe explicit ignored capacity test successfully ran 100 concurrent agents and 2,000 total harness invocations.