Skip to content

Prepare v0.5.2 release#89

Open
mjc wants to merge 9 commits into
mainfrom
mjc/release-v0.5.2
Open

Prepare v0.5.2 release#89
mjc wants to merge 9 commits into
mainfrom
mjc/release-v0.5.2

Conversation

@mjc

@mjc mjc commented Jun 11, 2026

Copy link
Copy Markdown
Owner

This adds the v0.5.2 changelog section and updates the release notes to cover:

  • faster retrying of missing articles via per-backend stat_missing probing
  • response write metrics wiring to runtime config
  • backend DNS lookups honoring TTL
  • retry-path routing and guard hardening

The branch has been pushed and is ready for review.

Summary by CodeRabbit

  • New Features
    • Added per-backend STAT probing (STAT_MISSING) to prefetch missing articles after 430.
    • Introduced queue backpressure routing with per-backend soft/hard thresholds and an all-busy sleep interval.
    • Added optional proxy metrics intervals for response-write and client-writer lock contention metrics.
  • Bug Fixes
    • Improved TUI session/user connection count consistency and reduced TUI render allocations.
    • Hardened retry-path routing/guard handling and fixed DNS lookup TTL behavior.
  • Documentation
    • Updated operator configuration/operations docs and examples (Docker/Nix) for the new options.
  • Chores
    • Released version 0.5.2 with updated release notes and configuration examples.

@coderabbitai

coderabbitai Bot commented Jun 11, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@mjc, we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 53 minutes and 40 seconds. Learn how PR review limits work.

Your organization has used up its prepaid credits, and credit purchases are no longer available. Enable the review add-on in the billing tab to keep reviews running — you're only billed for reviews past your plan's rate limits ($0.25/file).

⌛ How to resolve this issue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI (base), Organization UI (inherited)

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: a8c448bb-8b3b-491f-997a-b44da7187088

📥 Commits

Reviewing files that changed from the base of the PR and between 70b669f and 0a9e167.

📒 Files selected for processing (1)
  • CHANGELOG.md
📝 Walkthrough

Walkthrough

Version 0.5.2 release update with documentation and configuration examples for per-backend STAT-missing probing, queue backpressure routing, and metrics logging intervals across Docker, Nix, and configuration files.

Changes

v0.5.2 Release Configuration

Layer / File(s) Summary
Release versioning and changelog
Cargo.toml, CHANGELOG.md
Cargo version bumped from 0.5.1 to 0.5.2, and changelog populated with Unreleased fixes and v0.5.2 section documenting stat_missing retry probing, response metrics configuration, queue backpressure routing, DNS TTL behavior, retry-path routing hardening, and documentation updates, plus compare-link reference.
Configuration schema and documentation
docs/operator/configuration.md
Operator documentation extended with canonical config section order including new [routing.queue.backpressure]; proxy metrics logging intervals (response_write_metrics_secs, client_writer_lock_metrics_secs); queue backpressure enablement and waiter thresholds; backend stat_missing option for STAT-based missing article probing; and STAT_MISSING environment variable support.
Configuration example files
config.full.toml
Full example configuration extended with commented optional proxy metrics logging intervals and new [routing.queue.backpressure] table controlling backend queue backpressure with soft/hard waiter percentage thresholds and all_busy_sleep_ms retry delay.
Docker and Nix deployment examples
Dockerfile, docker-compose.yml, docs/operator/operations.md, nix/module.nix
Dockerfile and docker-compose examples updated to show NNTP_SERVER_*_STAT_MISSING environment variables for single and load-balanced services; operations documentation explains backend compatibility and 430 missing-article prefetch behavior; Nix module example includes stat_missing = 1 in server configuration.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

Poem

