sparckles
Robyn
Blog
Docs
Changelog
Blog
Docs
Changelog
Overview
Branches
Benchmarks
Runs
Performance History
Latest Results
[pre-commit.ci] pre-commit autoupdate updates: - [github.com/astral-sh/ruff-pre-commit: v0.14.13 → v0.15.8](https://github.com/astral-sh/ruff-pre-commit/compare/v0.14.13...v0.15.8)
pre-commit-ci-update-config
15 hours ago
fix: move max-requests recycling check into Rust server runtime The Python-side _check_max_requests callback (loop.call_later) was scheduled after server.start(), but start() blocks internally on event_loop.run_forever() and never returns — making lines 270-283 dead code that never executes. Move the check into a background task on the actix runtime where it has direct access to REQUEST_COUNT and can call server_handle.stop(true) for a graceful shutdown. This also eliminates the cross-runtime coordination problem between Python asyncio and Rust actix. Made-with: Cursor
feat/process-recycling
2 days ago
fix: reap zombie processes, count all requests, disable recycling for inline workers - Call process.join() on exited workers before spawning replacements to prevent zombie processes in the recycling loop. - Move REQUEST_COUNT increment from index() into an app-wide actix middleware so requests served by Files handlers, WebSocket routes, and the const-route fast path are all counted toward max_requests. - Omit max_requests when running in single-process/Windows mode where there is no supervisor to respawn the worker. Made-with: Cursor
feat/process-recycling
2 days ago
docs: clarify that client_timeout only limits header-reading, not handler execution The `client_timeout` parameter maps to actix-web's `client_request_timeout`, which only controls how long the server waits for the client to transmit the complete request headers. It does NOT limit handler execution time or overall request duration. Updated docstrings, type stubs, Rust doc comments, and both English and Chinese documentation to make this clear and prevent user confusion. Made-with: Cursor
fix/wire-server-timeouts
3 days ago
fix: upgrade actions/checkout to v4 and harden discord notification actions/checkout@v3 uses Node.js 16 which reached EOL in 2024. Also guards the discord notification step against non-tag triggers and prevents grep from failing the job under set -e when PREV_TAG is empty (first release) or when filtered log output is empty. Made-with: Cursor
fix/async-auth-handler-support
3 days ago
fix: handle edge cases in discord release notification - Skip notification when GITHUB_REF is not a tag (e.g. workflow_dispatch) to avoid producing a nonsensical version string - Fall back to last 20 commits when PREV_TAG is empty (first release) to avoid git log failing on an invalid "..HEAD" range Made-with: Cursor
discord/releases
3 days ago
fix: address review bugs in TestClient request pipeline - Guard against before-middleware returning None (AttributeError) - Fix route-specific middleware key format so patterns actually match - Serialize dict/list response bodies with json.dumps instead of str() - Normalize response.headers to Headers before calling .append() Made-with: Cursor
feat/testing-client
3 days ago
fix: use graceful terminate→wait→kill in reloader's --dev reload path The reloader was sending SIGTERM then unconditionally calling kill(), bypassing the graceful shutdown the PR adds. Now stop_server() uses terminate(), waits up to 5 seconds, and only force-kills if the process is still alive. The redundant prev_process.kill() in reload() is removed since stop_server() already handles full cleanup. Made-with: Cursor
fix/graceful-shutdown
3 days ago
Latest Branches
CodSpeed Performance Gauge
0%
[pre-commit.ci] pre-commit autoupdate
#1364
15 hours ago
072e843
pre-commit-ci-update-config
CodSpeed Performance Gauge
0%
feat: add --max-requests for worker process recycling
#1354
2 days ago
7546da5
feat/process-recycling
CodSpeed Performance Gauge
0%
fix: wire client_timeout and keep_alive_timeout through to Actix
#1348
3 days ago
1826471
fix/wire-server-timeouts
© 2026 CodSpeed Technology
Home
Terms
Privacy
Docs