# Major Change Log: # Codes/Tickets ### Aug 15, 2026 The profile object now has a ticket field. It's now none by default. Also the profile object is passed in, for the use of tickets, both for GUI and core.
# Wipe & Respawn Codes/Tickets ### Aug 14, 2026 Introduced Ticket/Billing-Code Respawn, with dual paths on the ticket prep orchestration, it's helper functions, and the main prep controller. This introduced the functions, which were tested with a demo CLI client and local server, and appears to be stable. Server-side endpoints will be pushed as well. Note: This update couples profile slot ids more closely with which ticket slot id is being used for it, but they are not yet officially tied. In the future, they should be.
# Reduce Redundancy ### Aug 13, 2026 Isolated download file modules to their own module, then had both the install application versions (browsers), and install dependencies both use that same module.
# Singbox Setup ### Aug 12, 2026 Prepared Singbox setup modules, which includes installation, download, move to sudo folder, and sudo setup scripts. Added a `Dependency` model, endpoint, and the ability to sync that model. (Related note: Server-side prepared the endpoint, and stocked with real data.) And also the sync service modules were adjusted to handle new data types more smoothly, before they had errors. As part of that sync flow change, the CachedSync metadata model was transitioned to ints instead of strings, with default 0 values. This should in theory migrate all clients without further changes needed. ### Additional Changes: ApplicationController transitioned to the HTTPx Client system, instead of using requests library proxy for Tor. Also the GUI's observers now do strings to be more neutral to what object type is being downloaded (application_version objects vs dependency).
# Singbox Orchestration ### Aug 10, 2026 Significant progress made on singbox flow, we now have a working: 1) Configure via singbox_configure 2) Enable/disable directly via singbox module 3) Enable/disable with full orchestration via singbox_runner 4) process id utils isolated 5) Singbox takedown uses JSON & process id, but not yet coordinating a mismatch. Also in this update: Transition traditional wireguard subscription post/get requests to the new HTTPx system. # WG Renegotiation ### Aug 7, 2026 Wireguard renegotiation now flows through the new HTTPx modules
# EncryptedProxy Configs ### Aug 6, 2026 EncryptedProxy configuration path setup, but not yet functional. Pydantic models for each protocol are being setup.
# Transition ### Aug 6, 2026 1) Transition ticket prep from old requests-based GET/POST system to the new httpx one. 2) Adjusted server-side for application_versions, and then the client to match it. It now has a single endpoint, instead of 4 different ones. 3) Have Tor bootstrap use a new config, but same data folder on first attempt.
# Sync on No Database Start ### August 5, 2026 Added a forced sync at startup if there's no DB pre-existing, to handle a bug in GUI with no application versions. Isolated application_version database calls to their own module. And fixed a bug in SyncController to catch if application_version updates and split them into the different tables.
# Sync Now Integrated & ApplicationVersion Model Transition ### August 4, 2026 Sync from the main app streamlines into the Connect module, to do async bulk sync. Additionally ApplicationVersion was transitioned from manual SQL to the ORM, for easier compatibility with the newer sync system. The side effect functions of this have been tested to be stable.
# Connect Module & Async ### August 3, 2026 Introduced Connect Module, which manages HTTPx Clients, solves network/DNS issues, and coordinates Tor Bootstraps. Introduced async & single endpoint full workflows. This version is stable and tested for DNS & Tor problems. Also modified Configuration to be Pydantic, instead of @dataclass_json, and changed the connection type to enums. Further, there's a new enum function to get the new enum types, but the legacy function exists for backwards compatability. # HTTPx Client, ThreadPool, & Tor Management ### August 2, 2026 Elaborate HTTPx feature-rich strategy with HTTPx Client Reuse, Tor Management, Tor bootstrap monitor & retry. HTTPx clients can be managed across modules and reused. There's an elaborate HTTPx retry strategy based on status codes. Tor management tries to use the existing Tor default ports, then checks the Tor config, before finally bootstrapping. There is now a ThreadPool futures executor, which even works with Tor, to batch API requests. # Singbox ### July 29, 2026 Introduced the Singbox Enable Utility & Singbox Sudo Script
# 2.4.3 ### Systemwide Killswitch Introduced for Enable ### July 23, 2026 Separation of performing subprocess commands, parsing them for error strings, and handling those errors as enum types. Systemwide error handling was introduced via a wrapper to all systemwide functions requiring the sudo scripts.
### July 20, 2026 Introduced IP-interface-based killswitch support for systemwide wireguard, on enable only. This version is stable and working for enable only, with a "test" script in the fileslot. And fixed GUI's object save creation. Additionally rolled back Connection data models to previous non-enum version.
# 2.4.2 ### Surgery on ConnectionController Huge separation of ConnectionController & ProfileController into naked function modules for enabling a connection, registering wireguard keys, coordinating proxy configs, subscriptions, endpoint verification, and the logistical flow. Additionally enums were used for type checking, instead of polymorphic functions. This version is stable and confirmed working for systemwide and session wireguard, but not yet proxies.
# 2.4.1 ### Enums for Profile types. July 18, 2026 Introduce Base profile types on load, which gradually will switch over on save/edits. Transition Connections to using Enum instead of raw strings. End goal here is to transition ConnectionController to use the Enums.
# 2.4.0 July 15, 2026 Robust Database Error Handling & Migrations System. For New Client upgrades (Operational Errors) & Old Clients with New JSON keys from an API (TypeErrors). We also added an SQL generic handling wrapper for use across any project or function.
# 2.3.9 July 11, 2026 Features: Revamp of GET/POST API requests for both Tor and Clearweb. Why: Move towards more clear Tor API error feedback. And reduce redundancy. Status: Stable, works for both clear/tor and GET/POST. Still Needs: UI feedback, DNS Tor improvements