Changelog

Stay up to date with the latest improvements to True Protection.

Version 1.2.46

April 23, 2026

Bug Fix

Cap YARA ingest per feed at sync time

Stops the public YARA feeds (Yara-Rules, Neo23x0, Elastic) from dumping millions of rule bodies into the database on every sync. Each GitHub YARA feed is now capped at 5,000 entries per sync, which is plenty for the rule-name / hash metadata the desktop client actually uses. Pairs with the v1.2.45 build-side cap so even if the database has a backlog, the desktop .tpdb never ships YARA rule bodies.

Version 1.2.45

April 23, 2026

Bug Fix

Cap the signature package - no more 5GB / 7M-entry builds

The daily signature-build pipeline was hanging since April 21 because it was trying to bake all 4.8 million YARA rules pulled from public feeds (Yara-Rules, Neo23x0, Elastic) into the desktop-daemon binary database. The resulting file hit 5.5 GB and the Aho-Corasick trie that loads it blew past 7 GB of RAM on end-user machines. Excluded YARA rule bodies from the desktop .tpdb file entirely (they belong in a separate YARA-engine bundle anyway, not the hash/byte-pattern matcher) and capped each other type at sane per-type limits (2M SHA256, 500K MD5, 500K byte-patterns, 250K URLs, 250K domains, 100K IPs). The resulting package drops from 5.5 GB to under 250 MB and the daemon AC trie stays under 1 GB in RAM. Also killed four zombie PHP signature-build processes on the server that had been holding the scheduler mutex since April 22, and marked their stuck "building" records as failed so the hourly auto pipeline can run again.

Version 1.2.43

April 20, 2026

Bug Fix

Scan page shows every file as it is scanned + cleaner reconnect

The Scan page now populates the Scan Results table in real time with every file the scanner touches, tagged Clean (or the real threat info when something is flagged), capped at the 200 most recent rows so a full-disk scan does not blow memory. Works for every scan type (quick, full, custom, rootkit). Also fixed a stuck-looking state where the progress bar would stay in indeterminate animation and "Preparing scan..." would stick on the screen long after the scan finished: the daemon-disconnect and daemon-reconnect paths now snap the progress bar, current-file label, and button state back to a clean idle instead of only resetting the main status label.

Version 1.2.42

April 20, 2026

Bug Fix

Live scan progress + fix scan.completed log flood

Scans now show real progress in the GUI: files scanned, total files, percent complete, current filename, and threats found - updated every half-second as the scanner works through the file list. Before this release the GUI sat on "Scanning... 0 files processed" for the entire scan because the daemon only returned the scan id in the running response, and once the scan finished a poll-timer race flooded the activity log with hundreds of duplicate "scan complete" entries per scan. Now the daemon wires a per-file progress callback into the scanner and exposes live counters, the GUI finalises once on the first terminal response and drops in-flight duplicates, the Cancel button flips the UI immediately instead of waiting for the round-trip, and a rate-limited scan.progress entry lands in the activity log every 5 percent of scan progress so /admin/audit-logs shows the scan moving for all scan types (quick, full, custom, rootkit).

Version 1.2.41

April 20, 2026

Bug Fix

Fix scan hangs, daemon crash in connections listing

v1.2.40's crash logging caught the daemon crash red-handed: an access violation inside the firewall "connections" IPC handler. When the daemon enumerated active TCP connections via Windows GetExtendedTcpTable, new connections could appear between the "query size" and "fill buffer" calls, the allocated buffer was then too small, and the iteration walked past the end of the buffer reading garbage memory. Fixed by retrying the pair of API calls up to three times, bounding the entry count at what actually fits in the allocated buffer, and wrapping the iteration in try/catch. The IPC dispatcher also no longer serialises every command behind the currently-running handler - before this, a slow or stuck handler (like the crashing connections one) would hold a global mutex for minutes and make every status poll, scan start, and config read sit behind it, which is why "Start Scan" appeared to hang at 0% for five minutes before eventually firing.

