# tmux compatibility

Source: https://libtmux.org/en/raku/latest/topics/compatibility/

> Status: accepted.

Status: accepted.

## Decision

Support Linux and the declared stable tmux releases from 3.3a through 3.8.
Use the daemon's version and observed capabilities when selecting commands,
fields, codecs and layouts. A newer client executable does not upgrade the
daemon. Unknown and vendor releases require an explicit support decision.

Keep release profiles in [LibTmux::Catalogue](https://github.com/libtmux/libtmux-raku/blob/0b5dd3d32e20f83a0069874e33eab0eb48f55962/lib/LibTmux/Catalogue.rakumod).
Each profile names its upstream commit. The oldest and newest profiles define
the required live CI jobs; intermediate releases retain pure compatibility
fixtures. Feature boundaries and known defects belong in the field catalogue.

## Rationale

Runtime checks and CI must agree on supported releases. Typed release records
provide one source for both without a separate configuration format. CI verifies
the fetched tag against the pinned commit; it does not need a second inventory
of individual [source-file](https://libtmux.org/en/tmux/latest/manual/source-file/) hashes.

Adding a supported release requires reviewing its feature and defect policies,
updating its profile, and passing the relevant fixtures and endpoint tests.
