- da 244MB a 33MB (-86%): l'hook PyGObject raccoglieva tutti i temi icona di sistema (~70MB Papirus/Breeze/Adwaita) e 122 lingue - a runtime GTK usa i temi di sistema, i bundlati erano peso morto - spec con potatura post-analisi (share/icons/*, locale solo it/en) - release v0.1.0 su Gitea con binario allegato (33.4MB)
Pi Session Launcher
Piccola applicazione GUI (GTK3) per riprendere le sessioni di Pi Agent.
Elenco tutte le sessioni salvate in ~/.pi/agent/sessions/ e, selezionandone una:
- apre un terminale (Konsole) nella cartella di lavoro (
cwd) in cui la sessione era stata avviata; - riprende la sessione con
pi --session <file sessione>.
Requisiti
- Python 3 + PyGObject GTK3 (
python3-gi,gir1.2-gtk-3.0) - Konsole (KDE) — fallback:
xterm pinel PATH
Installazione
./install.sh # copia la voce nel menu applicazioni KDE (.desktop)
Avvio manuale:
python3 pi-session-launcher.py
Uso
| Azione | Come |
|---|---|
| Selezionare una sessione | clic sulla riga |
| Riprendere la sessione | doppio clic, Invio o pulsante Riprendi sessione |
| Rinominare la sessione | pulsante Rinomina o F2 (nome vuoto = cancella) |
| Cercare | digitare nel campo di ricerca (filtra per messaggio e cartella) |
| Aprire la cartella della sessione | pulsante Apri cartella (Dolphin) |
| Aggiornare l'elenco | pulsante Aggiorna o Ctrl+R |
Le sessioni con nome (/name in pi) sono mostrate in grassetto.
Eseguibile portabile
Build dell'eseguibile singolo ottimizzato (33 MB, PyInstaller + potatura):
python3 -m pip install --user --break-system-packages pyinstaller
# build da spec (vedi pi-session-launcher.spec): pota temi icona di sistema
# (GTK usa quelli di sistema a runtime) e tiene solo lingue it/en
python3 -m PyInstaller --clean --noconfirm pi-session-launcher.spec
./dist/pi-session-launcher
Il file .spec contiene la potatura post-analisi: rimuove share/icons/*
(tutti i temi installati sul sistema, ~70 MB) e share/locale/* eccetto it/en.
Nota: Nuitka richiede gli header
python3-dev(non installabili senza sudo); PyInstaller è la via raccomandata dalla documentazione PyGObject per app GTK.
Repository
Mirror pubblico su Gitea: https://git.enne2.net/enne2/pi-session-launcher
Release: https://git.enne2.net/enne2/pi-session-launcher/releases/tag/v0.1.0
Come funziona
- Ogni sessione è un file JSONL in
~/.pi/agent/sessions/--<percorso>--/<timestamp>_<uuid>.jsonl. - L'header della prima riga contiene il campo
cwd(cartella di avvio). - Il primo messaggio utente e il nome (
session_info) vengono letti dal file. - Il lancio usa:
konsole --workdir <cwd> --hold --separate -e bash -c 'pi --session "$1"; exec bash' _ <file>—exec bashmantiene la shell aperta quando pi termina.