chore(soccer-scoreboard): move fine-tuning config fields behind Advanced Settings (x-advanced) - #202
Conversation
…ced Settings (x-advanced) UX-only schema reorganization for a quicker first-time setup. No fields removed or renamed, no defaults changed, no validation change. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LFNedFLmEcSHqSHG9Lwa62
|
Warning Review limit reached
Next review available in: 32 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 Run ID: 📒 Files selected for processing (3)
✨ Finishing Touches🧪 Generate unit tests (beta)
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
|
|
Closing in favor of the consolidated PR #208 (per maintainer request, all x-advanced schema uplifts in one PR — this plugin's change is included there as its own commit). Generated by Claude Code |
Pull Request
Summary
Applies the "easy stuff up front, power stuff behind one click" treatment (LEDMatrix core PR #417's
x-advancedmechanism) to soccer-scoreboard'sconfig_schema.json: 331 of 470 flat fields are now flagged"x-advanced": true, so the core web UI collapses them into one "Advanced Settings" section at the bottom of the config page. Purely additive schema-data change — no field removed or renamed, no default orrequiredchanged, no manager.py change.Type of change
Plugin(s) affected
soccer-scoreboard
Related issues
N/A — part of the plugin-store-wide config UX uplift following LEDMatrix core PR #417.
Test plan
EMULATOR=true python3 run.py)scripts/dev_server.py)Details: schema still parses as strict JSON; verified programmatically that recursively stripping every
x-advancedkey from the new schema yields an object deep-equal to the one onmain(so validation behavior is byte-for-byte identical — only rendering changes);update_registry.py --dry-runreported changes for this plugin only. Rendering was not eyeballed against a live core web UI in this environment — thex-advancedflags use exactly the mechanism core already ships, and a wrong flag degrades gracefully (field renders in the collapsed section instead of up top).Required for plugin changes
versioninplugins/<id>/manifest.json(2.3.0 → 2.3.1, with aversions[]changelog entry)class_nameinmanifest.jsonmatches the actual class inmanager.pyexactly (unchanged)entry_pointmatches the real file (unchanged)README.mdif config keys changed (no keys changed — N/A)config_schema.jsonis the source of truth for the web UI form — no new options added, onlyx-advancedrender hintsupdate_registry.pyrun directly;plugins.jsonsynced to 2.3.1)Checklist
CONTRIBUTING.mdCONTRIBUTING.mdandCODE_OF_CONDUCT.mdNotes for reviewer
What was flagged advanced, and why (one line each):
update_interval_seconds,live_update_interval,recent_update_interval,upcoming_update_interval,live_game_duration,game_display_duration— poll-interval / dwell-time tuning with sane defaults.background_service.*(enabled, max_workers, request_timeout, max_retries, priority) — worker/timeout/retry tuning the README never asks users to touch.exclude_teams— niche spoiler-protection filter;display_modes.{live,recent,upcoming}_display_mode— switch/scroll enum defaulting to "switch";scroll_settings.*(6 fields) — scroll speed/delay/gap/card-width fine-tuning;live_priority,live_game_duration,non_favorite_live_game_duration,recent_game_duration,upcoming_game_duration,celebration_duration,celebrate_opponent_goals,live_update_interval,update_interval_seconds— rotation/duration/poll fine-tuning;filtering.favorite_live_boost— rotation-weighting knob;dynamic_duration.*(9 fields) andmode_durations.*(3 fields) — advanced duration-override system, disabled by default.Kept basic (never flagged):
enabledtoggles,favorite_teams/custom_leagues(the core setup interaction), league enable toggles,show_favorite_teams_only/show_all_livefiltering,show_records/show_ranking/show_odds,display_duration, and recent/upcoming game-count limits.All 10 predefined league blocks share an identical 45-field structure, so flags were applied uniformly (32 advanced per league).
x-advancedwas only applied to scalar/array/enum fields, neverobjectproperties. jsonschema package wasn't available locally, so manifest-vs-schema/manifest_schema.jsonvalidation is left to CI.🤖 Generated with Claude Code
https://claude.ai/code/session_01LFNedFLmEcSHqSHG9Lwa62
Generated by Claude Code