Developer tooling: what the build does not do. Not published.
| tool | does |
|---|---|
tmux-matrix.sh |
builds every supported tmux release into a tree the version matrix can use |
reap-stale-servers.sh |
reports and optionally ends tmux servers this port abandoned |
verify-staged-release.sh |
checks a staged release against what the Central Portal refuses |
mcp-swap/ |
points every installed agent CLI at this build of libtmux-mcp, and back |
$ ./tools/tmux-matrix.sh ~/tmux-builds$ ./gradlew testTmuxMatrix -PlibtmuxMatrix=~/tmux-buildsIt reads the lane list out of build-logic, so it cannot drift from the releases
the matrix actually runs. CI builds the same set, one release per runner.
$ ./tools/reap-stale-servers.sh # report only$ ./tools/reap-stale-servers.sh --reap # end themThe suite already does this for itself. This is for the case it cannot reach: a server whose test JVM was killed and whose socket the system's temp cleaner has since removed, which is then addressable only by its own argv.
It only ever touches sockets under this port's roots — /tmp/libtmux-java-test
and /tmp/libtmux-java-dev. Servers under the other /tmp/libtmux-* roots, which
other libtmux ports use, are counted and reported, never killed. CONTRIBUTING.md explains why.
CI's release rehearsal stages the version a tag would publish, signed by a key made for the run, and runs this over it:
$ ./tools/verify-staged-release.sh 0.0.1-alpha.17It names each artifact the Central Portal would refuse: one the BOM manages that was not staged, a missing jar, sources or javadoc jar, a signature or checksum that does not match, or a POM without the metadata Central requires. The signing key's public half has to be in the keyring.
$ ./gradlew :tools:mcp-swap:installDist$ tools/mcp-swap/build/install/mcp-swap/bin/mcp-swap use --dry-runmcp-swap/README.md covers the clients it knows, source
modes, capability overrides, and how revert restores every config byte.