aboutsummaryrefslogtreecommitdiffstats
path: root/Makefile
diff options
context:
space:
mode:
authorsl0p <sl0p@sl0p.foo>2026-08-13 22:52:33 +0200
committersl0p <sl0p@sl0p.foo>2026-08-13 22:52:33 +0200
commit7a6fa40a9c49245cf569e10e6ed635f9a6cbbcb7 (patch)
tree93f11a476bcdb6fe50f2f3e28fa865b86d3d06c3 /Makefile
parentsl0ptty: M1 — layout tree, splits, focus, frames, and the hit list in use (diff)
downloadslosh-7a6fa40a9c49245cf569e10e6ed635f9a6cbbcb7.tar.gz
slosh-7a6fa40a9c49245cf569e10e6ed635f9a6cbbcb7.tar.xz
slosh-7a6fa40a9c49245cf569e10e6ed635f9a6cbbcb7.zip
sl0ptty: M2 — server/client split, detach/reattach, control socket
The session now outlives its client, which is the point: agents keep running while you are gone. The server owns the panes, the layout and the renderer; the client is a terminal in raw mode and a socket, forwarding bytes and painting what it is sent. It does not even decode input, so the decoder can change without redeploying clients. sl0ptty attach to 'main', creating it if nobody is home sl0ptty -s NAME a named session sl0ptty ls live sessions sl0ptty cmd LINE one control command C-a d detach Connections are not clients. A connection becomes the display client only by sending HELLO; control commands and liveness probes are just connections and never displace anybody. This was found the hard way, one hour after the server first ran: 'sl0ptty ls' kicked the attached client off, because ls connects to see whether a socket answers. That is precisely the fault that gave the zellij fork a 20-25% CLI failure rate, rebuilt and then fixed structurally. The regression runs 20 x (ls + control) against a live client and demands 0 failures and a client that can still type. cmd.c now holds the command vocabulary once, shared by the headless driver and the control socket, so a script written against one works against the other — 'sl0ptty cmd "snapshot text"' against a detached session prints its screen. tests/test_session.py: 18 checks over create, split, probe-resistance, detach, survival, drive-while-detached, reattach, displacement and cleanup. 123 checks green overall.
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile2
1 files changed, 2 insertions, 0 deletions
diff --git a/Makefile b/Makefile
index a4c20ee..f2142fc 100644
--- a/Makefile
+++ b/Makefile
@@ -55,6 +55,8 @@ test-live: $(BIN) ## the checks that need a real tty (slow)
python3 tests/live_m0.py
@echo
python3 tests/live_input.py
+ @echo
+ python3 tests/test_session.py
test-all: test test-live ## everything