- focusMessage()/scrollToType() highlighted the target and removed the class after 1500 ms, so a Files-row (or map/category) jump looked selected for a moment and then lost it; on top of that any re-render (the 500 ms live poll, a filter/search change) rebuilt the list and dropped the highlight — even for a clicked entry - the selection is now persistent app state (STATE.selectedIdx): the render marks the entry (gap rows included), focusMessage records the index before rendering, showDetail records it for plain clicks, scrollToType persists it too (clearing the previous highlight), and a new session/capture resets it so a stale index cannot mark an unrelated APDU - tests: a stub-driven focusMessage case (state + detail updated, no render and no timer), the filter-clearing case, and source pins for renderMessages, focusMessage, scrollToType, showDetail, loadSession and startCapture; 527 Python + 58 Node tests - README/README_RUS: the jump leaves the record selected; PWA_VERSION/ pyproject/version.py 2.6.2, SW cache simtrace-analyser-v76
22 lines
664 B
TOML
22 lines
664 B
TOML
[build-system]
|
|
requires = ["setuptools>=64"]
|
|
build-backend = "setuptools.backends._legacy:_Backend"
|
|
|
|
[project]
|
|
name = "simtrace-analyser"
|
|
version = "2.6.2"
|
|
description = "SIMtrace Analyser — APDU trace analyser for GSMTAP/PCAP captures (bundles the simtrace2-pysniff utility)"
|
|
readme = {file = "README.md", content-type = "text/markdown"}
|
|
license = {text = "GPL-2.0-or-later"}
|
|
requires-python = ">=3.9"
|
|
dependencies = [
|
|
"pyusb>=1.2",
|
|
]
|
|
|
|
[project.scripts]
|
|
simtrace-analyser-server = "simtrace_analyser.__main__:main"
|
|
simtrace2-pysniff = "simtrace2_pysniff.__main__:main"
|
|
|
|
[tool.setuptools.packages.find]
|
|
include = ["simtrace_analyser*", "simtrace2_pysniff*"]
|