docs(sports): the sunset rule needs enforcement, not just a declared floor - #242
Conversation
…floor Conditions 1 and 2 were written as if declaring `ledmatrix_min_version` protected users running an older core. Reading the core, it does not: - The loader's compatibility check is advisory -- it logs and continues. - It does not even warn for the users most at risk: it skips entirely when the core's parsed version is below 2.0.0, and the v3.1.0 release ships __version__ = "1.0.0" (tagged 2026-05-31, string bumped 2026-07-12). - Neither StoreManager.install_plugin nor .update_plugin compares the core version at all, so a routine store update delivers a plugin that floors above the user's core. Delete a bundled copy under those conditions and the plugin raises ModuleNotFoundError at load; the core marks it ERROR, logs one line, and carries on -- the user silently loses that scoreboard. Adds condition 3 (the core must enforce the floor at install/update time, and have done so long enough that few users predate it), records the exact exc.name a missing module raises so guard sets are written correctly, and points at phase B6 in the core repo. Notes that the two documents must change together. No plugin code changes; no version bumps. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Udr6MfaFLUPhX5Fgo67Jf5
|
Warning Review limit reached
Next review available in: 34 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
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. Comment |
Up to standards ✅🟢 Issues
|
Documentation only. No plugin code changes, no version bumps.
Companion to ChuckBuilds/LEDMatrix#427 — the sunset rule is stated in both repos and the two must stay in agreement. This PR adds that requirement in writing.
Why
The sunset rule's conditions 1 and 2 were written as if declaring
ledmatrix_min_versionprotected users on an older core. Reading the core, it does not:2.0.0, and thev3.1.0release ships__version__ = "1.0.0"(tagged 2026-05-31; the string wasn't bumped until 2026-07-12).StoreManager.install_pluginnor.update_plugincompares the core version at all —update_plugincompares the plugin's manifest version against the registry'slatest_versionand nothing else. A routine store update delivers a plugin that floors above the user's core.Delete a bundled copy under those conditions and the plugin raises
ModuleNotFoundErrorat load. The core catches it, marks the pluginERROR, logs one line, and carries on — the user silently loses that scoreboard, with no explanation anywhere they'd look.What changes
exc.namea missing core module raises —'src.common.sports_scroll', verified against av3.1.0worktree — so guard sets are written correctly.{"src"}alone does not match it.The practical effect: adoption proceeds, sunset waits. Keeping the guarded try-core/except-local import costs disk space; deleting it early costs scoreboards, silently.
🤖 Generated with Claude Code
https://claude.ai/code/session_01Udr6MfaFLUPhX5Fgo67Jf5