Changelog

All notable changes to this project will be documented in this file.

v0.2.1 — Live Dashboard Fixes

Date: 2026-06-06

  • Live Dashboard (all 10 test types): All patterns now emit progress at least every ~0.5 s via a time-based throttle. Previously, Ramp and Stress blocked up to 30 s between updates. All 8 engine patterns switched from asyncio.gather to add_done_callback + asyncio.as_completed so the dashboard updates as each response arrives.
  • BreakpointPattern Probe Fixed: The internal _probe() coroutine previously used asyncio.gather and blocked silently for up to 5 s per binary-search probe (RPS × 5 s). Now uses add_done_callback + asyncio.as_completed so progress emits throughout each probe.
  • Rate Limit 50–60 s Delay Fixed: The task-dispatch loop now emits a sent N/M progress update per request. Cooldown ticks every second with a countdown label. Previously the dashboard was silent for the entire 60 s phase.
  • Accurate Progress Bar: total_requests in rate limit tests is always the full cumulative total (cap + 2×cap) so the bar never resets to 0% when Phase 2 starts.
  • Client-Side Elapsed Timer: A 1 s setInterval in the browser ticks the elapsed counter independently, so it never freezes between WebSocket messages.
  • Fluid Status Chart: Status-code doughnut now does incremental chart.update() instead of destroy + recreate, eliminating jank during rapid updates.
  • Tests: 27 new tests in test_load_patterns.py covering throttle behaviour, _safe_done_callback, and per-pattern liveness for all 8 engine patterns (Burst, Ramp, Load, Stress, Spike, Soak, Breakpoint, Custom). Additional rate limit tests for live progress and cumulative totals. 177 tests total, all passing.

v0.2.0 — Rate Limit Redesign

Date: 2026-06-02

  • Rate Limit Redesign: Complete rewrite of the Rate Limit pattern. Unit changed from req/s to req/min. Old burst+ramp approach replaced with a deterministic 2-phase validation:
    1. Phase 1 — sends exactly rate_limit_cap req/min for 60 s (at the stated limit)
    2. Cooldown — waits 15 s for the sliding window to reset
    3. Phase 2 — sends 2 × rate_limit_cap req/min for 60 s (deliberately exceeds the limit)
  • Verdict System: Each run now returns one of three outcomes: working, not_working, or too_strict.
  • Live Phase Dashboard: Browser UI shows the current phase label and description in real time during the test.
  • Report: HTML report section renamed to "Rate Limit Validation" with a phase-summary bar chart and a prominent verdict banner.
  • Removed rate_limit_requests config field — only rate_limit_cap (req/min) remains.
  • Tests: 26 new unit tests for the rate limit engine covering verdict logic, phase mechanics, progress callbacks, and cancellation.

v0.1.1 — Initial Release

Date: 2026-05-30

  • Initial PyPI Release: The first public release of overload-cli.
  • Postman Collection Support: Native parsing of Postman Collections (v2.0.0 and v2.1.0) without conversion.
  • Web UI: Launched the interactive Browser UI using FastAPI and Vanilla JS for visual test configuration.
  • 10 Load Patterns: Included Burst, Load, Stress, Spike, Soak, Ramp, Breakpoint, Custom, Rate Limit, and Sequential testing profiles.
  • Authentication: Full support for Postman auth inheritance, Basic Auth, Bearer tokens, API Keys, and OAuth2 Client Credentials flow.
  • Dynamic Variables: Integration with Postman dynamic variables ($randomInt, $guid, etc.).
  • CI/CD Assertions: Implemented threshold evaluation for pipeline gating.
  • HTML Reports: Auto-generating standalone HTML reports with Chart.js visualizations.
  • Export Formats: JSON, CSV, and JUnit XML outputs.