From eb21715050606b843eb2256e712b695bede21393 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D0=BD=D1=82=D0=BE=D0=BD=20=D0=A2=D1=80=D0=BE=D1=88?= =?UTF-8?q?=D0=B8=D0=BD?= Date: Mon, 24 Aug 2026 23:28:35 +0300 Subject: [PATCH] OTA status stays on the SP page, not in the header; v1.9.7 pysimSendOta wrote its progress/verdict into #pysim-status - the shared header line owned by connect/equip/poll logic - clobbering the card status shown under 'Equip card'. OTA outcomes now live exclusively on the Secured Packet page: - send start: small gray 'Sending OTA...' in #sp-send-result - verdicts: big #sp-por-status + details line, as before - header #pysim-status untouched by OTA flows Version housekeeping: v1.9.6 -> 1.9.7 everywhere; SW cache otaman-v17 -> otaman-v18. Also realigns pyproject.toml which the multi-amend rounds had left stale at 1.9.5. --- docs/api.md | 2 +- frontend/index.html | 17 +++++++---------- frontend/sw.js | 2 +- pyproject.toml | 2 +- pysim_otaman_server/server.py | 2 +- 5 files changed, 11 insertions(+), 14 deletions(-) diff --git a/docs/api.md b/docs/api.md index e0f16b4..a28e21e 100644 --- a/docs/api.md +++ b/docs/api.md @@ -54,7 +54,7 @@ Returns server version for compatibility checking. **Example response:** ```json -{"version": "1.9.6"} +{"version": "1.9.7"} ``` ### `GET /api/status` diff --git a/frontend/index.html b/frontend/index.html index f174b12..49efd97 100644 --- a/frontend/index.html +++ b/frontend/index.html @@ -18,7 +18,7 @@
-

OTAMan SIM OTA with a Human Face v1.9.6

+

OTAMan SIM OTA with a Human Face v1.9.7

github @@ -4085,12 +4085,12 @@ async function pysimSendOta() { } const sp = document.getElementById('sp-result').value.replace(/[^0-9a-fA-F]/g, '').toUpperCase(); if (!sp) { alert('No secured packet to send. Generate a secure packet first.'); return; } - const statusEl = document.getElementById('pysim-status'); const sendResultEl = document.getElementById('sp-send-result'); const porStatusEl = document.getElementById('sp-por-status'); - sendResultEl.classList.add('hidden'); + sendResultEl.classList.remove('hidden', 'text-red-600', 'text-green-600'); + sendResultEl.classList.add('text-gray-500'); + sendResultEl.textContent = t('Sending OTA...'); porStatusEl.classList.add('hidden'); - statusEl.innerHTML = '' + t('Sending OTA...') + ''; try { const data = await pysimFetch('/api/send-ota', { sp, ...spParams() }); if (data.success) { @@ -4125,23 +4125,20 @@ async function pysimSendOta() { rawLine.textContent = 'raw PoR: ' + por.raw; sendResultEl.appendChild(rawLine); } - sendResultEl.classList.remove('hidden', 'text-red-600'); + sendResultEl.classList.remove('hidden', 'text-red-600', 'text-gray-500'); sendResultEl.classList.add('text-green-600'); - statusEl.innerHTML = '' + esc(msg) + ''; } else { let msg = 'OTA failed'; if (data.error) msg += ': ' + data.error; if (data.sw) msg += (data.error ? ' | ' : ': ') + 'SW ' + data.sw; sendResultEl.textContent = msg; - sendResultEl.classList.remove('hidden', 'text-green-600'); + sendResultEl.classList.remove('hidden', 'text-green-600', 'text-gray-500'); sendResultEl.classList.add('text-red-600'); - statusEl.innerHTML = '' + esc(msg) + ''; } } catch (e) { sendResultEl.textContent = 'Error: ' + e.message; - sendResultEl.classList.remove('hidden', 'text-green-600'); + sendResultEl.classList.remove('hidden', 'text-green-600', 'text-gray-500'); sendResultEl.classList.add('text-red-600'); - statusEl.innerHTML = 'Error: ' + esc(e.message) + ''; } } diff --git a/frontend/sw.js b/frontend/sw.js index caf0d21..8c69078 100644 --- a/frontend/sw.js +++ b/frontend/sw.js @@ -1,4 +1,4 @@ -const CACHE = 'otaman-v17'; +const CACHE = 'otaman-v18'; const URLS = [ 'index.html', 'help.html', diff --git a/pyproject.toml b/pyproject.toml index d9e89e5..16e428c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "pysim-otaman-server" -version = "1.9.5" +version = "1.9.7" description = "HTTP REST server wrapping pysim for the OTAMan PWA" requires-python = ">=3.8" # pysim is a git-only dependency installed explicitly by setup.bat/setup.sh. diff --git a/pysim_otaman_server/server.py b/pysim_otaman_server/server.py index 104bc85..d343beb 100644 --- a/pysim_otaman_server/server.py +++ b/pysim_otaman_server/server.py @@ -18,7 +18,7 @@ from osmocom.construct import GsmOrUcs2Adapter from osmocom.tlv import BER_TLV_IE -VERSION = '1.9.6' +VERSION = '1.9.7' # Static file serving (the PWA lives in /frontend, served by this server