|
|
One root dir = one sl0ppij session, one project = one tab, panes from the
project's .sl0ppi/layout.kdl fragment.
Verified against the fork before designing on top of it, rather than assuming:
- `action new-tab --layout|--layout-string --name --cwd` exists and returns
the new tab id
- `tab name= purpose=` is reported by `action list-tabs --json`
- purposes accept [A-Za-z0-9_.:/-] up to 64 chars, so "project:foo.a1b2c3"
survives the sanitiser verbatim
- layout-declared purposes outrank in-band ones and survive resurrection, so
tab identity cannot be spoofed from inside a pane and is stable across a
session restart
- `start_suspended` exists, which is what keeps `up` on a twelve-project root
from becoming twelve running servers
Load-bearing property: `up` diffs discovered projects against list-tabs and
creates only what is missing, so running it repeatedly is a no-op. First thing
the tests will assert.
Entry point fails open: any error warns and execs plain sl0ppij with the
original args. Today's incident is the argument -- when the environment breaks,
the terminal is what you debug it with, so the orchestrator must never stand
between the user and their multiplexer.
Also records two problems found while designing: tab overflow (twelve projects
vs a status bar showing ~six, so `open` wants to be a picker) and that the
shipped `pir` needs python3 + fzf, neither of which is in the tarball.
|