* fix: disable Rich Live transient mode on Windows to prevent PS 5.1 hang
PowerShell 5.1's legacy console host does not reliably support VT escape
sequences. Rich's Live(transient=True) attempts cursor restoration on
context exit, which hangs indefinitely on that console.
Set transient=False when sys.platform == 'win32' in both init.py (progress
tracker) and _console.py (select_with_arrows). The only cosmetic effect is
that progress output remains visible after completion on Windows.
Fixes#2927
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* test: address review feedback on test quality
- Use captured['transient'] instead of .get() for clearer KeyError on failure
- Source guards now assert both the platform check AND transient=_transient usage
- Remove unused imports (MagicMock retained as it's used, removed pytest)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* test: use regex in source guards for resilience to formatting changes
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* test: use single DOTALL regex to verify assignment flows into Live()
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* fix: skip duplicate tracker print on Windows when transient=False
When transient is False, Rich leaves the Live output on screen. The
subsequent console.print(tracker.render()) would duplicate it. Gate
it behind _transient so Windows users see the tracker exactly once.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---------
Co-authored-by: Manfred Riem <mnriem@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>