v0.5.1 : accès distant ajean.link depuis l'UI + app Windows sans console

- Panneau « Accès distant » dans l'UI web : abonnement + liaison ajean.link
  en un clic (popup connect.html → clé remise à l'agent local), sans terminal.
  Endpoints locaux /api/link/status|connect|disconnect|paircode (web_link_api.go).
- Accès OpenAI public : refuse d'être activé sans accès distant, avec message.
- Windows : binaire compilé en sous-système GUI (-H=windowsgui) → plus aucune
  fenêtre de console au double-clic ; rattachement à la console parente en CLI
  (sys_console_windows.go). Suppression du hack relaunchDetachedApp.
- Windows : masquage (CREATE_NO_WINDOW) de TOUS les sous-process — git/vswhere
  du panneau MOTEUR (flash à chaque refresh), llama-server, MCP stdio, winget…
- Vouvoiement du nouveau parcours.
This commit is contained in:
nathaninline committed 2026-07-24 16:39:09 +02:00
1 parent 8e57685b19
commit d8b08dbb89
22 files changed
+444 -103

No files matched your search

+13 -6
View File
@@ -10,10 +10,16 @@ import (
"strings"
)
const Version = "0.5.0"
const Version = "0.5.1"
// Main est le vrai main() du binaire (cmd/jean ne fait que l'appeler).
func Main() {
// Rattache la console du terminal parent si on est lancé depuis un shell
// (Windows : binaire GUI). Retourne false au double-clic (aucune console) →
// on bascule alors sur l'expérience « application ». Hors Windows : toujours
// true. À faire AVANT toute écriture.
haveConsole := setupConsole()
// Migration one-shot des anciens skills (SKILLS/<nom>/SKILL.md) vers la
// nouvelle mémoire (MEMORY/<nom>.md). Idempotente, silencieuse si rien à faire.
migrateSkillsToMemory()
@@ -27,12 +33,13 @@ func Main() {
cmd = args[0]
args = args[1:]
}
// Double-clic sur le binaire (aucun argument, console fraîche) → on lance
// l'expérience « application » (UI web + navigateur) plutôt que d'afficher
// l'aide dans une console qui se referme aussitôt. Lancé depuis un shell,
// Double-clic sur le binaire (aucun argument, aucune console rattachée) → on
// lance l'expérience « application » (UI web + navigateur + icône tray) plutôt
// que d'afficher l'aide. Le binaire étant compilé en sous-système GUI, il n'y a
// AUCUNE console à ce stade (donc plus de fenêtre noire). Lancé depuis un shell,
// `jean` sans argument garde son comportement d'aide.
if noArgs && launchedByDoubleClick() {
relaunchDetachedApp() // relance sans console (ne revient pas), puis quitte l'original
if noArgs && !haveConsole {
mustExit(cmdApp(args))
return
}
switch cmd {