* docs: rename FONT_MANAGER_USAGE.md to FONT_MANAGER.md Renamed for clearer naming convention. Part of documentation consolidation effort. * docs: consolidate Plugin Store guides (2→1) Merged: - PLUGIN_STORE_USER_GUIDE.md - PLUGIN_STORE_QUICK_REFERENCE.md Into: PLUGIN_STORE_GUIDE.md - Unified writing style to professional technical - Added Quick Reference section at top for easy access - Removed duplicate content - Added cross-references to related documentation - Updated formatting to match style guidelines * docs: create user-focused Web Interface Guide Created WEB_INTERFACE_GUIDE.md consolidating: - V3_INTERFACE_README.md (technical details) - User-facing interface documentation - Focused on end-user tasks and navigation - Removed technical implementation details - Added common tasks section - Included troubleshooting - Professional technical writing style * docs: consolidate WiFi setup guides (4→1) Merged: - WIFI_SETUP.md - OPTIMAL_WIFI_AP_FAILOVER_SETUP.md - AP_MODE_MANUAL_ENABLE.md - WIFI_ETHERNET_AP_MODE_FIX.md (behavior documentation) Into: WIFI_NETWORK_SETUP.md - Comprehensive coverage of WiFi setup and configuration - Clear explanation of AP mode failover and grace period - Configuration scenarios and best practices - Troubleshooting section combining all sources - Professional technical writing style - Added quick reference table for behavior * docs: consolidate troubleshooting guides (4→1) Merged: - TROUBLESHOOTING_QUICK_START.md - WEB_INTERFACE_TROUBLESHOOTING.md - CAPTIVE_PORTAL_TROUBLESHOOTING.md - WEATHER_TROUBLESHOOTING.md Into: TROUBLESHOOTING.md - Organized by issue category (web, WiFi, plugins) - Comprehensive diagnostic commands reference - Quick diagnosis steps at the top - Service file template preserved - Complete diagnostic script included - Professional technical writing style * docs: create consolidated Advanced Features guide Merged: - VEGAS_SCROLL_MODE.md - ON_DEMAND_DISPLAY_QUICK_START.md - ON_DEMAND_DISPLAY_API.md - ON_DEMAND_CACHE_MANAGEMENT.md - BACKGROUND_SERVICE_README.md - PERMISSION_MANAGEMENT_GUIDE.md Into: ADVANCED_FEATURES.md - Comprehensive guide covering all advanced features - Vegas scroll mode with integration examples - On-demand display with API reference - Cache management troubleshooting - Background service documentation - Permission management patterns - Professional technical writing style * docs: create Getting Started guide for first-time users Created GETTING_STARTED.md: - Quick start guide (5 minutes) - Initial configuration walkthrough - Common first-time issues and solutions - Next steps and quick reference - User-friendly tone for beginners - Links to detailed documentation * docs: archive consolidated source files and ephemeral docs Archived files that have been consolidated: - Plugin Store guides (2 files → PLUGIN_STORE_GUIDE.md) - Web Interface guide (V3_INTERFACE_README.md → WEB_INTERFACE_GUIDE.md) - WiFi Setup guides (4 files → WIFI_NETWORK_SETUP.md) - Troubleshooting guides (4 files → TROUBLESHOOTING.md) - Advanced Features (6 files → ADVANCED_FEATURES.md) Archived ephemeral/debug documentation: - DEBUG_WEB_ISSUE.md - BROWSER_ERRORS_EXPLANATION.md - FORM_VALIDATION_FIXES.md - WEB_UI_RELIABILITY_IMPROVEMENTS.md - CAPTIVE_PORTAL_TESTING.md - NEXT_STEPS_COMMANDS.md - STATIC_IMAGE_MULTI_UPLOAD_PLAN.md - RECONNECT_AFTER_CAPTIVE_PORTAL_TESTING.md Archived implementation summaries: - PLUGIN_CONFIG_TABS_SUMMARY.md - PLUGIN_CONFIG_SYSTEM_VERIFICATION.md - PLUGIN_SCHEMA_AUDIT_SUMMARY.md - STARTUP_OPTIMIZATION_SUMMARY.md - PLUGIN_DISPATCH_IMPLEMENTATION.md - NESTED_SCHEMA_IMPLEMENTATION.md - AP_MODE_MANUAL_ENABLE_CHANGES.md - PLUGIN_CONFIG_SYSTEM_EXPLANATION.md Total archived: 27 files Preserves git history while cleaning up main docs directory * docs: rename API_REFERENCE.md to REST_API_REFERENCE.md Renamed for clarity - this is specifically the REST API reference for the web interface, not a general API reference. * docs: update README.md to reflect consolidated documentation structure Updated documentation index: - Reflects new consolidated guides (51 → 16-17 files) - Updated Quick Start sections with new file names - Added consolidation history (January 2026) - Updated file references (API_REFERENCE → REST_API_REFERENCE) - Documented archival of 33 files - Added benefits of consolidation - Updated statistics and highlights - Removed outdated references - Professional writing style maintained throughout * docs: add Vegas scroll mode system architecture documentation Added comprehensive internal architecture section for Vegas mode: - Component overview with diagram - VegasModeCoordinator responsibilities and main loop - StreamManager buffering strategy and content flow - PluginAdapter integration and fallback behavior - RenderPipeline 125 FPS rendering process - Component interaction flows - Thread safety patterns - Performance characteristics Covers: - How the four components work together - Initialization and render loop flows - Config update handling - Frame rate management and optimization - Memory usage and CPU characteristics --------- Co-authored-by: Chuck <chuck@example.com>
6.6 KiB
Plugin Config Schema Audit and Standardization - Summary
Overview
Completed comprehensive audit and standardization of all 12 plugin configuration schemas in the LEDMatrix project.
Results
Validation Status
- ✅ All 12 schemas pass JSON Schema Draft-07 validation
- ✅ All schemas successfully load via SchemaManager
- ✅ All schemas generate default configurations correctly
Standardization Achievements
-
Common Fields Standardized
- ✅ All plugins now have
enabledas the first property - ✅ All plugins have standardized
display_durationfield (where applicable) - ✅ Added
live_priorityto plugins that support live content - ✅ Added
high_performance_transitionsto all plugins - ✅ Added
transitionobject to all plugins - ✅ Standardized
update_intervalnaming (replacedupdate_interval_secondswhere appropriate)
- ✅ All plugins now have
-
Metadata Improvements
- ✅ Added
titlefield to all schemas (12/12) - ✅ Added
descriptionfield to all schemas (12/12) - ✅ Improved descriptions to be clearer and more user-friendly
- ✅ Added
-
Property Ordering
- ✅ All schemas follow consistent ordering: common fields first, then plugin-specific
- ✅ Order:
enabled→display_duration→live_priority→high_performance_transitions→update_interval→transition→ plugin-specific
-
Formatting
- ✅ Consistent 2-space indentation throughout
- ✅ Consistent spacing and structure
- ✅ All schemas use
additionalProperties: falsefor strict validation
Plugins Updated
- baseball-scoreboard - Added common fields, standardized naming
- clock-simple - Added title, description, common fields, improved descriptions
- football-scoreboard - Reordered properties (enabled first), added common fields, standardized naming
- hockey-scoreboard - Added title, description, common fields, standardized naming
- ledmatrix-flights - Added common fields
- ledmatrix-leaderboard - Added common fields, moved update_interval to top level
- ledmatrix-stocks - Added common fields, fixed update_interval type
- ledmatrix-weather - Added missing
enabledfield, added title/description, reordered properties, added common fields - odds-ticker - Added common fields
- static-image - Added title and description
- text-display - Added title, description, common fields, improved descriptions
Key Changes by Plugin
clock-simple
- Added title and description
- Added
live_priority,high_performance_transitions,transition - Improved field descriptions
- Reordered properties
text-display
- Added title and description
- Added
live_priority,high_performance_transitions,update_interval,transition - Improved field descriptions
- Reordered properties
ledmatrix-weather
- Critical fix: Added missing
enabledfield (was completely missing) - Added title and description
- Reordered properties (enabled first)
- Added
live_priority,high_performance_transitions,transition - Added
enabledto required fields
football-scoreboard
- Reordered properties (enabled first)
- Renamed
update_interval_secondstoupdate_intervalat top level - Added
live_priority,high_performance_transitions,transition - Added
enabledto required fields - Improved title and description
hockey-scoreboard
- Added title and description
- Renamed top-level
update_interval_secondstoupdate_interval - Added
live_priority,high_performance_transitions,transition - Note: Nested league configs still use
update_interval_seconds(intentional for clarity in nested contexts)
baseball-scoreboard
- Renamed
update_interval_secondstoupdate_intervalat top level - Added
high_performance_transitions,transition - Note: Nested league configs still use
update_interval_seconds(intentional)
ledmatrix-leaderboard
- Added
display_duration,live_priority,high_performance_transitions,update_interval,transitionat top level - Removed duplicate
update_intervalfromglobalobject (moved to top level)
ledmatrix-stocks
- Changed
update_intervaltype fromnumbertointeger - Added
live_priority,high_performance_transitions,transition
odds-ticker
- Added
live_priority,high_performance_transitions,transition
ledmatrix-flights
- Added
live_priority,high_performance_transitions,transition
static-image
- Added title and description
Notes on "Duplicates"
The analysis script detected many "duplicate" fields, but these are false positives. The script flags nested objects with the same field names (e.g., enabled in multiple nested objects), which is valid and expected in JSON Schema. These are not actual duplicates - they're properly scoped within their respective object contexts.
For example:
enabledat root level vsenabledinnfl.enabled- these are different properties in different contextsdynamic_durationat root vsnfl.dynamic_duration- these are separate, valid nested configurations
Validation Alignment
The validate_config() methods in plugin managers focus on business logic validation (e.g., timezone validation, enum checks), while the JSON Schema handles:
- Type validation
- Constraint validation (min/max, pattern matching)
- Required field validation
- Default value application
This separation is correct and follows best practices.
Testing
All schemas were verified to:
- ✅ Pass JSON Schema Draft-07 validation
- ✅ Load successfully via SchemaManager
- ✅ Generate default configurations correctly
- ✅ Have consistent formatting and structure
Next Steps (Optional)
- Consider updating plugin manager code that uses
update_interval_secondsto useupdate_intervalfor consistency (if not in nested contexts) - Review validate_config() methods to ensure they align with schema constraints (most already do)
- Consider adding more detailed enum descriptions where helpful
Files Modified
plugins/baseball-scoreboard/config_schema.jsonplugins/clock-simple/config_schema.jsonplugins/football-scoreboard/config_schema.jsonplugins/hockey-scoreboard/config_schema.jsonplugins/ledmatrix-flights/config_schema.jsonplugins/ledmatrix-leaderboard/config_schema.jsonplugins/ledmatrix-stocks/config_schema.jsonplugins/ledmatrix-weather/config_schema.jsonplugins/odds-ticker/config_schema.jsonplugins/static-image/config_schema.jsonplugins/text-display/config_schema.json
Analysis Script
Created scripts/analyze_plugin_schemas.py for ongoing schema validation and analysis.