Version 1.2.40

April 20, 2026

Bug Fix

Actually install the crash handler (it was dead code)

The crash handler class has been in the daemon since v1.2.32 but its install() method was never called from anywhere, which is why every daemon access violation since then produced a Windows Error Reporting event but never a daemon.crashed line in the activity log, and why we had no visibility into the 0x1d724 crash offset. This release wires CrashHandler.install() into both the Windows Service entry point and the foreground entry point before any worker threads start, so the vectored exception handler added in v1.2.39 can actually fire. Next daemon crash will produce a daemon.crashed entry with fault_ip, giving us the data to finally diagnose the root cause.

Version 1.2.36

April 18, 2026

Bug Fix

Hotfix: daemon access-violation on startup

v1.2.35 introduced a background signature-index build that was crashing the daemon with an access violation 30 to 60 seconds after startup on some installs - Windows reported a repeatable 0xC0000005 fault at the same offset in every crash dump. Backed the change out and reverted to synchronous signature loading. Startup is slower again (20 s instead of 3 s), but the daemon stays up. A safer async path will come back in a later release with proper service-status pings to Windows Service Control Manager.

Version 1.2.34

April 18, 2026

Bug Fix

Hotfix: restore Windows build

Fixed a Windows-only compile error in the daemon crash handler that shipped in v1.2.32. No user-facing changes beyond that the Windows MSI now builds again. Linux and macOS were never affected.

Version 1.2.31

April 17, 2026

Bug Fix

CRITICAL: stop auto-programming Windows Firewall

Previous versions silently pushed TPJ rules into Windows Defender Firewall and re-added them on every daemon restart without cleaning up, which stacked hundreds of duplicates on one user's machine and killed their DNS. The default firewall policy is now "Ask" - rules are evaluated in-engine only, and nothing is written to Windows Firewall unless you explicitly pick "Allow" or "Block" in Settings -> Firewall. New emergency "Clear all TPJ rules from Windows Firewall" button in Settings and matching "tpj firewall purge" CLI command for self-rescue.

Version 1.2.30

April 17, 2026

Bug Fix

Hotfix: restore Windows build (v1.2.29 build failed at lint stage)

The v1.2.29 Windows build failed because shellapi.h was included before windows.h - the SDK requires windows.h types first. This release fixes that header ordering and carries forward all v1.2.29 functional changes (signature update download fix, optional firewall rules, Windows Defender toggle, firewall CRUD handlers).

Version 1.2.27

April 16, 2026

Bug Fix

Fix signature count showing 0 after update

Fixed an issue where the signature count could display 0 after a database update. The scanner now hot-reloads the signature database when a new version is installed, and the daemon reports the live count directly from the loaded database.

Version 1.2.26

April 16, 2026

Bug Fix

Fix signature count showing 0 after update

Fixed an issue where the signature count could display 0 after a database update. The scanner now hot-reloads the signature database when a new version is installed, and the daemon reports the live count directly from the loaded database.

Version 1.2.25

April 16, 2026

Bug Fix

Fix service startup timeout for large signature databases

Fixed an issue where the daemon service could time out during startup when loading large signature databases.

Version 1.2.24

April 16, 2026

Bug Fix

Fix signature DB version reader for TPDB format

Fixed the signature database version reader to correctly parse the TPDB binary format.

Version 1.2.23

April 16, 2026

Bug Fix

Fix clang-format lint in daemon signature handler

Fixed clang-format lint error in the daemon signature handler for cleaner CI builds.

Version 1.2.22

April 16, 2026

Bug Fix

Fix clang-format lint and feed sync issues

Fixed clang-format lint errors and resolved feed sync issues for more reliable signature updates.

Version 1.2.20

April 16, 2026

Bug Fix

Fix signature download endpoint to serve published database

Fixed the signature download endpoint to correctly serve the published signature database file instead of returning an error.

Version 1.2.13

