Skill and extension picker for Paperclip agents; session notes and cleanup plan

This commit is contained in:
Sam
2026-11-11 09:15:38 +11:00
parent e44b0dff51
commit 1f8731fd49
13 changed files with 1091 additions and 5 deletions

73
docs/SESSIONS.md Normal file
View File

@@ -0,0 +1,73 @@
# Sessions: the ones TUIOS holds, and the ones Pi writes
Two different things are called a session. Keeping them apart is most of the answer.
| | TUIOS session | Pi session |
|---|---|---|
| what it is | a set of workspaces and panes, run by the TUIOS daemon | one conversation, written by Pi as JSONL |
| where it lives | inside the daemon; listed by `tuios ls` | `~/.pi/paperclips/<timestamp>-<agentId>.jsonl` |
| how it ends | you kill it, or it is resurrected after a restart | never; it is a file |
| who cleans up | nobody, automatically | nobody; files accumulate |
## Where to look for a Pi session — the only thing you need
```
~/.pi/paperclips/<timestamp>-<agentId>.jsonl 178 files on this machine
```
Every Paperclip run of a Pi agent writes one, named with the time it started and the agent's
id. To find the one for a task, ask Paperclip rather than guess:
```
GET /api/agents/{agentId}/task-sessions
→ [{ taskKey, sessionParamsJson: { cwd, sessionId: "/home/sam/.pi/paperclips/…jsonl" } }]
```
To open one, three options, cheapest first:
1. `pi --resume` in any pane, and pick from Pi's own list.
2. `pi --session /home/sam/.pi/paperclips/<file>.jsonl` opens that exact conversation — the
same flag Paperclip uses.
3. Open the folder in Yazi (`~/.pi/paperclips`), read or copy the file.
Two writers on one session file is the only risk, so open finished runs, or treat it as a
deliberate hand-over.
## The junk TUIOS sessions
Measured with `tuios ls --all-hosts`: **37 sessions**, of which **21 are from the closed
project's tests** — `harness-demo-card-*` (18) and `office-test-1*` (3). The rest are yours and
should stay: `office`, `office-test-1`'s parent, `tuios coding harness`, `paperclip-harness`,
`factory`, `drone deeca ai`, `email_agent`, `nixos desktop 13 devops`, `Basketball-site`,
`agents-tutorial`, `computer_hardware`, `computer_software`, `famil_home_lab`,
`resume_projects_notes`, `thinkpad`.
Nothing was killed: that is a destructive action and the list above is the evidence to decide
on.
### Proposed cleanup, in order
1. **Kill the 21 test sessions**, by name pattern, after printing the list:
```
tuios ls --all-hosts | (parse names) | grep -E '^(harness-demo-card-|office-test-1)' \
| xargs -n1 tuios kill-session
```
Add a `--dry-run` that prints and does nothing, and require the pattern to be given
explicitly, so no command can ever delete "everything that looks old".
2. **A `bin/prune` command** that lists sessions with their pane counts and last-active time,
marks anything not seen for N days, and refuses to touch a session that is attached.
3. **A rule for tests**: every test that creates a session kills it in the same script. The
previous project's tests left 21 behind precisely because creating was one command and
cleaning up was not.
4. **Do not prune `paperclip-harness`.** Its nine panes are the layout; `R` in Repair rebuilds
them. If a pane is stray, close it by name — the layout is rebuilt from `bin/board`, not
from whatever happens to be open.
### What is *not* junk, and looks like it
- `office` has 32 panes and is attached: it is the person's main session.
- `factory`, `office-test-1` and the `harness-demo-*` sessions have one pane each and are
detached — they *are* the junk, but they are indistinguishable from a deliberately parked
session by age alone. Hence the pattern, and hence the confirmation.