Skip to content

Code-grounded audit of all 4 *arr wiki pages (Sonarr v4 + Radarr/Lidarr/Prowlarr develop)#452

Open
bakerboy448 wants to merge 8 commits into
Servarr:masterfrom
bakerboy448:audit/2026-06-wiki-revamp
Open

Code-grounded audit of all 4 *arr wiki pages (Sonarr v4 + Radarr/Lidarr/Prowlarr develop)#452
bakerboy448 wants to merge 8 commits into
Servarr:masterfrom
bakerboy448:audit/2026-06-wiki-revamp

Conversation

@bakerboy448

Copy link
Copy Markdown
Contributor

Summary

Code-grounded audit of every Servarr wiki page against current app source code, applied as one commit per app.

App Branch audited Files changed Insertions / Deletions
Sonarr main (v4) 15 +393 / −164
Radarr develop 14 +320 / −97
Lidarr develop 22 +346 / −97
Prowlarr develop 13 +213 / −109
Total 64 +1,272 / −467

Methodology

For each of 103 wiki pages, a per-page audit subagent:

  1. Read the wiki page in full.
  2. Read the relevant source-code area (e.g. ConfigFileProvider.cs GetValueX("Key", default) calls for env vars, FileNameBuilder.cs tokenHandlers[...] for naming tokens, src/NzbDrone.Core/HealthCheck/Checks/*.cs classes for system warnings, CustomScript.cs override methods for per-event env vars, etc.).
  3. Compared documented claims to current code reality.
  4. Edited the wiki page in place — adding rows for code-present-but-undocumented options, removing rows for documented-but-removed options, renaming where code names changed, correcting default values, adding missing anchor IDs that match HealthCheck.WikiUrlFragment.
  5. Preserved WikiJS frontmatter intact (title / description / published / date / tags / editor / dateCreated).

39 of 103 pages returned "no discrepancies found" and were left untouched.

Examples of changes

  • Env-var key corrections: e.g. Sonarr LOG__DBENABLED row's Config Option column corrected from DbEnabled (Options-class property name) to LogDbEnabled (literal string inside GetValueBoolean("LogDbEnabled", ...) at ConfigFileProvider.cs:243).
  • New env vars added: e.g. TrustCgnatIpAddresses (AuthOptions.cs + ConfigFileProvider.cs:480).
  • Obsolete system warnings removed: Sonarr v4 dropped Mono / .NET Framework / Mono Legacy TLS / SQLite-version checks — wiki had been preserving them as if still relevant.
  • New system warnings added: Invalid API Key (ApiKeyValidationCheck.cs), Indexer Download Client is Invalid (IndexerDownloadClientCheck.cs), Cannot Write to Recycle Bin (RecyclingBinCheck.cs), Notifications are unavailable due to failures (NotificationStatusCheck.cs), Metadata Consumer is deprecated (MetadataCheck.cs Kometa), and others.
  • Anchor IDs aligned: many {#wiki-url-fragment} anchors added to match HealthCheck.WikiUrlFragment values in code, so in-app "Wiki" buttons deep-link to the right section.
  • Naming tokens cross-checked against FileNameBuilder.cs tokenHandlers[...] dictionaries.
  • Reverse-proxy directive corrected: HostX-Forwarded-Host (matches ASP.NET Core ForwardedHeaders middleware behavior in Startup.cs:~62-64 across all 4 apps).

Per-app commit messages list the specific categories of change.

Caveats — please read before merging

This is an AI-assisted audit. Per-page subagent edits were eyeballed for known failure classes in a self-review pass on the contributor's fork before opening this PR. Two specific failure modes were caught and corrected, and one is worth flagging:

Caught + corrected:

  • One Lidarr install page (lidarr/installation/linux.md) had its runtime apt install line silently truncated by a subagent — system-level deps (mediainfo, libchromaprint-tools) are required by Lidarr at runtime but aren't visible in C# source, so the subagent had no way to confirm they were still needed. Restored.
  • One Sonarr install page (sonarr/installation/freebsd.md) had its documented default data dir changed to /var/db/sonarr based on FreeBSD hier(7) conventions — but the actual default is set by the FreeBSD port's rc.d script, not in Sonarr's repo. No verifiable source, so reverted.

Worth flagging:

  • Anything system-level (apt/dnf/pacman/brew package names, OS-specific default paths, Docker image env vars, Windows runtime versions) cannot be verified against the audit's code-based source-of-truth. These pages received audit edits where subagents inferred plausible values; please apply extra scrutiny to install pages and reverse-proxy examples.

Out of scope

  • prowlarr/supported-indexers.md — auto-regenerated by .github/workflows/prowlarr-ci.yml; not touched.
  • Whisparr and Readarr — not audited (no clones available locally).
  • Triage of currently-open PRs and issues — intentionally NOT addressed in this PR. Each existing open contribution deserves its own verification against the referenced tool's documentation; bundling them in here would obscure review.

Internal private-review

This PR was preceded by an internal private-review PR on the contributor's fork (bakerboy448/ServarrWiki#2), where the working tree was inspected and the two failure-class corrections above were applied before opening upstream.

Treat findings as a starting point for human review rather than authoritative changes.

🤖 Generated with Claude Code

bakerboy448 and others added 8 commits June 14, 2026 11:12
Cross-referenced every documented option, setting, env var, integration,
and health check against the current Sonarr v4 main-branch source. Edits
made to 15 pages.

Key categories of change:
- environment-variables.md: corrected config-key names to match the
  literal strings inside ConfigFileProvider.cs GetValueX() calls; added
  new options present in code (e.g. TrustCgnatIpAddresses).
- system.md: removed 6 obsolete health checks (.NET Framework / Mono /
  SQLite version / Mono Legacy TLS) no longer present in v4; added the
  health checks newly present in code (ApiKeyValidationCheck,
  IndexerDownloadClientCheck, NotificationStatusCheck, RecyclingBinCheck,
  MetadataCheck deprecation, etc.); added missing anchor IDs matching
  HealthCheck.WikiUrlFragment.
- custom-scripts.md: cross-referenced per-event Sonarr_* env vars
  against CustomScript.cs override methods.
- supported.md: cross-referenced indexer / download client /
  notification / import list / metadata class names against current
  source tree.

WikiJS frontmatter preserved on every page. date field updated to
2026-06-07T00:00:00.000Z.
Cross-referenced every documented option, setting, env var, integration,
and health check against the current Radarr develop-branch source code.
Edits made to 14 pages.

Key categories of change:
- environment-variables.md: corrected config-key names to match the
  literal strings inside ConfigFileProvider.cs GetValueX() calls; added
  / removed rows to match current option classes.
- system.md: aligned health-check entries with the current
  src/NzbDrone.Core/HealthCheck/Checks/ classes (anchor IDs match
  WikiUrlFragment values in code).
- custom-scripts.md: cross-referenced per-event Radarr_* env vars
  against CustomScript.cs override methods.
- supported.md: cross-referenced indexer / download client /
  notification / import list / metadata class names against current
  source tree.
- settings.md: verified naming tokens against FileNameBuilder.cs
  tokenHandlers[] entries (source-of-truth for valid tokens).

WikiJS frontmatter preserved on every page. date field updated to
2026-06-07T00:00:00.000Z.
Cross-referenced every documented option, setting, env var, integration,
naming token, and health check against the current Lidarr develop-branch
source code. Edits made to 22 pages.

Key categories of change:
- environment-variables.md: corrected config-key names to match the
  literal strings inside ConfigFileProvider.cs GetValueX() calls.
- system.md: aligned health-check entries with current
  src/NzbDrone.Core/HealthCheck/Checks/ classes.
- custom-scripts.md: cross-referenced per-event Lidarr_* env vars
  against CustomScript.cs override methods.
- supported.md: cross-referenced indexer / download client /
  notification / import list / metadata class names. Lidarr-specific
  ImportLists (Spotify, LastFm, MusicBrainz, etc.) verified.
- plugins.md: aligned plugin install/load mechanism documentation with
  src/NzbDrone.Common/Composition/Plugin*.cs and
  src/Lidarr.Api.V1/System/Plugins/. Page maintains the develop-only
  nature of the plugin system (master / stable releases do NOT ship
  with plugins).
- naming-guide.md: verified every documented naming token against
  FileNameBuilder.cs tokenHandlers[] entries.
- faq.md: verified download decision priority order (Quality / Custom
  Format Score / Protocol / Indexer Priority / Seeds / Age) against
  src/NzbDrone.Core/DecisionEngine/DownloadDecisionComparer.cs.
- installation/linux.md: required runtime apt dependencies (mediainfo,
  libchromaprint-tools) preserved alongside curl, sqlite3, and wget.

WikiJS frontmatter preserved on every page. date field updated to
2026-06-07T00:00:00.000Z.
Cross-referenced every documented option, setting, env var, integration,
Cardigann YAML field, and health check against the current Prowlarr
develop-branch source code. Edits made to 13 pages.

Key categories of change:
- environment-variables.md: corrected config-key names to match the
  literal strings inside ConfigFileProvider.cs GetValueX() calls.
- system.md: aligned health-check entries with current
  src/NzbDrone.Core/HealthCheck/Checks/ classes.
- custom-scripts.md: cross-referenced per-event Prowlarr_* env vars
  against CustomScript.cs override methods (limited set:
  OnHealthIssue / OnHealthRestored / OnApplicationUpdate / OnGrab).
- supported.md: cross-referenced built-in Application sync targets
  against src/NzbDrone.Core/Applications/ (LazyLibrarian, Lidarr,
  Mylar, Radarr, Readarr, Sonarr, Whisparr). External tools that
  implement the protocols on their side were preserved.
- cardigann-yml-definition.md: aligned YAML schema documentation
  with src/NzbDrone.Core/Indexers/Definitions/Cardigann/
  Cardigann*.cs definitions.
- postgres-setup.md: cosmetic markdown list-continuation
  indentation fixes.
- installation/reverse-proxy.md: added per-indexer Newznab/Torznab
  Apache exclusion path /prowlarr/[0-9]+/api (matches the
  {id:int}/api route at NewznabController.cs:58).

NOT touched: supported-indexers.md (auto-generated by
.github/workflows/prowlarr-ci.yml — wiki is regenerated from build).

WikiJS frontmatter preserved on every page. date field updated to
2026-06-07T00:00:00.000Z.
…pace)

- Add `text` language to filesystem-tree fenced code blocks in
  lidarr/tips-and-tricks.md and lidarr/importing-existing-library.md
  (4 MD040 violations resolved).
- Pre-commit autofix swept trailing whitespace + missing EOF newlines
  across 10 lidarr files touched by the audit.
- docker-guide.md: seperated → separated.
- lidarr/importing-existing-library.md: complete truncated word "thi" → "this page" on the See-also bullet; "mis-linked" → "mismatched" (typos.toml does not allowlist the "mis" prefix).
- lidarr/import-troubleshooting.md: complete truncated word "succes" → "success rate" on the Picard tools entry.

Both truncations originated in audit-subagent-edited content. The
typos flagged on lidarr files are AI-introduced; the docker-guide.md
typo predates this PR but was not previously caught.
@bakerboy448 bakerboy448 force-pushed the audit/2026-06-wiki-revamp branch from 9203f46 to 129ea78 Compare June 14, 2026 16:14
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