April 16, 2026

Bug Fix

License and settings now persist correctly

Fixed an issue where the license key and settings were lost after closing and reopening the app. All settings now persist reliably across restarts.
Bug Fix

Auto-updater installs correctly

The auto-updater now properly closes the app before running the installer. Updates download and install without needing to manually download from the website.

Version 1.2.9

April 15, 2026

Bug Fix

Support tickets load correctly

Fixed an issue where support tickets would not appear in the desktop app even when logged in.

Version 1.2.6

April 15, 2026

Bug Fix

Windows installer improvements

Improved the Windows MSI installer build process to work reliably across all build environments. General bug fixes and stability improvements.
Bug Fix

MSI packaging works on runners without Qt6

The MSI build script now copies Qt DLLs and plugin directories (platforms, styles, tls, imageformats) from the build artifacts instead of requiring Qt6 to be installed locally on the packaging runner. Fixes package:msi failing on remote runners like JAGASUS-100.
Bug Fix

Version strings synced across all source and packaging files

All version references across Cargo.toml, CMakeLists, Qt GUI, browser extension, and all Linux/macOS packaging configs now correctly reflect the current release version.

Version 1.2.2

April 15, 2026

Bug Fix

MSI build fix for remote runners without Qt6

The MSI packaging script now copies Qt DLLs and plugin directories from the build artifacts instead of requiring Qt6 to be installed locally on the packaging runner. Fixes package:msi failing on JAGASUS-100 and any other machine without a Qt6 installation.
Bug Fix

PowerShell compatibility fix in MSI builder

Fixed a PowerShell error where Get-ChildItem returning a single FileInfo object instead of an array caused a .Count property error. Plugin directory file counts are now wrapped with @() to force array context.

Version 1.2.1

April 15, 2026

Bug Fix

MSI builder uses Qt DLLs from build artifacts

The MSI build script now checks build-gui/Release/ for Qt6Core.dll and copies all Qt DLLs and plugin subdirectories (platforms, styles, tls, imageformats) from the build artifacts before falling back to a local windeployqt. This allows the MSI to be built on machines that do not have Qt6 installed.

Version 1.2.0

April 15, 2026

Bug Fix

Settings now persist reliably

Fixed an issue where license keys, API keys, and application settings could be lost after a crash or unexpected shutdown. All settings are now saved immediately when changed.
Bug Fix

License key and settings persistence fix

Added QSettings sync() calls to LicenseManager so the license key, bearer token, AI API key, and plan limits are flushed to the Windows registry immediately instead of waiting for app shutdown. Settings now persist reliably across restarts and crashes.

Version 1.1.6

April 15, 2026

Bug Fix

General bug fixes

Improved build reliability and fixed an issue where download links on the website could be overwritten during updates.
Bug Fix

CI: Qt6 detection uses cmake config check

The build:windows CI job now checks for Qt6Config.cmake existence before selecting a Qt version, preventing build failures when a Qt directory exists but is incomplete or corrupted.
Bug Fix

ReleaseSeeder removed from deploy pipeline

The ReleaseSeeder no longer runs during CI deploys, preventing it from overwriting manually created download records and release URLs on the website.

Version 1.1.5

April 15, 2026

Bug Fix

General bug fixes

Fixed an issue that could cause Windows builds to fail on certain machine configurations.
Bug Fix

Improved license activation

License activation now returns your subscription tier and keeps you signed in for support ticket access and activity logging.
Bug Fix

CI dynamic user path for multiple Windows runners

The CI pipeline now detects the user profile path dynamically instead of hardcoding C:\Users\jimmy. This allows both JagJimmyLap and JAGASUS-100 RV PC runners to build and package correctly.
Bug Fix

License activation returns bearer token and tier

The license activation API now returns the subscription tier and a Sanctum bearer token. The desktop app saves both for API access to support tickets and audit logging. Device hostname and platform are sent during activation.
Bug Fix

Download page fixes