🐰 A version bump and docs so fine,
Configuration spreads like a garden line,
STAT-missing probes, backpressure flows—
Release notes bloom as the rabbit knows! 🐇✨

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'Prepare v0.5.2 release' directly and clearly describes the main purpose of the changeset, which is to prepare the v0.5.2 release by updating version numbers, changelog entries, documentation, and configuration examples.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch mjc/release-v0.5.2

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@CHANGELOG.md`:
- Line 10: Confirm and correct the release date in the changelog header "##
[0.5.2] - 2026-06-10" to match the actual release/PR date; update that header to
the correct date (e.g., 2026-06-11 if the PR metadata is authoritative) or
verify with the release manager and set the date accordingly so the "## [0.5.2]
- ..." line is accurate.

In `@rust-toolchain.toml`:
- Line 2: The toolchain bump in rust-toolchain.toml (channel = "1.96.0") is fine
but the RustSec advisory lookup failed due to an unauthenticated GitHub API
call; add a step to run cargo audit (or RustSec) in CI or locally with
authenticated access: add a CI job that runs cargo audit against the workspace
after the toolchain bump and ensure the job provides a valid GitHub token (e.g.,
GITHUB_TOKEN) or points RUSTSEC_ADVISORY_DB at a checked-out advisory-db mirror
so the RustSec lookup can complete without HTTP 401 errors.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI (base), Organization UI (inherited)

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: f33fa23b-c61d-4399-808a-c0b7bd83c9e0

📥 Commits

Reviewing files that changed from the base of the PR and between cebc654 and 5fed5b5.

⛔ Files ignored due to path filters (2)
  • Cargo.lock is excluded by !**/*.lock
  • flake.lock is excluded by !**/*.lock
📒 Files selected for processing (9)
  • CHANGELOG.md
  • Cargo.toml
  • Dockerfile
  • config.full.toml
  • docker-compose.yml
  • docs/operator/configuration.md
  • docs/operator/operations.md
  • nix/module.nix
  • rust-toolchain.toml

Comment thread CHANGELOG.md Outdated
Comment thread rust-toolchain.toml
@mjc mjc force-pushed the mjc/release-v0.5.2 branch from a0f8944 to c07db49 Compare June 11, 2026 16:00
@mjc mjc changed the base branch from main to mjc/release-v0.5.2-foundation June 11, 2026 16:00
Base automatically changed from mjc/release-v0.5.2-foundation to main June 11, 2026 16:06
@mjc mjc force-pushed the mjc/release-v0.5.2 branch 3 times, most recently from 3f30d7d to 14d302e Compare June 12, 2026 22:00
@mjc mjc force-pushed the mjc/release-v0.5.2 branch from 7aee5de to 70b669f Compare June 15, 2026 17:39

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@CHANGELOG.md`:
- Around line 21-26: The three bullet points in the "Added" section (lines
23-25) all begin with the word "Added", creating repetitive sentence structure
that reduces readability. Reword one or more of these bullet points to use
alternative phrasing such as "is now available", "provides", or similar
constructions that convey the same meaning while varying the sentence structure.
For example, rephrase the second bullet point about CPU pinning or the third
about rustix-based affinity handling to start differently, maintaining the
content's clarity and technical accuracy while improving the overall flow of the
changelog entry.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI (base), Organization UI (inherited)

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 9b49fc4e-9c01-418f-b572-43b38b785494

📥 Commits

Reviewing files that changed from the base of the PR and between 3f30d7d and 70b669f.

⛔ Files ignored due to path filters (1)
  • Cargo.lock is excluded by !**/*.lock
📒 Files selected for processing (8)
  • CHANGELOG.md
  • Cargo.toml
  • Dockerfile
  • config.full.toml
  • docker-compose.yml
  • docs/operator/configuration.md
  • docs/operator/operations.md
  • nix/module.nix

Comment thread CHANGELOG.md
Comment on lines +21 to +26
### Added

- Added per-backend `stat_missing` retry probing, so backends that correctly answer `STAT` with `430` can help retry missing articles faster.
- Added runtime CPU pinning support for multi-threaded workloads via a new `CpuPinning` runtime mode, using worker-thread startup hooks so pinned threads are the ones running proxy work.
- Added [`rustix`](https://docs.rs/rustix)-based affinity handling for Linux CPU pinning so we can remove the direct `nix` pinning dependency path.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick | 🔵 Trivial | 💤 Low value

Reduce repetitive sentence beginnings in the "Added" section.

Lines 23–25 all begin with "Added". Consider rewording one or more to improve readability, e.g., "Per-backend stat_missing retry probing is now available…" or "Runtime CPU pinning support is now available…".

🧰 Tools
🪛 LanguageTool

[style] ~24-~24: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...n help retry missing articles faster. - Added runtime CPU pinning support for multi-t...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)


[style] ~25-~25: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...eads are the ones running proxy work. - Added rustix-base...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@CHANGELOG.md` around lines 21 - 26, The three bullet points in the "Added"
section (lines 23-25) all begin with the word "Added", creating repetitive
sentence structure that reduces readability. Reword one or more of these bullet
points to use alternative phrasing such as "is now available", "provides", or
similar constructions that convey the same meaning while varying the sentence
structure. For example, rephrase the second bullet point about CPU pinning or
the third about rustix-based affinity handling to start differently, maintaining
the content's clarity and technical accuracy while improving the overall flow of
the changelog entry.

Source: Linters/SAST tools

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant