Commit graph

144 commits

Author SHA1 Message Date
81002cd76d The Plumbing now allows for the service to provide it's own function_choice when it returns a result. Separetly, a new type_checker wrapper is now available for use. And finally, the config model now passes around the same instance as a singleton to avoid new file operations to just read 2026-10-14 18:16:13 -04:00
10e46cd8ea New refactored Use of tickets and payment of tickets loops/state, integrated with existing system 2026-10-11 12:33:21 -04:00
6a445eba41 Ticket Inovices Stable with Big Bang Refactor. Still need to resolve issues with ticket billing invoice config already existing 2026-10-10 18:27:02 -04:00
f9698ced68 Support for multiple invoices being managed through a global payment cycle 2026-10-10 15:25:36 -04:00
52b3e1ba94 Big Bang Refactor of Payments. Introduced a new paymentdata singleton that stores data across pages and on disk. Also introduced a suite of functions for handling payments 2026-10-07 13:29:19 -04:00
57774ae697 Infrastructure for payments overhaul. With state storage for billing, type checking, enums, and serialization. Also plan sql further refined 2026-10-04 20:07:56 -04:00
90dd9b309f Confirm Location's protocol support on edit 2026-10-03 17:27:34 -04:00
b132265a04 Location model shifts to boolean types. This will force a migration via Constants DB version. 2026-10-03 16:55:22 -04:00
9627b1861d Introduced new model: Plan. This differs from the legacy subscriptions because its based on time in months and supports multiple protocols at once in a list enum format 2026-10-03 14:47:38 -04:00
f2922b02a0 Enabled support for editing systemwide profile protocols including vless/hysteria2 2026-10-03 11:39:57 -04:00
77c7123d73 Prepartion of univerisal cross-platform plumbing. And introduction of v2 billing/invoices 2026-09-28 17:30:08 -04:00
d35fc0db4b Bug fixes and tweaks for transitions 2026-09-21 12:35:37 -04:00
b29a44cf95 Phasing out legacy dict for Result Objects 2026-08-27 11:47:01 -04:00
ced69bfa4f Use Ticket Controller returns Return objects 2026-08-26 09:56:38 -04:00
f038f7a8da Error type handling 2026-08-24 16:06:03 -04:00
44558fb514 Large changes to the flow for using tickets. More formalized updating of JSON with explicit tools, instead of generic JSON functions. Orchestration returns Return objects, which are then formatted to dict for the GUI. 2026-08-24 15:57:42 -04:00
0983d1a68d Changed bash generic commands to no longer use blocking methods to search through the terminal output to help with broken pipe errors, and instead select. But kept it non-blocking for the entire terminal itself. Also refactored Use Ticket Controller to reduce nesting if statements. 2026-08-24 11:24:23 -04:00
a69b87817c Improved Connection Observer Feedback for all systemwide protocols 2026-08-21 15:31:52 -04:00
6d8b457593 Improved error handling and consolidation on ticket purchase flow 2026-08-20 18:00:58 -04:00
e1221d4c45 Renamed do_we_have_billing_id to ticket_config_tools 2026-08-20 17:25:28 -04:00
07f0cf8007 Cleanup of Legacy code and commented sections 2026-08-20 14:06:28 -04:00
bdfb933548 Sudo config management. Properly delete the config for protocol changes, and install it using the generic commands module 2026-08-20 12:23:37 -04:00
c8811c93bb Linter undefined or missing import bugs 2026-08-19 21:40:36 -04:00
bdb4a285de Delete commented out legacy functions from before the move months ago to an isolated wireguard key module 2026-08-18 14:58:30 -04:00
ff54373b0f Failed Assassin disable raises error 2026-08-18 13:03:16 -04:00
6dac98835f Assassin mode Introduced! The assassin_tools allows for creation/use of a session profile with random attributes, ephemeral wireguard config, and coordinates using a ticket for it. This tools module also allows for wiping the assassin's ticket & wireguard config on disable. Additionally, this git commit sees ProfileController using these assassin_tools functions for a working implementation if the profile is marked assassin=True. Also the associated eco-system of ApplicationController starting apps, the existing non-ticket legacy subscription handlers, and even GUI needed to be adjusted to allow for this new assassin flow. Finally, the generic JSON utilities have been improved to make this feature more robust and reliable. 2026-08-18 12:54:54 -04:00
5ab57ab287 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. 2026-08-15 17:34:08 -04:00
829feb5939 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. 2026-08-15 14:09:34 -04:00
31488f790e 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. 2026-08-14 19:36:22 -04:00
d9bee758a8 Isolated download file modules to their own module, then had both the install application versions (browsers), and install dependencies both use that same module. 2026-08-13 07:33:16 -04:00
01bd5f8d3f 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). 2026-08-12 14:19:55 -04:00
b84bb2eefa Singbox setup modules, which includes installation, download, move to sudo folder, and sudo setup scripts. Added a 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. 2026-08-12 13:11:12 -04:00
c291517b7f Singbox Protocols can be enabled via the main ProfileController 2026-08-10 18:55:23 -04:00
9d0d140467 Singbox Orchestration! 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. 2026-08-10 15:49:47 -04:00
061df01a0d Wireguard renegotiation now flows through the new HTTPx modules 2026-08-07 15:05:17 -04:00
94c4155d60 Get configs from controller's state, instead of reading the disk 2026-08-06 15:57:37 -04:00
c4802d3c7d Transition ticket prep from old requests-based GET/POST system to the new httpx one 2026-08-06 12:22:57 -04:00
1b609a9e5e Fixed application_versions insert on sync 2026-08-06 10:58:44 -04:00
8da4978498 Linter bug fixes. Mostly undeclared, unused, or missing imports. One or two outright typos. There's still issues with undeclared types that need to be fixed after api connection refactor is fully implemented. 2026-08-05 12:03:11 -04:00
b70818f774 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. 2026-08-05 02:45:52 -04:00
46c8721a1a 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. 2026-08-04 20:17:45 -04:00
0e64351b5a Improved systemwide speed, by Turning Wireguard subprocess commands into to recycled generic_run_commands that re-use the terminal 2026-08-03 19:33:22 -04:00
ed055f338d 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. 2026-08-03 16:59:39 -04:00
d68ae02335 Bug fix on ProfileController's disable missing the imported result type to pass on to GUI 2026-07-29 19:05:06 -04:00
bf22f764d0 Singbox takedown modules, with a graceful shutdown, then kill, then searching for processes with the phrase. And doing tunnel checks inbetween 2026-07-29 18:58:59 -04:00
46a84661a0 Improved Firewall Checks on Disable to double check and properly source the config 2026-07-28 17:45:40 -04:00
a76ef50ed7 Improved Systemwide feedback errors to GUI 2026-07-27 19:54:22 -04:00
19b3925bd1 Refactored flow for main wireguard orchestration functions. Streamlined for better error handling and removal of NoneType objects 2026-07-27 18:17:49 -04:00
cb11e11e49 Editing out the already moved & commented out Connection Controller pieces 2026-07-25 14:21:55 -04:00
3afd4a8f9b Isolating the nmcli segments to a separate module 2026-07-25 14:01:37 -04:00