Download buttons now work correctly on all platforms. Fixed an issue where some buttons showed an error instead of starting the download.

Version 1.1.1

April 14, 2026

Bug Fix

Cross-platform stability improvements

Fixed over 50 issues across Windows, macOS, and Linux to improve build reliability and application stability.
Bug Fix

Scanner fully functional

The scanner now works end-to-end with 163 threat signatures. Real-time progress is shown during scans with file count, threats detected, and severity levels.
Bug Fix

Cross-platform build fixes

Fixed 50+ compile errors across GCC, Clang, and MSVC. Added missing includes (optional, sys/stat.h, algorithm, wincrypt.h). Fixed raw string literal ambiguity with custom delimiters. Portable CLZ builtins for ARM64 emulator. CI auto-detects VS 2022/2026 and Qt version.
Bug Fix

Scanner fully functional with 163 signatures

The scanner now works end-to-end in both CLI and GUI. 163 real threat signatures loaded from the TPDB database. Async scan polling shows real-time progress. CLI displays "Scanning..." with dots while scanning, then shows file count, threats, and severity. Fixed signature DB filename mismatch in installer.

Version 1.1.0

March 31, 2026

Bug Fix

CI/CD pipeline reliability

Fixed Rust toolchain on Linux runner with absolute paths and rsync exclusion for cargo binaries. All 21 pipeline jobs pass: lint, build (Linux/Windows/macOS), tests, SAST, license compliance, container scanning, packaging (DEB/RPM/MSI/macOS), and release.
Bug Fix

Daemon startup and runtime fixes

Fixed all startup blockers preventing the daemon from running. Real YAML config and TPDB signature database replace 1-byte placeholders. MSI staging script validates all binaries. Signature database builder tool (build-sigdb.py) generates valid TPDB files from YARA rules and hash lists.
Bug Fix

Protection service startup fixes

Resolved all issues preventing the protection service from starting correctly. The service now initializes with a valid configuration and signature database on first launch.
Bug Fix

Build pipeline reliability

All automated build, test, and packaging steps now pass reliably across Windows, macOS, and Linux.

Version 1.0.25

March 30, 2026

Bug Fix

Enterprise license activation fix

Enterprise licenses with unlimited devices no longer incorrectly report "Device limit reached."
Bug Fix

Stripe checkout reads from admin settings

Stripe price IDs and API keys are now read from the database (configured in /admin) instead of only from .env files. The MailConfigServiceProvider overrides config at boot time so all existing checkout code works automatically with admin-configured values.
Bug Fix

License activation device limit fix

Enterprise licenses with device_limit=0 (unlimited) no longer incorrectly report "Device limit reached". The hasReachedDeviceLimit() method now treats 0 and null as unlimited, allowing Enterprise customers to activate on any number of devices.
Bug Fix

Payment settings from admin panel

Payment configuration can now be managed from the admin panel instead of requiring server file edits.

Version 1.0.16

March 30, 2026

Bug Fix

Dashboard now shows Protected status correctly

Fixed the dashboard status logic to read actual daemon fields (protection_status, realtime, firewall) instead of missing boolean fields. The dashboard now shows "Protected" in green when the daemon reports active protection, firewall enabled, and real-time monitoring running.
Bug Fix

Signature version display fix

Signatures now show a proper version date instead of "unknown". The daemon returns the signature database build date, and the GUI correctly reads the signatures_version field from the daemon status response.
Bug Fix

License activation fix

Fixed an issue where license activation could fail when communicating with the server.
Bug Fix

About page updated with correct links

The About tab now shows tpjsecurity.com as the website and links to the Support Tickets page instead of showing the old jagjourney.com email address. Update check notifications also point to tpjsecurity.com/download.
Bug Fix

Dashboard status fix

The dashboard now correctly shows "Protected" when real-time protection, firewall, and monitoring are all active.
Bug Fix

Updated About page links

The About page now links to tpjsecurity.com and the support ticket system.
Bug Fix

