Commit Graph
28 Commits
Author SHA1 Message Date
tuxgyverandClaude Sonnet 5 f73908a358 chore(release): v0.7.17
Corrige la cause racine des invites d'authentification persistantes :
le service wgsecure-helper ne démarrait jamais réellement. Lancé par
le SCM (sans commande sur la ligne d'appel), HandleCommandLine() se
contentait d'afficher son aide et de sortir, sans entrer dans le
dispatcher — SvcDoRun n'était donc jamais exécuté, aucun journal
n'était créé, le pipe n'existait jamais, et l'app retombait toujours
sur l'élévation UAC. Bascule sur PrepareToHostSingle() +
StartServiceCtrlDispatcher() quand argv est vide.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-05 08:03:48 +02:00
tuxgyverandClaude Sonnet 5 b4f85c5605 chore(release): v0.7.16
Durcit la boucle principale de wgsecure-helper : ne capturait que
pywintypes.error (pas Exception en général) et ne protégeait pas
CloseHandle individuellement dans le nettoyage, si bien qu'une
exception inattendue sur une requête pouvait arrêter tout le
service — expliquant un premier échange réussi (juste après
démarrage) puis un service injoignable ensuite. Gère aussi
ERROR_PIPE_CONNECTED (course normale, pas rare, entre CreateNamedPipe
et ConnectNamedPipe) au lieu de la traiter comme une erreur.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-04 21:50:57 +02:00
tuxgyverandClaude Sonnet 5 5133868951 chore(release): v0.7.15
Corrige helper_ipc.py : seul CreateFileW avait des argtypes/restype
ctypes explicites. Sans eux pour ReadFile/WriteFile/CloseHandle, le
HANDLE (pointeur 64 bits) était marshalé comme un entier 32 bits par
défaut et tronqué silencieusement, faisant échouer systématiquement
l'échange avec wgsecure-helper — l'app retombait donc toujours sur
son chemin élevé (2 invites UAC) malgré un service qui tournait et
répondait correctement.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-04 21:26:32 +02:00
tuxgyverandClaude Sonnet 5 dd0df78341 chore(release): v0.7.14
Remplace l'enregistrement du service wgsecure-helper (sc.exe create/
start via [Run]) par un appel Exec()+AddQuotes en Pascal script :
l'échappement de guillemets imbriqués dans la chaîne Parameters
produisait une commande sc.exe invalide, silencieusement, alors que
la même commande fonctionnait lancée à la main. Le service n'était
donc jamais enregistré malgré une installation "réussie".

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-04 20:52:24 +02:00
tuxgyverandClaude Sonnet 5 8ec7dc6aaf chore(release): v0.7.13
Corrige Add-DnsClientNrptRule qui échouait systématiquement : ce
cmdlet n'a pas de paramètre -Name (contrairement à Get-/Set-/
Remove-), résolu comme abréviation ambiguë entre -Namespace/
-NameServers/-NameEncoding. Identification de la règle via -Comment
à la place, comme le nettoyage générique existant. Bénéficie au
chemin élevé classique et au service wgsecure-helper.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-04 19:13:50 +02:00
tuxgyverandClaude Sonnet 5 7beb6deb7a chore(release): v0.7.12
Ajoute wgsecure-helper, un service Windows privilégié (LocalSystem)
qui installe/désinstalle le tunnel et pose/retire les règles NRPT
sans invite d'authentification répétée. L'ACL du service WireGuard
(v0.7.6) ne délègue que démarrer/arrêter un tunnel déjà installé,
jamais le créer/supprimer, ce que WGSecure fait pourtant à chaque
connexion/déconnexion — d'où les prompts qui persistaient malgré
v0.7.6-v0.7.11. Corrige aussi le handshake, qui échouait pour la même
raison (wg show sans élévation complète).

