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.
This commit is contained in:
@@ -9,6 +9,18 @@ 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
|
||||
|
||||
Reference in New Issue
Block a user