Files
simple/CHANGELOG.md
T
catarrh 7e8c483eb1
release / release (push) Waiting to run
v3.32.4: rebuild the link on card insertion (the first attempt)
v3.32.2 fixed the endless re-arm, but on Windows the first attempt
still failed on the old link (seen in the confirmation log: the
"self._con.connect()" traceback) and only the retry recovered - a failed
init, a 2-4 s delay and a traceback in the log.

The monitor's insert path now marks the transport stale under
_CARD_LOCK, so the first equip attempt rebuilds the PC/SC link.  It also
covers a link created at a cardless startup (never connected).  The
rebuild still happens in the equip worker, never in the pyscard monitor
thread, and _ensure_transport releases the old link first.

Docs: the READMEs' troubleshooting bullet.
Tests: an insertion marks the transport for the rebuild.
1014 Python + 953 frontend green; simple-v462.
2026-10-21 14:44:34 +03:00

4.9 KiB
Raw Blame History

Changelog

All notable changes to SIMple (the PWA and pysim-simple-server). The format follows Keep a Changelog; versions use MAJOR.MINOR.PATCH (see the README).

History before the first packaged release (v3.31.1) lives in the git log — every change carries a descriptive commit message.

[Unreleased]

[3.32.4] — 2026-10-21

Fixed

  • A card insertion now marks the PC/SC link for a rebuild, so the first auto-equip attempt already uses a fresh link. On Windows the old link cannot connect after a swap — v3.32.2 recovered it, but only on the second attempt, after a failed init, a 2–4 s delay and a traceback in the log. A link created at a cardless startup has never connected either, which the same mark covers. The rebuild still runs in the equip worker (never in the pyscard monitor thread) and _ensure_transport releases the old link first.

[3.32.3] — 2026-10-21

Fixed

  • The auto-equip's captured traceback now always includes the exception line: cmd2 renders a rich-box traceback longer than the logged head, so the actual error was cut off (seen in the first Windows confirmation of v3.32.2). The tail is appended after a ... marker.
  • The "releasing the old link failed" message now says it continues with a fresh link — a removed card's dead PC/SC handle always fails to disconnect.

[3.32.2] — 2026-10-21

Fixed

  • The auto-equip loop after a card swap on Windows. A failed initialization with the card still present was reported as "card gone during initialization" and treated as a no-op success — so the three retries never ran and the watchdog re-armed every few seconds forever. It is a failure now, and every failed attempt marks the PC/SC transport for a rebuild, so the retry starts from a fresh link (the release of the old link happens first, so it cannot inherit a stale card handle). The error pySim swallowed is printed as AUTO-EQUIP: init output: with its traceback.

[3.32.1] — 2026-10-21

Added

  • "Start counter value" in the outfile import: the counter every created keyset starts from. It defaults to the store's value (1); raise it for cards whose counters are already past it. The API takes start_counter (1–10 hex digits; a bad value is a 400), and the preview carries the value.

[3.32.0] — 2026-10-21

Added

  • Updating a packaged install — update.sh / update.bat (and tools/update.py beneath them): downloads the latest release package, replaces the application files in place and re-installs the app into the existing .venv. pysim and its prerequisites (the slow part: pyscard builds from source on Linux) are kept, so an update takes seconds. --check reports the current and latest versions, --version picks a specific release, --zip updates from a local package (offline), --no-pip refreshes the files only, --force re-applies the same version.
  • The release workflow now takes the release notes from this file's matching version section (falling back to generated notes when it is missing).

Changed

  • Installs made from the v3.31.x packages have no updater yet: copy update.sh, update.bat and tools/update.py from this package once (or re-run setup from it). Later updates use update.sh / update.bat — or git pull for a clone.

[3.31.2] — 2026-10-20

Changed

  • The SCP81 TLS-PSK listener states its Python requirement: it needs Python 3.13+ (ssl's PSK callbacks exist only since 3.13). Below that it raises a clear error instead of AttributeError, and the PSK tests are skipped (they run on 3.13+).
  • The READMEs and the setup scripts: Windows strongly recommends Python 3.13 (pyscard has wheels up to 3.13; on 3.14 pyscard and some pysim dependency wheels are unavailable and build from source with MSVC).

[3.31.1] — 2026-10-20

The first packaged release (simple-3.31.1.zip).

Added

  • EF_PBR (phonebook reference) support — the PBR is decoded in the decoded file views (the A8/A9/AA containers, the C0–CC kinds, the master EF), and the phonebook files it references (they are not in pySim's model) are added to the file tree server-side, selectable and readable.
  • In-app dialogs — the native alert/confirm/prompt dialogs are replaced by a shared modal (queued, keyboard-aware, focus-trapped, ARIA-labelled).
  • Windows console encoding guard — the start.bat PowerShell pipe can no longer kill the server on a character the ANSI code page lacks.
  • GPL-2.0-or-later licensing (LICENSE, THIRD-PARTY-NOTICES), matching pysim.
  • The curated release package (tools/build_release.py) and the tag-triggered .github/workflows/release.yml.

Changed

  • setup.sh / setup.bat and the READMEs: on Linux pyscard builds from source and needs the PC/SC headers (libpcsclite-dev).