Release notes

BUGFIX

Generating analysis reports no longer completely crashes due to one corrupt zip entry

When clicking to generate an analysis report in the packaged standalone App, it will no longer completely crash due to a bad local file header error. Previously, the report-related code was jammed into a zip archive and unpacked lazily, meaning if a single file inside was corrupted, the entire report generation would blow up instantly. Now, the system extracts them into real directories for reading, completely bypassing this risk; at the same time, unnecessary testing programs were stripped from the archive, further lowering the chances of anything going wrong. It's like you used to shove all your tools into a rusty toolbox that wouldn't open — now you just organize them cleanly on a shelf, grab what you need, and never have your work halted by a stuck latch.

Original changelog

Original changelogGenerating analysis reports no longer completely crashes due to one corrupt zip entry
**Analysis report no longer crashes with "bad local file header" inside the packaged .app**: the report modules (`analyzer`/`adapters`/`ui`) were compiled into the bundle's `python313.zip` and loaded lazily via `zipimport`, so a single corrupt zip entry surfaced as a `ZipImportError` the moment a report was generated. They are now unzipped into the bundle as real directories (py2app `packages`), bypassing `zipimport` entirely. The bundle's `python313.zip` also no longer ships CPython's test suite, pytest, or setuptools, shrinking it from 1665 to 819 entries and cutting the surface for a corrupt entry. This deepens the packaged-report fix from 0.22.2.