v1.3.0: Diagnostics Testing, Remote Updates, Performance Optimizations & Pi Discovery #87
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Overview
This major release adds comprehensive diagnostics testing, remote server update capabilities, significant performance improvements, Raspberry Pi network discovery, and critical bug fixes for production stability.
🧪 Diagnostics & Testing (v1.3.0)
Comprehensive Test Suite
Statistics Integration
🔄 Remote Server Update System
Update Management
Advanced Features
API Endpoints
GET /api/system/version- Get current versionGET /api/system/update/status- Check update statusPOST /api/system/update/check- Check for available updatesPOST /api/system/update/start- Start update processPOST /api/system/update/rollback- Rollback to previous versionPOST /api/system/update/configure-rebuild- Configure auto-rebuildPOST /api/system/update/rebuild- Execute Docker rebuildPOST /api/system/update/configure-scheduled- Configure scheduled checksPOST /api/system/update/scheduled/start- Start scheduled checksPOST /api/system/update/scheduled/stop- Stop scheduled checks🚀 Performance Optimizations
Diagnostics Caching
Async GUI Operations
Impact: Eliminated UI freezing during diagnostics and update checks
🔍 Raspberry Pi Network Discovery
Intelligent Device Detection
B8:27:EB(older models)DC:A6:32(newer models)E4:5F:01(Pi 4 and newer)D8:3A:DD(various models)28:CD:C1(Zero W and others)Discovery Features
API Endpoints
POST /api/discovery/pi/scan- Scan network for Raspberry PisGET /api/discovery/pi/status- Get cached scan resultsClient Features
New Files:
server/discovery/pi_discovery.py(381 lines)client/ui/pi_discovery_panel.py(433 lines)🐛 Critical Bug Fixes
1. File Descriptor Leak (CRITICAL)
Problem: Server exhausted file descriptors after ~8-9 hours
[Errno 24] Too many open filescausing discovery and web UI failures2. Docker Permission Issues (Pi Images)
Problem: Fresh Pi images showed permission denied for docker commands
lablink-start,lablink-stop,lablink-restart,lablink-logs3. Pi Discovery Connection Check
Problem: Client crashed when scanning before connecting to server
'NoneType' object has no attribute 'scan_raspberry_pis'4. Equipment Manager Attribute Access
Problem: Diagnostic report generation failed with AttributeError
equipment_manager._equipment→equipment_manager.equipment📁 Files Changed
Server (Backend)
server/diagnostics/manager.py- Health check caching, resource cleanupserver/discovery/pi_discovery.py- NEW - Pi network discovery (381 lines)server/discovery/__init__.py- Export Pi discovery classesserver/discovery/manager.py- Add shutdown() method, VISA cleanupserver/discovery/visa_scanner.py- Fix file descriptor leakserver/api/discovery.py- Pi discovery API endpointsserver/system/update_manager.py- Remote update systemserver/api/system.py- Update management endpointsClient (Frontend)
client/api/client.py- Pi discovery & update API methodsclient/ui/system_panel.py- AsyncWorker, update management UIclient/ui/pi_discovery_panel.py- NEW - Pi Discovery GUI (433 lines)client/ui/main_window.py- Integrated Pi Discovery tabInfrastructure
build-pi-image.sh- Add sudo to helper commandsROADMAP.md- Document v1.3.0 featuresREADME.md- Update feature list🧪 Testing
Diagnostics Tests
Performance
Pi Discovery
Bug Fixes
🚀 Deployment Notes
Server Update Required
To use Pi Discovery and remote update features, servers must be updated to this version.
Breaking Changes
None - fully backward compatible with existing LabLink installations
Migration
No database migrations or configuration changes required. Existing installations will continue working normally.
📊 Metrics
🎯 Impact
For Users
For Developers
📚 Documentation
🔗 Related Issues
👥 Credits
This release represents significant improvements to LabLink's stability, performance, and usability for laboratory equipment control.