Purement additif : l'app retombe sur son chemin élevé existant si le
service est absent (composant optionnel dans l'installeur).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-04 18:15:08 +02:00
tuxgyverandClaude Sonnet 5 9dca066239 chore(release): v0.7.11
Rend le redémarrage du service WireGuard best-effort dans "Configurer
les permissions" : Restart-Service échoue si un tunnel est actif, ce
qui annulait toute l'opération alors que l'ACL/registre venaient
d'être appliqués avec succès.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-04 17:19:59 +02:00
tuxgyverandClaude Sonnet 5 8380172884 chore(release): v0.7.10
Détecte "déjà membre du groupe" via FullyQualifiedErrorId au lieu du
texte anglais du message d'erreur, qui est localisé (le français ne
contenait jamais "already a member", faisant échouer le bouton à
chaque nouvelle tentative une fois le groupe déjà accordé).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-04 17:14:26 +02:00
tuxgyverandClaude Sonnet 5 21510d13f7 chore(release): v0.7.9
Corrige la SDDL invalide (erreur 1804) produite par le fix précédent
quand le service porte une clause S: (SACL/étiquette d'intégrité), et
les accents corrompus dans les messages d'erreur Windows (mauvais
codepage/encodage lors de la capture de sortie).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-04 17:04:34 +02:00
tuxgyverandClaude Sonnet 5 73c102cc35 chore(release): v0.7.8
Corrige l'ACL du service WireGuard (bouton "Configurer les permissions")
qui n'était en réalité jamais posée : la SDDL était lue via
Get-WmiObject.DACL.ToString(), qui ne produit pas de SDDL valide.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-04 16:49:51 +02:00
tuxgyverandClaude Sonnet 5 6fb0e0dc18 chore(release): v0.7.7
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-04 16:23:16 +02:00
tuxgyverandClaude Sonnet 5 35e5fe1ab4 fix(windows): capture stdout/stderr élevé, tente wg show non élevé, étend la délégation
- _run_elevated_windows() capture désormais la sortie réelle d'une commande
  élevée (fichier temp écrit par le process élevé lui-même) : ShellExecuteEx
  runas ne transmet jamais les tubes hérités, donc tout message d'échec
  élevé (split-DNS NRPT, install/uninstall du tunnel) restait "erreur
  inconnue" jusqu'ici.
- run_privileged_readonly() tente réellement `wg show` sous Windows non élevé
  au lieu d'abandonner sans essayer — le handshake ne se peuplait jamais.
- Le bouton "Configurer les permissions" active aussi le mécanisme officiel
  WireGuard (LimitedOperatorUI + groupe Network Configuration Operators via
  son SID, le nom étant localisé) en plus de l'ACL du service déjà en place.
- Le diagnostic Windows précise désormais que le split-DNS (NRPT) exige
  toujours une authentification admin séparée à la connexion/déconnexion,
  aucune ACL ne pouvant le déléguer (aucun mécanisme documenté trouvé).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-04 16:21:35 +02:00
tuxgyverandClaude Sonnet 5 7a8a5de1a4 fix: passe --version explicitement dans make publish
gitea_release.sh ne sait détecter la version que depuis VERSION,
*/version.py, package.json, pyproject.toml ou Cargo.toml — pas
app/__init__.py utilisé par ce dépôt. Le Makefile connaît déjà
VERSION, autant le lui passer directement.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-04 15:30:27 +02:00
tuxgyverandClaude Sonnet 5 4d8abc07d3 build: ajoute la cible make publish
Enchaîne release (build Linux versionné) puis gitea_release.sh
(BorisSkill) pour taguer et publier sur Gitea, en joignant aussi les
artefacts Windows déjà présents dans dist/ pour la version courante
s'ils existent.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-04 15:29:11 +02:00
tuxgyverandClaude Sonnet 5 6a3e8700c3 chore(release): v0.7.6
Ajoute un fichier log texte rotatif (wgsecure.log) dans le dossier
applicatif, en complément du journal JSON interne, pour diagnostiquer
un échec (ex. split-DNS) sans dépendre de l'UI. Corrige le panneau
Journal qui coupait les messages longs sans moyen de les lire en
entier (défilement horizontal réactivé + infobulle).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-04 15:25:01 +02:00
tuxgyverandClaude Sonnet 5 66faf5e661 chore(release): v0.7.5
Corrige l'échec silencieux « Accès refusé » à la connexion Windows :
wireguard.exe /install|uninstalltunnelservice était lancé sans élévation
en misant sur son manifeste UAC natif, qui ne s'auto-déclenche jamais via
un appel process-à-process. L'appel tente maintenant sans élévation
(compatible avec les ACLs accordées via le bouton dédié), puis retente
avec une vraie élévation UAC si le premier essai échoue. Le diagnostic
d'élévation est mis à jour pour refléter les deux cas.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-04 14:24:56 +02:00
tuxgyver 3b869aeae8 docs: mise à jour de la page À propos pour v0.7.4
La version s'affiche déjà dynamiquement depuis app.__version__ ; seul le
contenu curaté (FEATURES) devait suivre les apports réels de la 0.7.4 :
diagnostic du split-DNS et verrouillage des champs après import .conf.
2026-09-04 09:18:25 +02:00
tuxgyver 92d3d7f96e docs: mise à jour README pour v0.7.4
Badges de version et règles sudoers manuelles resynchronisées avec les
deux nouvelles commandes resolvectl (dns/domain) du split-DNS par lien.
2026-09-04 09:16:57 +02:00
tuxgyver 835d8e2bfb chore: synchronise la version de l'installeur Windows (0.7.4)
wgsecure.iss dupliquait encore 0.7.3, manqué lors du bump de version —
l'installeur généré aurait porté le mauvais numéro.
2026-09-04 09:06:15 +02:00
tuxgyver 5c53cf2500 chore(release): v0.7.4
Split-DNS repose désormais sur resolvectl par interface (Linux) et une
règle NRPT complète (Windows), avec diagnostic de résolution distante,
verrouillage des champs après import d'un .conf, et consolidation des
couleurs de l'UI dans theme.py.
2026-09-04 08:57:52 +02:00
tuxgyver 902c177330 Add Remote DNS 2026-09-04 08:55:35 +02:00
tuxgyver 910c04f845 docs: mise à jour README, CHANGELOG et page About pour v0.7.3
- Mise à jour du README avec la version 0.7.3 et le badge
- Mise à jour du CHANGELOG avec les notes de version 0.7.3
- Ajout du Split-DNS dans les fonctionnalités de la page About

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-09-03 07:21:26 +02:00
tuxgyver 38b48fc428 feat: support split-DNS, infobulles UI et corrections Windows
- Ajout du support complet du split-DNS pour Linux (systemd-resolved) et Windows (NRPT)
- Bouton de configuration des permissions ACL pour WireGuard sous Windows
- Suppression de tous les appels à sc.exe (remplacés par PowerShell + wireguard.exe)
- UAC gérée par wireguard.exe lui-même (pas par WGSecure)
- Infobulles ajoutées sur tous les champs de configuration principaux
- Correction du blocage du handshake lié au redémarrage de systemd-resolved
- Incrémentation de la version à 0.7.3

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-09-03 07:20:13 +02:00
tuxgyver e747f2a1ea fix(windows): suppression de sc.exe, bouton de configuration des permissions
- Supprime tous les appels à sc.exe (remplacés par PowerShell Get-Service + wireguard.exe)
- wireguard.exe appelé via run_command() sous Windows (UAC gérée par son manifeste)
- Supprime le double appel à uninstalltunnelservice (évite l'erreur 'service inexistant')
- Ajoute un bouton dans l'onglet Élévation pour configurer les ACLs du service WireGuard
  (permet à un utilisateur standard de gérer ses tunnels sans UAC après configuration admin)
- Incrémente la version à 0.7.2

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-09-02 18:33:57 +02:00
tuxgyver 8e40812f76 v0.7.1 : diagnostics non-bloquants, DNS hors tunnel détecté
- Nouveau diagnostic : signale un DNS non couvert par les IPs autorisées
  sur un tunnel scindé (résolution forcée via une interface qui n'a pas
  de route vers ce serveur).
- Corrige le test de connexion, l'analyse DNS et la réparation DNS qui
  gelaient l'application (sondes lancées sur le thread graphique).
- Corrige le CHANGELOG absent de l'exécutable compilé (page « À propos »
  vide) et le badge de latence bloqué sur « hors ligne » quand l'ICMP est
  filtré alors que le tunnel fonctionne.
