Skip to content

Hold the code-review cleanups in place, and unblind the doc gate - #51

Merged
rsvalerio merged 4 commits into
mainfrom
fix/task-0734-lint-policy
Aug 30, 2026
Merged

Hold the code-review cleanups in place, and unblind the doc gate#51
rsvalerio merged 4 commits into
mainfrom
fix/task-0734-lint-policy

Conversation

@rsvalerio

@rsvalerio rsvalerio commented Aug 29, 2026

Copy link
Copy Markdown
Owner

Follow-ups from the 2026-08-29 code-review run (PR #50), which were deliberately kept out
of the waves: two are repo-wide Cargo.toml edits that every concurrent wave was landing
against, and the third is unrelated to any single wave's scope.

build(lints) — TASK-0734, TASK-0737

The run added #[must_use] to 39 public accessors (wave92) and narrowed 115 pub(crate)
items inside private modules (wave90). Neither lint is enabled by default here —
must_use_candidate is pedantic, redundant_pub_crate is nursery — so -D warnings saw
neither, and nothing would have failed when the next public accessor or pub(crate)
drifted back. Both cleanups were one-shot.

The workspace is already clean for both, so deny costs nothing to adopt now. Mirrored
into fuzz/Cargo.toml, which restates the table as its own workspace root;
scripts/lint-sync-check.sh passes.

TASK-0737's criterion allowed either enabling the lint or recording the decision not to.
It is enabled — with the comment beside the table noting it is nursery, and that a future
noisy toolchain should be answered by dropping the line and writing down why, not by
scattering #[allow].

Both were negative-tested rather than assumed: a public fn probe_must_use() -> u32 in
dbsec-core and a pub(crate) fn in the private cli module each fail the build with the
expected lint.

docs — TASK-0736

cargo doc without --document-private-items warned on five links from public prose to
private items. ops verify passes that flag, so the local gate was blind to all five while
a docs.rs-shaped build showed them as bare text.

Each is now plain code text rather than a link. The alternative — making the referents
public — would fix the links by changing the API to suit the docs, and the proxy's own
crate prose states every module below it stays private (ARCH-8).

Verification

ops verify 8/8 and make fuzz-check green (the fuzz crate's lint table changed, and it
is gated separately). cargo doc --workspace --no-deps --all-features is now warning-free.

Still open in Triage

  • TASK-0738 (medium) — clippy.toml sets no msrv. Left out on purpose: the file is
    shared across repos and states msrv "belongs in the consumer's own file", but this repo's
    copy is that shared one and scripts/forge-sync-check.sh gates its drift; and msrv
    is single-valued while the workspace is not (root 1.85, dbsec-vault 1.86). That
    needs a decision, not an edit.
  • TASK-0733 (low) — duplicate thiserror via vaultrsrustify; not fixable in-tree.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Code Quality

    • Strengthened automated linting to identify missing must_use guidance and unnecessary visibility declarations.
    • Applied consistent quality checks across the workspace and fuzzing tools.
    • Updated internal components to version 0.7.2.
  • Documentation

    • Improved documentation rendering for internal references.
    • Clarified links to crate-private implementation details, making generated documentation easier to read and navigate.

rsvalerio and others added 3 commits August 29, 2026 23:33
The 2026-08-29 code-review run added `#[must_use]` to 39 public accessors
and narrowed 115 `pub(crate)` items inside private modules. Neither lint
is on by default here — one is pedantic, the other nursery — so
`-D warnings` saw neither, and nothing would have failed when the next
accessor or `pub(crate)` drifted back.

The workspace is already clean for both, so `deny` costs nothing to
adopt and is what turns the cleanup into a checked property. Mirrored
into `fuzz/Cargo.toml`, which restates the table as its own workspace
root; `scripts/lint-sync-check.sh` passes.

Closes TASK-0734
Closes TASK-0737

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
`cargo doc` without `--document-private-items` warned on five links that
render as bare text for a downstream reader: `dbsec` to `cli`, `logging`,
`config::load_config` and `serve`, and `VaultConfig::validate_addr` to
`redacted_addr`. `ops verify` passes that flag, so the local gate was
blind to all five.

Each is now plain code text. Making the referents public would fix the
links by changing the API to suit the docs — and the proxy's own crate
prose states every module below it stays private (ARCH-8).

Closes TASK-0736

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Aug 29, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 78763d45-5ed3-48d6-9006-6e15ab4d7d0f

📥 Commits

Reviewing files that changed from the base of the PR and between 7cf650c and e80b01b.

📒 Files selected for processing (1)
  • Cargo.toml

Included review availability: Your plan provides up to 10 included reviews per hour; 9 remain after this review.


📝 Walkthrough

Walkthrough

The change adds two denied Clippy lints at workspace and fuzz-package scope. It also updates Rust documentation references for private modules and a crate-private function without changing runtime behavior.

Changes

Clippy policy and documentation cleanup

Layer / File(s) Summary
Additional Clippy lint enforcement
Cargo.toml, fuzz/Cargo.toml
The workspace and fuzz package now deny must_use_candidate and redundant_pub_crate.
Private item documentation references
crates/proxy/src/lib.rs, crates/vault/src/config.rs
Documentation now renders private module names as code and identifies redacted_addr as crate-private.

Estimated code review effort: 1 (Trivial) | ~5 minutes

Merge Risk: ⚪ Minimal · up to e80b0

The PR enables two documented lint checks, updates documentation text to avoid invalid private-item links, and keeps the workspace and fuzz checks green; no actionable merge-blocking risk remains after normal checks and review.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Title check ❓ Inconclusive The title refers broadly to code-review cleanup and documentation changes, but it does not clearly identify the main changes: stricter Clippy lints and fixes for private-item documentation links. Use a specific title, such as "Deny additional Clippy lints and fix private-item documentation links".
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 2…
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.
Full details: Docstring Coverage

Explanation

No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 2 files. (1 skipped: 1 unsupported.)

  • Fix all pre-merge checks with AI
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/task-0734-lint-policy

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

@rsvalerio
rsvalerio merged commit 15f3280 into main Aug 30, 2026
14 checks passed
@rsvalerio
rsvalerio deleted the fix/task-0734-lint-policy branch August 30, 2026 09:35
rsvalerio added a commit that referenced this pull request Aug 30, 2026
Lost when the check-and-set prose was moved onto the new method: the
splice replaced the old doc comment and took the attribute with it. The
lint that catches it landed in #51, so the two branches only disagreed
once they met.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
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