PyCForge 1.3.0 — remaining native Windows acceptance
14 October 2026

This is one complete application with advanced conversion/editor work, PCFC11
and lifecycle fixes. Native Windows checks below remain pending. Linux Qt
offscreen and actual Linux PCFC11 checks have passed.

INSTALL THE SUPPLIED WHEEL
Use Python 3.11–3.13 in the environment that should run PyCForge:
  py -m pip install --upgrade .\dist\pycforge-1.3.0-py3-none-any.whl
  py -c "import pycforge; print(pycforge.__version__, pycforge.__file__)"
  py -m pycforge.ide
Expect 1.3.0. The wheel retains all newer dependencies. This installs the local
supplied build; this work did not publish a release to PyPI.

MODULES AND WINDOWS
[ ] Convert, leave Generated C visible, close the final Python tab. Expect an
    empty Source Bundle without exceptions or a phantom selected module.
[ ] Open and New Module repeatedly; no stuck "module no longer exists" state.
[ ] Switch modules, rehighlight, edit/undo and check both fold gutters. Obsolete
    callbacks must not repopulate closed documents or restore old markers.
[ ] Cancel startup; expect complete dismissal and process exit.
[ ] Repeat About/settings/Open dialogs; check no surviving children on exit.
[ ] Check restored sessions, dirty-save prompts, Unicode/spaced paths, high-DPI
    scaling and short displays.

ADVANCED COVERAGE
[ ] Both Typed/Runtime choices persist; selection alone does not convert.
    Transpile and Ctrl+Return use the selection; edits/mode changes stale output.
[ ] Run Help examples for dictionaries, classes, closures, comprehensions,
    formatting, module imports and connected UTF-8 file workflows.
[ ] Check multi-cursor/undo, regex/selection and reviewed bundle replacement,
    completion, hints, definition/return, rename preview, formatting, and the
    Classes & Functions navigator with complete-definition Copy.
[ ] Confirm all 21 Help pages and Ctrl+H from Find after dismissing dialogs.

PCFC11
Install PCFC11 0.1.1+ separately, with its include directory beside it. Use a
compatible MinGW-w64 UCRT64 assembler/linker on Windows x64.
[ ] Compile dialog gives the compiler field focus on opening and reopening.
[ ] Compiler/output Browse preserves exact .exe/.o/custom/extensionless names,
    confirms overwrite and leaves previous paths unchanged on Cancel.
[ ] Build Typed int and Runtime int/None no-argument entries at O0/O1; build
    objects. Run test programs externally in a temporary directory and compare
    status, output, errors and file bytes with expected results.
[ ] Include runtime round/formatting, Unicode file paths and the multi-module
    file examples to exercise the Windows UCRT compatibility headers.
[ ] Cancel active builds, edit source during build, close app during build;
    verify no compiler/linker descendants survive.
[ ] Repeat success/failure/reopen cycles; no accumulating threads/handles or
    stale report replacing the current result.

MEMORY, IDLE AND BATTERY
From the extracted source root:
  py tools\profile_resources.py --cycles 100 --idle-seconds 30 --output windows-profile.json
[ ] Review working set/private bytes, handles, Python threads, owned dialogs,
    active timers and worker reaping. Compare equal workloads after warmup.
[ ] Leave converted documents idle, minimize/restore, compare CPU on battery
    and AC with the same power profile. Sleeping threads alone are not failure.
[ ] Run a 1–2 hour editing/open-close/build soak and suspend/resume cycle.
[ ] Measure actual laptop battery energy under equal timed workloads, fixed
    display conditions and controlled background apps. Linux CPU samples do
    not establish a battery-life result.
[ ] Dismiss a preview on a slow/disconnected network folder; UI and shutdown
    must remain responsive.

Known remaining memory considerations: source/observation scaling, Qt undo
history, numeric startup footprint and runtime arena lifetime. Input/cache
limits are not whole-process memory guarantees. See the Resource Audit.
