rmux 0.10.0

A local terminal multiplexer with a tmux-style CLI, daemon runtime, Rust SDK, and ratatui integration.
#![cfg(unix)]

use std::path::PathBuf;
use std::process::Command;

fn repo_root() -> PathBuf {
    PathBuf::from(env!("CARGO_MANIFEST_DIR"))
}

#[test]
fn rich_receipt_release_is_normalized_for_downstream_documents() {
    let source = r#"
import runpy
import sys

sys.path.insert(0, "scripts/release")
module = runpy.run_path("scripts/release/build-downstream-receipt-reference.py")
normalize = module["downstream_release_identity"]
release = {
    "id": 7,
    "ref": "v1.2.3",
    "intent_id": "release:v1.2.3:test",
    "kind": "stable",
    "tag_object_sha": "a" * 40,
    "immutable": True,
    "created_at": "2026-07-20T00:00:00Z",
    "published_at": "2026-07-20T00:01:00Z",
}
expected = {
    key: release[key]
    for key in ("id", "ref", "intent_id", "kind", "tag_object_sha", "immutable")
}
assert normalize(release) == expected

with_extra = {**release, "unexpected": True}
try:
    normalize(with_extra)
except ValueError as error:
    assert "publication receipt release keys differ" in str(error)
else:
    raise AssertionError("unexpected release fields were accepted")

out_of_order = {
    **release,
    "created_at": "2026-07-20T00:02:00Z",
    "published_at": "2026-07-20T00:01:00Z",
}
try:
    normalize(out_of_order)
except ValueError as error:
    assert "publication predates release creation" in str(error)
else:
    raise AssertionError("out-of-order release timestamps were accepted")
"#;
    let output = Command::new("python3")
        .arg("-c")
        .arg(source)
        .current_dir(repo_root())
        .output()
        .expect("run downstream receipt normalization");
    assert!(
        output.status.success(),
        "stdout={}\nstderr={}",
        String::from_utf8_lossy(&output.stdout),
        String::from_utf8_lossy(&output.stderr)
    );
}