docs: refresh README feature matrix + add plugins guide - #441
Conversation
The README highlights table and doc links had drifted behind shipped features. Bring them current and fill the one real docs gap (the plugin store had no user-facing page). README: - Playback: add WASAPI Exclusive, DSD to PCM, 6-band EQ, gapless, spectrum, sleep timer, seed/mood radio, A-B repeat - Integrations: add TheAudioDB bio source, OS notifications, DLNA/UPnP - Plugins: in-app store + two official plugins (Web Radio + Apple Motion Artwork), no longer "the first Web Radio plugin" - UI: immersive view, karaoke lyrics, mini-player, player-bar layout - Fix two dead deep-dive refs (sync.md / plugins.md never existed) to point at RFC-003 / RFC-002; add DLNA to the docs list docs: - New docs/features/plugins.md — SDK/sandbox, store (source cascade + blake3-verified installs), per-plugin options, official plugins, and the motion-artwork pipeline (overlay, manual cover, opt-in cache) - Link it from the docs index
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthroughLa PR met à jour les matrices de fonctionnalités et documente le SDK de plugins WASM, leur installation vérifiée, leur configuration, les plugins officiels, ainsi que leurs mécanismes de cache et de sécurité. ChangesDocumentation des fonctionnalités
Estimated code review effort: 2 (Simple) | ~10 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 3
🤖 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 `@docs/features/plugins.md`:
- Line 52: Clarify the animated album cover documentation so the “at most once”
Apple request guarantee explicitly applies only to successful resolutions and
confirmed misses. Keep the existing behavior that transient failures are not
cached and may be retried.
- Line 48: Reformulate the offline catalogue description around WebRadioView and
the url:<stream> track ID so it promises only offline catalogue browsing and
metadata resolution. Explicitly state that playback still requires network
access because streams remain remote, and remove any implication that the
offline mode enables network-free playback.
In `@README.md`:
- Line 74: Update README.md lines 74-74 so the Plugins entry links primarily to
docs/features/plugins.md and retains RFC-002 as a secondary reference. Update
README.md lines 131-131 to add plugins to the deep-dives navigation list.
🪄 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: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro Plus
Run ID: b31e2e35-2c4b-4707-8b09-95bfba485ad0
📒 Files selected for processing (3)
README.mddocs/README.mddocs/features/plugins.md
- plugins.md (Apple Motion Artwork): scope the "hits Apple at most once" guarantee to resolved hits + confirmed misses only; transient failures are not cached and are retried on the next lookup - plugins.md (Web Radio offline catalogue): the offline path only makes browsing + stream-URL resolution network-free; playing a station still streams from the remote server and needs network - README: Plugins deep-dive links to docs/features/plugins.md first, with RFC-002 as a secondary reference; add plugins to the docs nav list
There was a problem hiding this comment.
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
docs/features/plugins.md (1)
12-12: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick winNe pas présenter la sérialisation comme une protection contre le flooding.
La sérialisation limite les appels concurrents, mais n’empêche pas une suite illimitée d’appels séquentiels vers un service distant. Reformuler la garantie, ou documenter explicitement un rate limit/backoff si le runtime en fournit réellement un.
Proposition
- The host also serialises calls into a given plugin, so a plugin can't storm an upstream API. + The host also serialises calls into a given plugin, limiting concurrent upstream requests.🤖 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 `@docs/features/plugins.md` at line 12, Reformulate the final sentence in the plugin capabilities description so serialization is presented only as limiting concurrent calls, not as preventing upstream flooding. If the runtime provides an actual rate limit or backoff mechanism, document that separately; otherwise remove the flooding-prevention implication.
🤖 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.
Outside diff comments:
In `@docs/features/plugins.md`:
- Line 12: Reformulate the final sentence in the plugin capabilities description
so serialization is presented only as limiting concurrent calls, not as
preventing upstream flooding. If the runtime provides an actual rate limit or
backoff mechanism, document that separately; otherwise remove the
flooding-prevention implication.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro Plus
Run ID: 3f6d8df7-248e-4391-aa4a-75a6e9c15088
📒 Files selected for processing (2)
README.mddocs/features/plugins.md
Serialising calls into a plugin bounds concurrency only; it doesn't cap how often a plugin calls upstream, and the host has no rate-limit/backoff of its own. Note that a plugin stays polite by caching, as the official ones do.
Contexte
Avant le bump, remise à jour de la doc (le tableau de features du README avait dérivé, et le plugin store n'était documenté nulle part).
README
docs/features/sync.md/plugins.mdn'ont jamais existé) → pointent vers RFC-003 / RFC-002 ; ajout DLNA à la liste docs.Docs
docs/features/plugins.md— SDK/sandbox, store (cascade de sources + installs vérifiés blake3), options par plugin, plugins officiels, et pipeline motion artwork (overlay, cover manuelle Allow setting an album's animated cover manually from a local file #408, cache opt-in). Renvoie vers #440 pour la localisation des descriptions.docs/README.md.Vérifs
x-release-please-versionintact).Summary by CodeRabbit