Files
simple/CHANGELOG.md
T
catarrh 8a08f642d4
release / release (push) Waiting to run
v3.32.2: the Windows card-swap auto-equip loop
After a card swap (or the first insertion after startup) on Windows the
auto-equip looped forever: "card inserted, initializing" / "card gone
during initialization", with no "retry 2/3" lines.

An equip with the card still present produced no card (app.card None),
and that branch reported "card gone" and returned True - a no-op success
- so the three retries never ran and the watchdog re-armed every ~5 s.

- The card-gone no-op is now only for a real removal (card_present
  False); a card-present init that produced no card raises a failure.
- Any failed attempt marks the transport stale, so the next attempt
  rebuilds the PC/SC link (a Windows swap can leave the old link unable
  to connect; _ensure_transport releases the old link before building
  the new one, so the 2026-09-24 stale-handle bug cannot recur).
- The error pySim swallowed (cmd2) is printed as "AUTO-EQUIP: init
  output:" with its traceback - the failure is diagnosable from the log.
- Docs: the READMEs' troubleshooting bullet.
- Version strings + the PWA cache bumped together (simple-v460).

Tests: a card-present init without a card is a failure, a mid-init
removal stays a silent no-op, any failure marks the transport, the
stale-handle traceback reaches the log, and an end-to-end retry: a
failed init, the old link released, a fresh one built, the retry
succeeds.  1012 Python + 953 frontend green.
2026-10-21 14:35:44 +03:00

86 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Changelog
All notable changes to SIMple (the PWA and `pysim-simple-server`).
The format follows [Keep a Changelog](https://keepachangelog.com/);
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.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`).