Repository navigation
PR: Inno Setup Windows installer suite, centric hidden process runner, and non-blocking GUI lifecycle (v3.1.0) - #1
Merged
Conversation
…er, and non-blocking GUI lifecycle (v3.1.0) - Windows Inno Setup standalone installation compiler script and automated staging pipeline - Centric hidden process engine (pyegclamui.core.process) eliminating console flashes - Asynchronous StatusRefreshWorker, in-memory TTL caching, and non-blocking UI lifecycle - Updated GitHub Actions CI/CD matrix with Inno Setup, integrity checks, and duration reporting - Bumped version to v3.1.0 across centric SSOT and documentation
… and macOS runners
… threads on macOS
… shutdown on close
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary of Changes
This pull request introduces pyEGClamUI v3.1.0, featuring an official Windows Inno Setup standalone installation suite, a unified centric hidden process runner to eliminate console window flashes, an asynchronous background GUI lifecycle to prevent "Not Responding" titlebar freezes, and duration-tracked multi-OS CI/CD packaging pipelines.
1. 🪟 Windows Inno Setup & Silent ClamD Activation Suite
setup/windows/pyegclamui_installer.iss):pyEGClamUI-v3.1.0-Windows-Setup.exe).setup/windows/install_clamav.ps1):winget install --id Cisco.ClamAV --source winget).setup/windows/setup_clamd_service.ps1):ShellExecuteExWUAC elevation to configureclamd.confand register the native Windows Service"ClamAV ClamD"listening on TCP127.0.0.1:3310.2. 🛡️ Centric Hidden Process Foundation (
pyegclamui.core.process)pyegclamui.core.processexportingspawn_hidden_process(),run_hidden_process(), andget_hidden_subprocess_kwargs().creationflags=CREATE_NO_WINDOW (0x08000000)andSTARTUPINFO(wShowWindow=SW_HIDE, dwFlags=STARTF_USESHOWWINDOW). Completely eliminates all console window pops and command-prompt flashing acrossclamscan,clamd,freshclam,winget,pip, and service commands.close_fds=True), ensuring 100% cross-platform parity without platform crashes.shell=True: All invocations strictly pass tokenized argument lists without shell wrappers.3. ⚡ Non-Blocking Asynchronous GUI Lifecycle (Freeze Elimination)
StatusRefreshWorker(QThread)):detector.inspect()), database freshness checks (updater.is_database_recent()), and socket queries (service_mgr.get_status()) to a background thread.(Not Responding)titlebar freezes.status_readyQt Signal.ClamEngineDetector):get_engine_version()andinspect(), eliminating redundant subprocess calls on tab switching.ClamDaemonClient):4. 🚀 Cross-Platform CI/CD Pipeline (
.github/workflows/build.yml)ISCC.exe) compiler + standalone portable.zip..desktopmenu launcher +tar.gz.zip.--durations=10.dist/are non-empty and >1MB.SHA256SUMS.txt) on tagged releases.5. 🏷️ Centric Versioning (SSOT)
v3.1.0strictly insrc/pyegclamui/__init__.py.pyproject.toml, packaging scripts, Inno Setup compiler (/DAppVersion=3.1.0), and documentation.Test Suite Results