<feed xmlns='http://www.w3.org/2005/Atom'>
<title>sl0ppi.git/docs/architecture.md, branch main</title>
<subtitle>a sl0p.foo repository</subtitle>
<id>https://git.sl0p.foo/sl0ppi.git/atom/docs/architecture.md?h=main</id>
<link rel='self' href='https://git.sl0p.foo/sl0ppi.git/atom/docs/architecture.md?h=main'/>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/sl0ppi.git/'/>
<updated>2026-08-12T18:46:39Z</updated>
<entry>
<title>build: ship sl0pstatus, and install every plugin the package carries</title>
<updated>2026-08-12T18:46:39Z</updated>
<author>
<name>user</name>
<email>user@clank</email>
</author>
<published>2026-08-12T18:46:39Z</published>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/sl0ppi.git/commit/?id=045ed6a48a4f65abdafe8222e548b758fb6626a0'/>
<id>urn:sha1:045ed6a48a4f65abdafe8222e548b758fb6626a0</id>
<content type='text'>
Phase 3: `make package` now produces a tarball that provably works on a machine
with no node, npm, bun or rust.

Two bugs the clean-room test found, neither visible until a session actually
started:

  - the default layout builds its status bar out of zjstatus, which we were not
    shipping at all (vendored as sl0pstatus/ in the preceding commits)
  - install.sh installed a hardcoded plugin list, so zjstatus.wasm would not
    have reached the config dir even once staged

Also: layouts/*.kdl still pointed at ~/.config/zellij, missed by the rename pass
because that pass only rewrote config.kdl.

Verified end to end, from the tarball, in a throwaway HOME with node/npm/bun/
cargo shadowed by stubs that fail loudly if invoked:

  sl0ppij --version        -&gt; sl0ppij 0.45.0+sl0p1
  pi --version             -&gt; 0.84.1        (on the bundled bun)
  pir --help               -&gt; ok
  sl0ppij -s realtest      -&gt; session starts under a pty, config "Well defined",
                              fork pane titles render, both wasm plugins load,
                              no errors beyond the first-run permission cache

Artifact: sl0ppi-0.1.0-x86_64-linux.tar.gz, 83M, + .sha256.
</content>
</entry>
<entry>
<title>build: scaffold versioning, docs and the packaging pipeline</title>
<updated>2026-08-12T17:39:44Z</updated>
<author>
<name>user</name>
<email>user@clank</email>
</author>
<published>2026-08-12T17:39:44Z</published>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/sl0ppi.git/commit/?id=4b77895ba0e8498e29dffdfce61f7d2b329e3e26'/>
<id>urn:sha1:4b77895ba0e8498e29dffdfce61f7d2b329e3e26</id>
<content type='text'>
Adds the layer that makes this a distributable product rather than three
directories:

  VERSION      one sl0ppi version for the whole monorepo
  FORKS.md     what each component is based on, and how to rebase the fork
  Makefile     build / vendor / stage / package, plus dev-box helpers
  packaging/   fetch pinned payloads, assemble an install tree, install it
  docs/        architecture, the rename plan, the roadmap

The self-contained runtime question is settled and verified: pi upstream builds
its own release binary with `bun build --compile`, and a vendored bun runs the
vendored pi dist unmodified, so the tarball carries bun + pi and needs no system
node, npm or rust on the target machine.

packaging/install.sh does a per-user install under ~/.local, never clobbers an
existing config (writes .new alongside, or backs up under --force-config), and
warns loudly when a stock zellij is present -- because until docs/rename.md is
implemented the binary is still zellij underneath and would collide with it.
</content>
</entry>
</feed>