- wgsecure.iss installe désormais WireGuard for Windows automatiquement.
2026-09-01 22:05:20 +02:00
tuxgyver ce4df4edb4 fix: changelog embarqué manquant, badge hors-ligne trompeur, installeur WireGuard
- CHANGELOG.md n'était pas empaqueté par PyInstaller (datas=[]) et son
  chemin, calculé depuis __file__, ne survivait pas à l'extraction
  onefile : la page « À propos » restait vide une fois compilée. Le
  fichier est désormais embarqué (--add-data) et son chemin bascule sur
  sys._MEIPASS en mode frozen.
- Le badge de latence se basait uniquement sur un ping ICMP vers
  l'endpoint : de nombreux serveurs/pare-feux le bloquent alors que le
  tunnel WireGuard fonctionne, d'où « hors ligne » permanent. Repli sur
  l'âge du dernier handshake réel quand l'ICMP échoue.
- wgsecure.iss installe désormais WireGuard for Windows en silencieux
  (prérequis manquant jusqu'ici), au même titre que le VC++
  Redistributable ; make installer-deps télécharge les deux binaires.
2026-09-01 21:23:12 +02:00
tuxgyver 8c09c02362 v0.7.0 : instance unique, handshake ré-affiché, sudoers fiabilisé, À propos refaite
- Instance unique : un second lancement réveille l'instance active.
- Autostart et reconnexion auto activés par défaut (nouvelle installation).
- Page « À propos » refaite en 5 onglets (contenu séparé dans app_info.py).
- Corrige le handshake/RX-TX qui ne s'affichaient plus (wg show sans élévation).
- Corrige le diagnostic sudo trompeur (sondes qui ne matchaient jamais les règles).
- Corrige make setup-sudoers bloqué hors session graphique (pkexec -> sudo), idempotent.
- Corrige le README : Kill Switch inexistant retiré, ordre d'élévation réel documenté.
2026-09-01 19:18:24 +02:00
tuxgyver 2fa50a5873 Ajoute tuxmarket.yaml pour l'entrée au store 2026-08-18 20:53:59 +02:00