Skip to content

Releases: X9X0/LabLink

LabLink v1.2.1 - Security Patch Release

07 Dec 06:08

Choose a tag to compare

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

07 Dec 04:50
5fa691b

Choose a tag to compare

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.py for 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/LabLink

1.0.1

29 Nov 04:04
a11506f

Choose a tag to compare

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

14 Nov 21:18
0021594

Choose a tag to compare

🎉 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 ✅

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
    ...

Read more