Signature version display

Signature database version now shows the correct build date instead of "unknown."

Version 1.0.15

March 30, 2026

Bug Fix

GUI-to-daemon command routing fix

Fixed IPC command name mismatch between the GUI client and daemon handler registration. Commands like get_status, get_config, get_firewall_rules, get_connections, and update_signatures now resolve correctly. Previously returned 404 unknown command errors.
Bug Fix

Protection service permissions fix

Fixed an issue where the desktop app and CLI could not connect to the protection service due to restricted permissions.
Bug Fix

TLS support for desktop app

Qt TLS plugins (SChannel backend) are now bundled with the installer, enabling HTTPS connections for license activation, signature updates, and audit log sync. Previously showed "TLS initialization failed" errors.
Bug Fix

General bug fixes

Fixed communication issues between the desktop app and protection service. Resolved secure connection errors that prevented license activation and signature updates.
Bug Fix

Daemon named pipe permissions fix

The daemon service now creates the IPC named pipe with a security descriptor that allows all authenticated users to connect. Previously the pipe was SYSTEM-only, causing "Access denied" errors when the GUI or CLI tried to communicate with the daemon.

Version 1.0.9

March 30, 2026

Bug Fix

General bug fixes

Fixed several issues on the website including the changelog page, dashboard displays, and account management.
Bug Fix

Production error fixes

Fixed changelog page 500 error, SEO meta template syntax, system health dashboard extra endif, executive dashboard route registration, scan result resource missing column, and policy assignments index name too long for MySQL.

Version 1.0.7

March 30, 2026

Bug Fix

First-launch stability fix

The protection service no longer crashes on first start. The installer now includes a valid default configuration and signature database.
Bug Fix

App-to-service connection fix

The desktop app now connects to the protection service reliably on Windows, macOS, and Linux.
Bug Fix

Protection service startup fix

Fixed a critical issue where the protection service would not start as a Windows service after installation.
Bug Fix

Windows daemon service startup fix

Fixed critical bug where the daemon would not start as a Windows service. Added proper Windows Service Control Manager integration with ServiceMain, ServiceCtrlHandler, and StartServiceCtrlDispatcher. The --service flag was previously unrecognized, causing ExitCode 1077.
Bug Fix

GUI to daemon IPC connection fix

Fixed QLocalSocket named pipe connection. Qt automatically adds the pipe prefix, so passing the full path caused "Invalid name" errors. The GUI now connects to the daemon correctly on Windows, macOS, and Linux.
Bug Fix

Default config and signature database

The installer now includes a real default configuration file and a valid (empty) signature database. The daemon no longer crashes on first start due to missing or placeholder files.

Version 1.0.6

March 29, 2026

Bug Fix

General bug fixes

Resolved build system issues that affected automated release packaging.
Bug Fix

CI/CD Rust toolchain fix

Installed Rust 1.94.1 on the GitLab runner with noexec /tmp workaround. Separated Rust setup into its own CI template so non-Rust jobs are not affected.

Version 1.0.5

March 29, 2026

Bug Fix

Qt6 runtime bundled in installer

The Windows MSI installer now includes all required Qt6 DLLs and plugins. The GUI no longer shows "DLL not found" errors after installation.
Bug Fix

Windows 11 MSI installer fix

Fixed launch condition that incorrectly blocked installation on Windows 11. The installer now works on all supported Windows versions.
Bug Fix

General bug fixes

Fixed Windows 11 installation compatibility. Resolved missing runtime library errors after installation.

Version 1.0.4

March 29, 2026

Bug Fix

Windows build fix for _get_osfhandle

Added missing io.h include for Windows MSVC builds. Resolved C3861 compiler error in data_protection.cpp.
Bug Fix

macOS std::min type mismatch fix

Fixed strict Clang type checking for std::min with uint64_t and size_t on macOS.
Bug Fix

General bug fixes

Fixed platform-specific build issues on Windows and macOS.