๐ Major Refactoring Release
This release completes a comprehensive refactoring of the MeshMonitor application, extracting state management into focused contexts for better maintainability and testability.
โจ What's New
App.tsx Context Architecture
Successfully decomposed App.tsx by extracting 45 state variables into 5 focused contexts:
- SettingsContext (5 variables) - User preferences and application settings
- MapContext (10 variables) - Map display and interaction state
- DataContext (11 variables) - Core application data (nodes, channels, messages)
- MessagingContext (8 variables) - Message composition and conversation state
- UIContext (10 variables) - UI state, sorting, filtering, and modals
Test Coverage Improvements
- Added 53 comprehensive type validation tests
- Total test suite: 335 passing tests
- All contexts include comprehensive test coverage
Technical Improvements
- โ Clear separation of concerns with focused contexts
- โ All setters support React.SetStateAction for functional updates
- โ Proper TypeScript types throughout
- โ Zero breaking changes
- โ Clean TypeScript compilation
- โ Improved maintainability and code organization
๐ Refactoring Statistics
State Variables Extracted: 45 total
- SettingsContext: 5
- MapContext: 10
- DataContext: 11
- MessagingContext: 8
- UIContext: 10
PRs Merged:
- #122: ConfigurationTab modularization (Phase 1)
- #123: SettingsContext (Phase 2.1)
- #124: MapContext (Phase 2.2)
- #125: DataContext (Phase 3)
- #126: MessagingContext (Phase 4)
- #127: UIContext (Phase 5)
๐ง No Breaking Changes
All refactoring was done in a backward-compatible way. The application functionality remains unchanged while the codebase is now significantly more maintainable.
๐ Bug Fixes
The refactoring also ensures proper type safety and eliminates potential state management bugs through consistent use of React context patterns.
Full Changelog: v1.16.0...v1.17.0
๐ค Generated with Claude Code
What's Changed
- feat: comprehensive device configuration UI (v1.16.0) by @Yeraze in #118
- refactor: centralized logging system and refactoring plan by @Yeraze in #119
- refactor: complete frontend logging migration by @Yeraze in #120
- refactor: complete backend logging migration (Phase 3) by @Yeraze in #121
- refactor: modularize ConfigurationTab (Phase 1 of refactoring plan) by @Yeraze in #122
- refactor: extract settings to SettingsContext (Phase 2.1 of App.tsx decomposition) by @Yeraze in #123
- refactor: extract map state to MapContext (Phase 2.2) by @Yeraze in #124
- refactor: extract data management to DataContext (Phase 3) by @Yeraze in #125
- refactor: extract messaging state to MessagingContext (Phase 4) by @Yeraze in #126
- refactor: extract UI state to UIContext (Phase 5) by @Yeraze in #127
Full Changelog: v1.15.0...v1.17.0
๐ MeshMonitor v1.17.0
๐ฆ Installation
Docker (recommended):
docker run -d \
--name meshmonitor \
-p 8080:3001 \
-v meshmonitor-data:/data \
ghcr.io/Yeraze/meshmonitor:v1.17.0๐งช Testing
โ
All tests passed
โ
TypeScript checks passed
โ
Docker images built for linux/amd64, linux/arm64, linux/arm/v7
๐ Changes
See commit history for detailed changes.