sp-hydra-veil-core/change_log.md

7 KiB

Major Change Log:

Respawn on Delete

Aug 15, 2026

When a profile is deleted, it now automatically respawns the ticket if it's a ticket profile. Also fixed some bugs with fetching the server's public key with the APIResponse object being used, when it expected a regular dictionary. This is a left-over from the prior transition to API objects.

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