PyCForge 1.3.23 — Windows acceptance checklist

INSTALL
Close PyCForge. Install the enclosed wheel with dependencies:
  py -m pip install --upgrade pycforge-1.3.23-py3-none-any.whl
Open it:
  py -m pycforge.ide
Confirm Help/About reports 1.3.23. No additional dependency is introduced.

CHECKER SCOPE
This feature checks Python correctness and potential bugs only. It does not report
conversion eligibility, conversion support or whether a construct will transpile.
The HTML conversion reference remains the guide for supported conversions.

1. MENU
The text menus are followed by a separator and wrench dropdown. Check Python Code
appears above Run Python. F5 still opens Run Python; Alt+T opens the tools menu.

2. UNSAVED SOURCE
Open source/pycforge-1.3.23/fixtures/python_check_1_3_23/scan_examples.py.
Edit a comment without saving, then choose Check Python Code and Scan.
Expect findings for the None argument, potentially unassigned loop/exception
variables, and the top-level None arithmetic. Check that the activity label,
percentage and elapsed time remain responsive.

3. CODE NAVIGATION
Click a finding. The dialog closes, selects the original tab and highlights the
relevant code. Try with the issue below the editor viewport and inside a fold.
Reopen: results and the scroll position should remain.

4. DISMISSAL AND RESCAN
Right-click a panel, choose Remove, and reopen the dialog. That panel stays removed.
Re-scan without fixing the source: the issue should appear again.

5. SOURCE CHANGES
After a completed scan, edit its source. The dialog should say re-scan is needed.
A stale card should not move the caret. Re-scan to refresh it. Also try closing the
scanned tab and reopening the checker from another tab.

6. COMPANION TRACING (OPTIONAL)
Open both helpers.py and companion_example.py from the same fixture directory.
Select companion_example.py. With “Use open modules to trace imports” unchecked,
the imported identity implementation stays unresolved. Enable it and re-scan:
expect a None-use finding mentioning helpers.py:1. The panel navigates to the use
in companion_example.py. Unsaved text in helpers.py participates in the scan.

7. COMPANION INVALIDATION
After that scan, edit or close helpers.py. The retained results should be marked
stale and navigation blocked. Restore/open it and scan again. Renaming a supplied
module should also require re-scan. A new scan uses the currently selected tab.

8. CANCEL
Start a scan and click Cancel while it is running. No result cards may remain.
The scroll area must say “Scan was halted.” Reopening must retain that state.
A subsequent re-scan should work. Closing the dialog during scanning also halts it.

9. COVERAGE AND SMALL WINDOWS
Expand “Scan scope and limits.” Notes should scroll within their own bounded area.
Collapse it to regain result space. Try display scaling at your normal setting,
resize the dialog, and confirm labels/buttons remain readable and accessible.

10. VALID PYTHON
Change measure(None) to measure("ok"); initialize answer/value before their
loop/try blocks; change the top-level value from None to 1. Re-scan and confirm
those issues disappear. Valid async/match constructs may be described as unchecked;
they must not be reported as conversion errors.

11. RETAINED WORKSPACE FEATURES
Confirm normal editing, saving, tab switching, Run Python, Help and conversion still
work. The checker never automatically saves, changes or executes your Python.

12. FEEDBACK
Please note: Windows/Python versions, display scaling, exact source sample,
expected versus actual result, finding code if available, and any PowerShell output.
Screenshots of layout problems are useful. No need to test every compiler family
for this checker upgrade.
