Releases: X9X0/LabLink
LabLink v1.2.1 - Security Patch Release
Summary of v1.2.1 Release
Type: Security Patch Release
Date: 2025-12-07
Security Fixes:
- 🔴 5 High severity CVEs
- 🟡 7 Medium severity CVEs
- 🟢 1 Low severity CVE
- Total: 13 vulnerabilities fixed
Updated Packages:
- requests: 2.31.0 → 2.32.4
- aiohttp: 3.9.1 → 3.12.14
- node-forge: 1.2.1 → 1.3.3
- glob: 10.4.2 → 10.5.0
- Removed: scapy (RCE vulnerability, no patch)
Configuration:
- Dependabot grouping configured
- PR limits reduced for cleaner management
- 29 legacy PRs closed, 36 branches deleted
LabLink v1.2.0 - Server Update System, UI Improvements & Version Management
LabLink v1.2.0
Release Date: December 6, 2025
🎯 Overview
LabLink v1.2.0 introduces a comprehensive server update system, significant UI improvements, and a unified version management infrastructure. This release streamlines the update
workflow, enhances user experience, and establishes consistent versioning across all components.
✨ New Features
Server Update System (#114, #118, #119)
Complete update management with flexible deployment options:
- Stable/Development Modes: Choose between release tags or development branches
- Client-Driven Updates: Client manages server updates with git-based version tracking
- Docker Rebuild Support: Automatic and manual Docker rebuild options
- Local & Remote Updates: Support for local Docker or remote (SSH) server updates
- Progress Tracking: Visual feedback during update operations
Smart Branch Filtering (#120)
Intelligent branch management for cleaner workflows:
- Auto-Filter: Hides dependabot and automated branches by default
- Active Branches Only: Shows only branches with commits in the last 3 months
- Smart Sorting: Branches sorted by most recent commit
- Toggle View: "Show all branches" option for complete visibility
UI Consolidation (#120)
Streamlined interface for better usability:
- Unified Server Updates: Merged duplicate update sections into single interface
- Reduced Window Height: 30-40% reduction in overall window height
- Progress Bars: Visual progress tracking for local and remote operations
Enhanced Dropdown Visibility (#120)
System-wide dropdown styling improvements:
- Light Blue Hover States: Improved readability on selection
- High Contrast Text: Consistent black text for maximum visibility
- Better Accessibility: Enhanced visual feedback across all dropdowns
Version Management System
Single-source versioning infrastructure:
- VERSION File: Unified version source for server, client, and launcher
- Automated Bump Script:
scripts/bump_version.pyfor version increments - Comprehensive Docs: Complete versioning guide in
docs/VERSIONING.md - Semantic Versioning: Strict adherence to semver 2.0.0
🐛 Bug Fixes
- #121: Fixed SSH deployment wizard Next button not working
- #108: Resolved multiple device discovery issues
- #106: Fixed client login crash on connection
- #105: Corrected Ubuntu deployment configuration issues
📝 Changes & Improvements
Version System
- Unified version across all components (server, client, launcher, Docker)
- All components now read from single VERSION file
- Dynamic version loading at runtime with fallback handling
Copyright & Documentation
- Updated copyright to © 2025 (project start year)
- Standardized copyright notices across all files
- Complete retroactive CHANGELOG with 30-version history
- Comprehensive version management documentation
📚 Documentation
New and updated documentation:
docs/VERSIONING.md- Complete version management guide (310 lines)- Single-source architecture explanation
- Semantic versioning guidelines
- Automated bumping procedures
- Troubleshooting guide
scripts/bump_version.py- Automated version bump tool (250 lines)- Support for major/minor/patch increments
- Automatic CHANGELOG updates
- Git commit and tag creation
- Dry-run mode for testing
CHANGELOG.md- Retroactive history (877 lines)- 30 versions documented (0.1.0 → 1.2.0)
- Complete development timeline
- Comprehensive feature documentation
🚀 Upgrade Instructions
From v1.0.1
If using Docker:
cd /path/to/LabLink
git pull origin main
docker compose down
docker compose build --no-cache
docker compose up -d
If using native installation:
cd /path/to/LabLink
git pull origin main
# Restart server and client
Verify version:
cat VERSION # Should show: 1.2.0
python3 -c "from server.system.version import get_version; print(get_version())"
---
🔧 Technical Details
Version Management
- Single SOURCE: All components read from VERSION file
- Files Modified:
- VERSION - Source of truth
- client/main.py - Dynamic version reading
- lablink.py - Launcher version from VERSION
- docker/Dockerfile.* - Labels updated
- README.md - Badge updated
Update System Architecture
Client (with git) → Check Server Version → Compare with Local Git
↓
Update Available?
↓
Select Version/Branch → Checkout Git Ref → Rebuild Docker
↓
(Automatic or Manual)
---
📊 Release Statistics
- Issues Closed: 7 (#105, #106, #108, #114, #118, #119, #121)
- Files Modified: 11 core files
- Documentation Added: 3 major documents (1,437 total lines)
- Code Changes: Version management, update system, UI improvements
- Development Timeline: v1.0.1 (Nov 28) → v1.2.0 (Dec 6) - 8 days
---
🎯 What's Next
See our ROADMAP.md for upcoming features and improvements.
---
📝 Full Changelog
For complete version history including all 30 versions from 0.1.0 to 1.2.0, see CHANGELOG.md.
---
💬 Feedback & Support
- Issues: https://github.com/X9X0/LabLink/issues
- Discussions: https://github.com/X9X0/LabLink/discussions
- Documentation: See docs/ directory
---
Copyright: © 2025 LabLink Project
License: MIT
Repository: https://github.com/X9X0/LabLink1.0.1
What's Changed
- Doc Cleanup / Condense by @X9X0 in #66
- Mobile App Development by @X9X0 in #67
- Create Ubuntu setup guide for new users by @X9X0 in #68
- fix: Improve bootstrap error handling for missing pip by @X9X0 in #69
- fix: Complete launcher overhaul for Ubuntu 24.04 - dependency management, UX improvements, and missing packages by @X9X0 in #70
- fix: Complete launcher and client-server integration fixes by @X9X0 in #71
- fix: Auto-create venv for PyQt6 on externally-managed systems (PEP 668) by @X9X0 in #72
- feat: Add dark theme and optimize package checking performance by @X9X0 in #73
- fix: Pi Image Builder and SD Card Writer - WiFi auto-connect, hostname config, and reliability improvements by @X9X0 in #74
- fix: Complete Raspberry Pi image builder fixes for security system and default credentials by @X9X0 in #75
- fix: Add advanced security environment variables to docker-compose.yml by @X9X0 in #76
- Claude/complete websocket integration 015ck w mi g9x ac f718 seayvat by @X9X0 in #77
- docs: Update ROADMAP.md to reflect completed priorities and current project status by @X9X0 in #78
- feat: Add advanced waveform analysis tools by @X9X0 in #79
- Add Automated Test Sequence Builder GUI with Visual Editor by @X9X0 in #80
- feat: Add remote firmware update system with 11 API endpoints by @X9X0 in #81
- Advanced Visualization features by @X9X0 in #82
- test: Complete Phase 1 critical safety & core test coverage (362 tests, 26% → 52-54%) by @X9X0 in #83
- feat: Add comprehensive diagnostics test suite and integrate stats by @X9X0 in #84
- Performance Optimizations and Raspberry Pi Network Discovery by @X9X0 in #85
- fix: Critical file descriptor leak in VISA discovery scanner by @X9X0 in #86
- v1.3.0: Diagnostics Testing, Remote Updates, Performance Optimizations & Pi Discovery by @X9X0 in #87
- fix: Resolve Pi server connection issues and add comprehensive diagnostics by @X9X0 in #88
- fix: Resolve Pi server connection issues and add comprehensive diagnostics system by @X9X0 in #89
- feat: Add lablink-update command for easy code updates by @X9X0 in #90
- fix: Make Pi diagnostics run on host instead of inside container by @X9X0 in #91
- Refactor Pi Discovery to client-side with enhanced debugging and MAC masquerading support by @X9X0 in #92
- feat: Async equipment discovery with responsive UI and connection fixes by @X9X0 in #98
- fix: Generate deterministic equipment IDs to prevent 404 errors on reconnection by @X9X0 in #99
- Fix equipment readings 404 errors and implement BK Precision protocol support by @X9X0 in #101
- Fix equipment readings 404 errors and implement BK Precision protocol support by @X9X0 in #100
- Fix equipment disconnect UI: proper success message and complete UI clearing by @X9X0 in #102
- Equipment Control Panel with Professional Analog Gauges and Serial Communication Improvements by @X9X0 in #103
Full Changelog: v1.0.0...1.0.1
LabLink v1.0.0 - First Production Release
🎉 LabLink v1.0.0 - First Production Release
Release Date: January 14, 2025
Status: Production Ready
Codename: "Foundation"
🚀 Welcome to LabLink v1.0.0!
We're thrilled to announce the first production release of LabLink - a comprehensive laboratory equipment management system that brings unified control, security, and monitoring to your lab equipment through a modern, RESTful API.
After months of development, rigorous testing, security hardening, and performance optimization, LabLink is ready for production deployment!
✨ What is LabLink?
LabLink is a modular client-server application that enables remote control and data acquisition from laboratory equipment. Whether you're managing oscilloscopes, power supplies, electronic loads, or spectrum analyzers, LabLink provides:
-
🎛️ Unified Equipment Control - Single API for diverse lab equipment
-
🔒 Enterprise Security - MFA/2FA, RBAC, OAuth2 integration
-
📊 Real-time Monitoring - WebSocket streaming and live updates
-
🔍 Complete Audit Trail - Every command logged with execution times
-
📱 Mobile-Ready API - 100% validated for mobile applications
-
⚡ High Performance - Benchmarked and profiled for production use
🎯 Key Features
Equipment Management
✅ Universal Equipment Interface - Control any lab equipment through a consistent API
✅ Multi-Vendor Support - Rigol, BK Precision, and more
✅ Automatic Discovery - Find equipment via VISA, Zeroconf, GPIB
✅ Real-time Updates - WebSocket streaming for live monitoring
✅ Command History - Complete audit trail with timestamps and execution times
✅ Equipment Profiles - Save and restore configurations
Security & Authentication 🔒
✅ Multi-Factor Authentication - TOTP-based 2FA with QR code provisioning
✅ Role-Based Access Control - Granular permissions for users and equipment
✅ OAuth2 Integration - Google, GitHub, Microsoft single sign-on
✅ API Key Authentication - Long-lived keys for automation
✅ Session Management - Secure sessions with automatic expiration
✅ Account Protection - Automatic lockout after failed login attempts
✅ Bcrypt Password Hashing - Industry-standard password security
Data & Logging 📊
✅ SQLite Database - Embedded database for equipment data and logs
✅ Automated Backups - Scheduled and on-demand with compression
✅ Structured Logging - JSON logging with rotation and metrics
✅ Audit Trail - Complete history of all equipment interactions
✅ Performance Metrics - Built-in monitoring and profiling
API & Integration 🔌
✅ RESTful API - Comprehensive REST endpoints with OpenAPI docs
✅ WebSocket Support - Real-time bidirectional communication
✅ MQTT Integration - IoT device connectivity
✅ Mobile-Compatible - 100% validated for mobile apps
✅ Swagger UI - Interactive API documentation at /docs
🔒 Security Hardening (Phase 3)
We take security seriously. v1.0.0 includes comprehensive security improvements:
Vulnerabilities Fixed ✅
-
FIXED FastAPI ReDoS vulnerability (PYSEC-2024-38)
-
FIXED Starlette DoS - Large forms (GHSA-f96h-pmfr-66vw)
-
FIXED Starlette DoS - File upload (GHSA-2c2j-9gv5-cj73)
Security Infrastructure ✅
-
BLOCKING security scans in CI/CD pipeline
-
Automated vulnerability detection with pip-audit
-
Comprehensive security documentation (587 lines of best practices)
-
Security audit process established and documented
Documented Acceptable Risks ⚠️
-
pip 24.0 vulnerability (dev/CI only, not in production runtime)
-
ecdsa timing attack (orphaned dependency, not used by LabLink)
Result: Zero critical vulnerabilities in production dependencies ✅
🧪 Testing & Quality (Phase 2)
v1.0.0 is backed by comprehensive testing and quality assurance:
Test Coverage
-
✅ 137 core tests passing (server + performance)
-
✅ 26% overall coverage, 70%+ on critical paths
-
✅ 10 performance benchmarks established
-
✅ Zero critical test failures
Test Categories
-
✅ Unit tests (component isolation)
-
✅ Integration tests (cross-module workflows)
-
✅ API endpoint tests (REST API validation)
-
✅ Security tests (authentication, RBAC, MFA)
-
✅ Performance benchmarks (baseline metrics)
-
✅ Model validation tests (Pydantic schemas)
Code Quality
-
✅ Type hints on all critical functions (PEP 484)
-
✅ Zero dead code - All unused imports removed
-
✅ Lint clean - No critical warnings
-
✅ Documented - Comprehensive docstrings
⚡ Performance (Phase 3)
Every critical operation has been benchmarked and profiled:
| Operation | Performance | Status |
|-----------|-------------|--------|
| Password hashing | 264 ms | ✅ Secure (intentionally slow) |
| TOTP verification | 484 μs | ✅ Real-time capable |
| Command logging | 9.47 ms | ✅ Async, non-blocking |
| Database queries | 1.36 ms | ✅ Fast retrieval |
| Model validation | <2 μs | ✅ Negligible overhead |
| Backup operations | <4 μs | ✅ Background tasks |
Profiling Infrastructure:
-
Complete profiling utilities with decorators
-
Automated critical path profiler
-
Production-safe conditional profiling
-
Comprehensive 587-line profiling guide
📦 What's Included
Dependencies
-
FastAPI 0.115+ - Modern web framework with async support
-
Pydantic 2.x - Fast data validation with Rust core
-
PyJWT 2.x - Secure JWT token handling
-
bcrypt 4.x - Industry-standard password hashing
-
pyotp 2.x - TOTP/MFA implementation
-
SQLAlchemy 2.x - Robust database ORM
Documentation (2,500+ lines)
-
📘 CHANGELOG.md - Complete version history
-
📘 Security Best Practices - 587-line security guide
-
📘 Performance Baseline - Comprehensive metrics documentation
-
📘 Profiling Guide - How to profile and optimize
-
📘 Phase Summaries - Complete development history
-
📘 API Documentation - OpenAPI/Swagger at
/docs
Tools & Scripts
-
⚙️ Performance profiler - Automated critical path analysis
-
⚙️ Setup scripts - Easy installation and configuration
-
⚙️ CI/CD workflows - Comprehensive GitHub Actions
🚀 Getting Started
Quick Start
# Clone the repository
git clone https://github.com/X9X0/LabLink.git
cd LabLink
# Install dependencies
pip install -r server/requirements.txt
pip install -r shared/requirements.txt
# Run the server
python -m server.main
# Access API documentation
# Open browser to http://localhost:8000/docs
Run Tests
# All tests
pytest
# With coverage
pytest --cov=server --cov=client --cov=shared
# Performance benchmarks
pytest tests/performance/ --benchmark-only
Security Scan
# Install security tools
pip install pip-audit
# Run security audit
pip-audit --desc
Performance Profiling
# Profile critical paths
python scripts/profile_critical_paths.py --all
# View results with snakeviz
pip install snakeviz
snakeviz /tmp/lablink_profiles/*.prof
📊 By the Numbers
Development Phases
-
✅ Phase 1: Core Features & Architecture
-
✅ Phase 2: Test Coverage Sprint (137 tests, 26% coverage)
-
✅ Phase 3: Production Hardening (security + performance)
-
✅ Phase 4: v1.0.0 Release (this release!)
Quality Metrics
-
7,000+ lines of code added
-
2,500+ lines of documentation
-
137 tests passing
-
10 performance benchmarks
-
60% of vulnerabilities eliminated
-
100% of success criteria met
Time to Production
-
~4 hours for Phase 3 (security hardening)
-
~2 weeks for Phase 2 (test coverage)
-
Multiple months total development
🎯 Production Readiness Checklist
-
✅ All version numbers consistent (v1.0.0)
-
✅ Test coverage ≥ 26% with critical paths at 70%+
-
✅ All critical security issues resolved
-
✅ Code formatted and linted
-
✅ No critical errors
-
✅ CI/CD checks passing
-
✅ Documentation complete
-
✅ Performance benchmarks documented
-
✅ Docker deployment validated
-
✅ Installation scripts tested
Result: 10/10 criteria met ✅
📚 Documentation
Comprehensive documentation is available:
-
Quick Start: README.md
-
API Reference: http://localhost:8000/docs (when running)
-
Security Guide: docs/security/best_practices.md
-
Performance Metrics: docs/performance/baseline_metrics.md
-
Profiling Guide: docs/performance/profiling_guide.md
-
Version History: CHANGELOG.md
-
Roadmap: ROADMAP.md
🐛 Known Issues
Acceptable for v1.0.0
Security:
-
⚠️ pip 24.0 vulnerability (dev/CI only, documented) -
⚠️ ecdsa timing attack (orphaned dependency, not used)
Testing:
-
⚠️ Hardware tests skipped (54 tests - requires physical equipment) -
ℹ️ Some test fixtures need updates (non-blocking technical debt)
None of these affect production deployments. All critical functionality is tested and secure.
🔮 What's Next?
v1.1.0 - Mobile App (Planned: 4-6 weeks)
-
📱 React Native mobile application
-
📱 iOS and Android support
...