Skip to content

docs(sports): the sunset rule needs enforcement, not just a declared floor - #242

Merged
ChuckBuilds merged 1 commit into
mainfrom
docs/sunset-rule-needs-enforcement
Aug 3, 2026
Merged

docs(sports): the sunset rule needs enforcement, not just a declared floor#242
ChuckBuilds merged 1 commit into
mainfrom
docs/sunset-rule-needs-enforcement

Conversation

@ChuckBuilds

Copy link
Copy Markdown
Owner

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_version protected users on an older core. Reading the core, it does not:

  • The loader's compatibility check is advisory — it logs a warning and never blocks.
  • It doesn't 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; the string wasn't bumped until 2026-07-12).
  • Neither StoreManager.install_plugin nor .update_plugin compares the core version at all — update_plugin compares the plugin's manifest version against the registry's latest_version and 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 ModuleNotFoundError at load. The core catches it, marks the plugin ERROR, logs one line, and carries on — the user silently loses that scoreboard, with no explanation anywhere they'd look.

What changes

  • Adds condition 3: the core must enforce the floor at install/update time, and have done so long enough that few users run a core without the enforcement.
  • Spells out why 1 and 2 are necessary but not sufficient, with the specific code paths.
  • Records the exact exc.name a missing core module raises — 'src.common.sports_scroll', verified against a v3.1.0 worktree — so guard sets are written correctly. {"src"} alone does not match it.
  • Points at phase B6 in the core repo and states that the two documents change together.

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

…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
@coderabbitai

coderabbitai Bot commented Aug 2, 2026

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

@ChuckBuilds, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 34 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

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 configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: b2643f6d-f2d9-4f29-81ce-520c7d2403c2

📥 Commits

Reviewing files that changed from the base of the PR and between 5a5553a and 94aebd5.

📒 Files selected for processing (1)
  • docs/plugin-development/08-shared-sports-code.md

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.

❤️ Share

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

@codacy-production

Copy link
Copy Markdown

Up to standards ✅

🟢 Issues 0 issues

Results:
0 new issues

View in Codacy

NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.

@ChuckBuilds
ChuckBuilds merged commit 535da15 into main Aug 3, 2026
2 checks passed
@ChuckBuilds
ChuckBuilds deleted the docs/sunset-rule-needs-enforcement branch August 3, 2026 18:01
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.

2 participants