# 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 `. ## Requisiti - Python 3 + PyGObject GTK3 (`python3-gi`, `gir1.2-gtk-3.0`) - Konsole (KDE) — fallback: `xterm` - `pi` nel PATH ## Installazione ```bash ./install.sh # copia la voce nel menu applicazioni KDE (.desktop) ``` Avvio manuale: ```bash 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 (PyInstaller, non richiede `python3-dev`): ```bash python3 -m pip install --user --break-system-packages pyinstaller python3 -m PyInstaller --onefile --windowed --name pi-session-launcher \ --collect-all gi --collect-all cairo \ --hidden-import gi.repository.Gtk --hidden-import gi.repository.Gdk \ --hidden-import gi.repository.Gio --hidden-import gi.repository.GLib \ --hidden-import gi.repository.Pango \ pi-session-launcher.py ./dist/pi-session-launcher ``` > 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 ## Come funziona - Ogni sessione è un file JSONL in `~/.pi/agent/sessions/----/_.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 --hold --separate -e bash -c 'pi --session "$1"; exec bash' _ ` — `exec bash` mantiene la shell aperta quando pi termina.