diff --git a/README.md b/README.md index 4a002c4..42adfcd 100644 --- a/README.md +++ b/README.md @@ -7,6 +7,8 @@ that both captures APDU traffic and serves that PWA. **Single dependency**: PyUSB (libusb wrapper). No libosmocore, no libosmosim. +![simtrace-analyser PWA](frontend.png) + ## Features **APDU decoder** (server-side, rendered by the PWA): diff --git a/frontend.png b/frontend.png new file mode 100644 index 0000000..aaab8f3 Binary files /dev/null and b/frontend.png differ diff --git a/frontend/index.html b/frontend/index.html index 5bd5b9a..e4a34af 100644 --- a/frontend/index.html +++ b/frontend/index.html @@ -421,6 +421,7 @@ const STATE = { captureActive: false, currentSessionId: null, currentSessionName: null, + currentSessionRawName: null, sessionViewId: null, sessionStarted: null, livePoller: null, @@ -2364,6 +2365,7 @@ async function loadSession(id) { STATE.sessionStarted = data.session.started; STATE.captureActive = false; STATE.currentSessionName = data.session.name || t('Session #') + id; + STATE.currentSessionRawName = data.session.name || null; STATE.messages = data.messages; STATE.mapExpanded.clear(); switchTab('trace'); @@ -2621,7 +2623,7 @@ function onFilterChange() { } // ──────────────────── Versioning ──────────────────── -const PWA_VERSION = '1.22.14'; +const PWA_VERSION = '1.22.15'; const MIN_SERVER_VERSION = '1.0.0'; function parseVersion(v) { @@ -2773,6 +2775,9 @@ function toggleLang() { localStorage.setItem('lang', currentLang); applyLang(); translatePage(); + if (STATE.sessionViewId) { + el('session-name-display').textContent = t('Session: ') + (STATE.currentSessionRawName || '#' + STATE.sessionViewId); + } updateStatus(); updateCaptureButton(); renderMessages(); diff --git a/frontend/sw.js b/frontend/sw.js index 1bdb0d3..73a3e2a 100644 --- a/frontend/sw.js +++ b/frontend/sw.js @@ -1,4 +1,4 @@ -const CACHE = 'simtrace-analyser-v46'; +const CACHE = 'simtrace-analyser-v47'; const PRECACHE = [ 'index.html', diff --git a/pyproject.toml b/pyproject.toml index 60e8229..fba75f5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.backends._legacy:_Backend" [project] name = "simtrace2-pysniff" -version = "1.22.14" +version = "1.22.15" description = "Python-based sniffing tool for SIMtrace2 hardware (SIM card communication sniffer)" readme = {file = "README.md", content-type = "text/markdown"} license = {text = "GPL-2.0-or-later"} diff --git a/simtrace2_pysniff/__init__.py b/simtrace2_pysniff/__init__.py index 1a2af5b..d4ffc0f 100644 --- a/simtrace2_pysniff/__init__.py +++ b/simtrace2_pysniff/__init__.py @@ -6,7 +6,7 @@ from .gsmtap import GsmtapSender, GsmtapReceiver from .pcap import PcapWriter from .dump import FileDumper, format_message -__version__ = '1.22.14' +__version__ = '1.22.15' __all__ = [ 'SniffSession', 'DeviceDisconnected', diff --git a/tests/test_pcap_import.py b/tests/test_pcap_import.py index fe34278..d248a34 100644 --- a/tests/test_pcap_import.py +++ b/tests/test_pcap_import.py @@ -224,7 +224,7 @@ class TestImportEndpoint(unittest.TestCase): class TestVersion(unittest.TestCase): def test_package_version(self): from simtrace2_pysniff import __version__ - self.assertEqual(__version__, '1.22.14') + self.assertEqual(__version__, '1.22.15') def test_status_includes_version(self): import os