v2.26.0: fix SSE fanout crash and branded logo FOUC

- Fix SSE fanout thread AttributeError when source queue is None during
  interpreter shutdown by snapshotting to local variable with null guard
- Fix branded "i" logo rendering oversized on first page load (FOUC) by
  adding inline width/height to SVG elements across 10 templates
- Bump version to 2.26.0 in config.py, pyproject.toml, and CHANGELOG.md

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Smittix
2026-03-13 11:51:27 +00:00
parent 00362bcd57
commit e00fbfddc1
183 changed files with 2006 additions and 4243 deletions
+9 -5
View File
@@ -9,10 +9,10 @@ Tests cover:
"""
import json
import pytest
from unittest.mock import Mock, patch, MagicMock
from datetime import datetime, timezone
from unittest.mock import Mock, patch
import pytest
# =============================================================================
# Utility Module Tests
@@ -173,9 +173,10 @@ class TestPSKParsing:
def test_parse_psk_base64(self):
"""Should decode base64 PSK."""
from utils.meshtastic import MeshtasticClient
import base64
from utils.meshtastic import MeshtasticClient
client = MeshtasticClient()
# 32-byte key encoded as base64
key = b'A' * 32
@@ -197,9 +198,10 @@ class TestPSKParsing:
def test_parse_psk_simple_passphrase(self):
"""Should hash simple passphrase to 32-byte key."""
from utils.meshtastic import MeshtasticClient
import hashlib
from utils.meshtastic import MeshtasticClient
client = MeshtasticClient()
result = client._parse_psk('simple:MySecretPassword')
@@ -218,9 +220,10 @@ class TestPSKParsing:
def test_parse_psk_raw_base64(self):
"""Should accept raw base64 without prefix."""
from utils.meshtastic import MeshtasticClient
import base64
from utils.meshtastic import MeshtasticClient
client = MeshtasticClient()
key = b'B' * 16
encoded = base64.b64encode(key).decode()
@@ -261,6 +264,7 @@ class TestMeshtasticRoutes:
def app(self):
"""Create Flask test app."""
from flask import Flask
from routes.meshtastic import meshtastic_bp
app = Flask(__name__)