Skip to content

Releases: anttro/simple

v3.32.5

Choose a tag to compare

@github-actions github-actions released this 21 Oct 11:53

Fixed

  • A card removed during the startup initialization no longer leaves the server
    reporting a phantom equipped card. The init caught the PC/SC error (and printed a
    traceback) but kept the card object it had already built, so card_present and
    _CARD_CONNECTED stayed True — and the auto-equip then skipped every later insertion
    (its _CARD_CONNECTED early return), leaving only a manual Equip or a restart. A
    PC/SC error now prints one line (INIT: card removed during initialization …), drops
    the half-initialized session and lets the presence monitor equip the next card.

v3.32.4

Choose a tag to compare

@github-actions github-actions released this 21 Oct 11:46

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. 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).
  • 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.

v3.32.2

Choose a tag to compare

@github-actions github-actions released this 21 Oct 11:37

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.

v3.32.1

Choose a tag to compare

@github-actions github-actions released this 21 Oct 10:22

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.

v3.32.0

Choose a tag to compare

@github-actions github-actions released this 20 Oct 21:37

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.

v3.31.2

Choose a tag to compare

@github-actions github-actions released this 20 Oct 20:48

Maintenance release on top of v3.31.1.

  • SCP81 TLS-PSK now states its Python requirement. ssl's PSK callbacks
    exist only since Python 3.13, so the listener needs Python 3.13+.
    Below that it raises a clear error instead of an AttributeError, and the
    PSK tests are skipped (they run on 3.13+). The READMEs say so.
  • Windows: Python 3.13 is strongly recommended. pyscard has precompiled
    wheels up to 3.13, and on 3.14 pyscard and some pysim dependency wheels are
    not available — they build from source and need MSVC C++ Build Tools.
    setup.bat prints the same guidance, and setup.sh notes the SCP81
    requirement on older Pythons.

Install — release package (recommended): download simple-3.31.2.zip,
unzip it anywhere, run setup (it installs pysim from upstream — git is
required) and then start.

Install — source checkout (development): git clone https://github.com/anttro/simple.git, then ./setup.sh (or setup.bat)
and ./start.sh (or start.bat). The clone is for development or changes
not released yet; the zip is the runtime package.

Requirements: Python 3.9+ for the app, 3.13+ for the SCP81 TLS-PSK
listener
; on Windows use Python 3.13.

v3.31.1

Choose a tag to compare

@github-actions github-actions released this 20 Oct 20:41

First packaged release.

Install: download simple-3.31.1.zip, unzip it anywhere, run setup (it installs
pysim from upstream — git is required) and then start. The clone path stays available
for development. See the READMEs for details.

In this release

  • EF_PBR support — the phonebook reference file is decoded in the decoded file views,
    and the phonebook files it references (they are not in pySim's model) are added to the
    file tree server-side and become selectable and readable.
  • In-app dialogs — the native alert/confirm/prompt dialogs are replaced by a shared
    modal (queued, keyboard-aware, focus-trapped).
  • Windows console encoding guard — the start.bat PowerShell pipe can no longer kill
    the server on a character the ANSI code page lacks.
  • Linux setup — pyscard publishes no Linux wheels, so it builds from source and needs
    the PC/SC headers (libpcsclite-dev); setup.sh and the READMEs say so.
  • License — GPL-2.0-or-later (matching pysim), with third-party notices.

Requirements: Python 3.9+; the SCP81 TLS-PSK listener needs Python 3.13+. On Windows
use Python 3.13 (pyscard and some pysim dependency wheels are not available for 3.14).