docs(home): correct DAPS migration claim — config auto-migrates
docs: rewrite wiki for readability — validated against source, restructured nav, instructional voice
docs(asset): drop project-key support; reword clear logos -> logos; fix stale TMDB mention
docs: cover asset_renamerr + upload tuning + Needs Review/manual matching
- Modules: new asset_renamerr section (clear logo / square art / background;
local + TMDB sources; direct vs kometa apply matrix; chaining via
run_asset_renamerr; idempotency). poster_renamerr config gains
run_asset_renamerr + upload_delay_ms. Count 13 → 14.
- Home: feature blurb + module count.
- Kometa-Integration: logos/backgrounds via asset directory (Kometa reads
logo/background; season naming; square art is direct-only).
- Webhooks: season-aware "wait for Plex to scan" before applying season posters.
- UI-Guide: /poster/unmatched Needs Review tabs — Choose a poster (immediate
apply + lock), Approve, Ignore/Restore; Asset Renamerr settings page.
docs: Interface settings merged into General Settings page
Mirrors the chub@48bcc88 refactor — the standalone Interface page is
gone; the theme picker now lives as a card on the General Settings page,
and /settings/interface redirects to /settings/general for old bookmarks.
- UI-Guide.md: settings count 8 → 7. The /settings/general section now
describes both cards (Interface + General) and notes the redirect.
- First-Run.md: collapses the two separate 'set the theme' / 'set the log
level' bullets into one.
- Home.md: fixes a stale 'Settings → Interface' reference for looking up
the CHUB version (the UI doesn't surface the version in settings; the
authoritative source is GET /api/version).
docs(home): rewrite AI-assist note in first person
docs(home): note AI-assisted authorship of wiki pages
docs: add media-search and poster-cleanarr screenshots
Home.md's final image ref was still pointing at images/poster-manage.png
from before Poster Manage was consolidated into Poster Cleanarr — fixed
to match the real file. UI-Guide.md was already correct.
docs: sync with v1.4.1 product state
* Module coverage bumped from 12 to 13 — adds plex_maintenance
(split out of poster_cleanarr to run Plex-side housekeeping on
its own cron). Section added to Modules.md; Home, Credits,
Configuration, Troubleshooting updated to match.
* Fixes poster_cleanarr YAML: removes photo_transcoder,
empty_trash, clean_bundles, optimize_db — those fields live on
plex_maintenance now, not poster_cleanarr, and Pydantic was
silently dropping them from user configs following these docs.
Adds the real fields (local_db, use_existing_db).
* Fixes nestarr YAML: removes the fake dry_run field (not in
NestarrConfig; nestarr is report-only by design).
* Cancellation wording across Modules, Troubleshooting,
Developer-API, FAQ, Credits now reflects reality:
border_replacerr runs to completion (full exception);
plex_maintenance is partial — its PhotoTranscoder loop checks
the cancel flag, but the three Plex-API tasks (empty_trash,
clean_bundles, optimize_db) run to completion since Plex has
no interrupt.
* UI-Guide /poster/manage section now points at /poster/cleanarr
(its actual destination — the old path is a back-compat
redirect), describing the Plex bloat cleanup master-detail UI.
* Developer-API removes POST /api/media/import (endpoint was
dropped intentionally — adding media via CHUB wasn't wanted);
adds GET /api/media/{id}/poster proxy.
* dashboard-light.png captured from the rebranded UI.
Restructure wiki for readability: split install, unify module docs, add Kometa guide
- Add Kometa-Integration page: end-to-end setup between Kometa's
asset_directory and CHUB's poster_renamerr (Docker mount alignment,
PUID/PGID gotchas, verification steps).
- Modules.md: each module now carries its full YAML block next to
the prose (was split across Modules and Configuration). Emoji
anchors for every module with a jump-to TOC at the top.
- Configuration.md: drop per-module YAML (moved to Modules). Keep
top-level blocks (general/auth/instances/schedule/notifications/
user_interface) plus a complete end-to-end example config.yml that
covers every module minimally — previous version was missing
several modules.
- Installation.md: focus on Docker Compose + single-run Docker as
the primary paths. Move Unraid and bare-metal to sibling pages.
- Installation-Unraid.md, Installation-Bare-Metal.md: new sibling
pages with platform-specific guidance (Unraid PUID/GID, systemd
unit for bare metal).
- First-Run.md: new page for post-install setup — admin user,
instance wiring, module enablement, schedule, smoke test, and
the password-reset flow.
- sync_gdrive: replace the inline service-account walkthrough with
a link to the DAPS rclone configuration guide (CHUB uses the same
rclone backend; DAPS's version has screenshots and covers both
service account and OAuth paths).
- Sidebar reorganised with the new pages grouped under Install.
Split wiki into User Guide and Developer Guide
- Rename API.md to Developer-API.md
- Add Developer-Guide.md with repo layout, local dev, writing a new
module, security internals, and contributing checklist
- Add _Sidebar.md splitting nav into User Guide and Developer Guide
- Trim engineering detail from end-user pages (Home, Configuration,
UI-Guide, FAQ, Troubleshooting, Webhooks) — replace jargon with
plain language and redirect users to UI flows where possible
Rewrite wiki pages to match actual code
- Module cancellation: 11 of 12 modules cooperatively cancel; only
border_replacerr does not (previously claimed 5 of 12).
- poster_cleanarr exposes six modes (report/move/remove/restore/
clear/nothing), not two.
- Fix API paths: media list is /api/media/search, edit is
/{media_id}/metadata; posters list is /api/posters/list; instances
use {instance_id} (not {type}/{name}); system.py router is at /api
prefix with only three routes keeping /system/*.
- Document --reset-auth CLI flag, correct PUID/PGID defaults (100/99),
login rate limiter (0.2/5), SSE token query-param fallback, webhook
debounce (5s via SHA-256 payload hash).
- UI-Guide: correct frontend routes (/media/statistics,
/poster/search/gdrive, etc.) per React Router config.