Extract reconnect/autoconnect into a Qt-free class the cli can use #123

Open
opened 2026-08-22 23:01:12 -04:00 by mysticalsoap · 0 comments
Owner

After #111 the reconnect is the last piece of network-change handling still living in the gui: connect_last_server (plus what it reaches -- choose_random_server, connect_profile, last_server.json handling) is policy any client should be able to run, but it is welded into AqomuiGui. The cli cannot offer autoconnect today without recreating all of it.

That points at the working metric for what belongs outside the gui: if a feature would have to be recreated for the cli, it does not belong in the gui. Ideally cli and gui expose the same features, the gui being a front end for editing configuration and choosing servers.

Shape: a Qt-free module (per the #83 placement rule: modules a cli entry point imports stay Qt-free) owning the reconnect decision -- read last_server.json, resolve random/profile/favourite modes into concrete server dicts, honour autoconnect -- with the gui and cli each mapping the decision onto their own connect actions (progress bars and status handling stay with the gui). Tangled with the #83 seam-3 server-catalog model, since random/profile resolution needs the catalog; probably lands with or after that seam.

Follow-up to #111; fits the #83 decomposition series.

After #111 the reconnect is the last piece of network-change handling still living in the gui: `connect_last_server` (plus what it reaches -- `choose_random_server`, `connect_profile`, `last_server.json` handling) is policy any client should be able to run, but it is welded into `AqomuiGui`. The cli cannot offer autoconnect today without recreating all of it. That points at the working metric for what belongs outside the gui: **if a feature would have to be recreated for the cli, it does not belong in the gui.** Ideally cli and gui expose the same features, the gui being a front end for editing configuration and choosing servers. Shape: a Qt-free module (per the #83 placement rule: modules a cli entry point imports stay Qt-free) owning the reconnect decision -- read `last_server.json`, resolve random/profile/favourite modes into concrete server dicts, honour `autoconnect` -- with the gui and cli each mapping the decision onto their own connect actions (progress bars and status handling stay with the gui). Tangled with the #83 seam-3 server-catalog model, since random/profile resolution needs the catalog; probably lands with or after that seam. Follow-up to #111; fits the #83 decomposition series.
Sign in to join this conversation.
No milestone
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
mysticalsoap/aqomui#123
No description provided.