Output:
Chunk ID: d0f03a
Wall time: 0.0000 seconds
Process exited with code 0
Original token count: 594
Output:
) -> list[str]:
    return [*ssh_argv(access, ("-tt",)), remote_command(rel_dir, exec_name, forwarded_argv)]

@dataclass
class Session:
    host_name: str
    access: dict
    root: Path
    rel_dir: str
    argv: list[str]
    git_warning: str | None = None
    exclude_git: bool = False
    claim: PlacementClaim | None = None

    def release(self) -> None:
        """Drop the placement claim so the node stops looking busy to the next dispatch."""
        if self.claim is not None:
            self.claim.release()
            self.claim = None

    def pull_back(self, run=subprocess.run) -> str | None:
        """Mirror the node's tree home. Returns an error string, never raises."""
        try:
            done = run(
                pull_argv(self.access, self.root, self.rel_dir, exclude_git=self.exclude_git),
                capture_output=True,
                text=True,
                timeout=SYNC_TIMEOUT_SEC,
            )
        except (OSError, subprocess.SubprocessError) as exc:
            return f"result sync from {self.host_name} failed: {exc}"
        if done.returncode != 0:
            return f"result sync from {self.host_name} failed: {done.stderr.strip()}"
        return None

def open_session(
    exec_name: str,
    forwarded_argv: list[str],
    cwd: Path | None = None,
    registry_path: Path = REGISTRY_PATH,
    run=subprocess.run,
    probe=probe_load,
    claims: Path | None = None,
) -> Session:
    host, access, claim = select_host(
        candidate_hosts(load_registry(registry_path)), probe=probe, claims=claims
    )
    name = _host_name(host, access)
    try:
        root = repo_root(cwd)
        rel_dir = remote_rel_dir(root)
        mirror = git_mirror(root, run=run)
        remote_dirs = [rel_dir]
        if mirror is not None:
            remote_dirs += [mirror.remote_common, mirror.remote_git_dir]

        try:
            made = run(
                [*ssh_argv(access), f"mkdir -p {shlex.join(remote_dirs)}"],
                capture_output=True,
                text=True,
                timeout=PROBE_TIMEOUT_SEC,
            )
        except (OSError, subprocess.SubprocessError) as exc:
            raise OffloadUnavailable(
                f"{name}: could not prepare mirror: {exc}", code=EXIT_MIRROR
            ) from exc
        if made.returncode != 0:
            raise OffloadUnavailable(


sed -n '590,650p' modules/systray/remote_dispatch.py


Output:
Chunk ID: 3996ed
Wall time: 0.0000 seconds
Process exited with code 0
Original token count: 327
Output:
            raise OffloadUnavailable(
                f"{name}: could not prepare mirror: {made.stderr.strip()}",
                code=EXIT_MIRROR,
            )

        try:
            pushed = run(
                push_argv(access, root, rel_dir, exclude_git=mirror is not None),
                capture_output=True,
                text=True,
                timeout=SYNC_TIMEOUT_SEC,
            )
        except (OSError, subprocess.SubprocessError) as exc:
            raise OffloadUnavailable(
                f"{name}: mirror push failed: {exc}", code=EXIT_MIRROR
            ) from exc
        if pushed.returncode != 0:
            raise OffloadUnavailable(
                f"{name}: mirror push failed: {pushed.stderr.strip()}",
                code=EXIT_MIRROR,
            )

        git_warning = (
            None if mirror is None else prepare_remote_git(access, name, rel_dir, mirror, run=run)
        )
    except BaseException:
        if claim is not None:
            claim.release()
        raise

    return Session(
        host_name=name,
        access=access,
        root=root,
        rel_dir=rel_dir,
        argv=remote_run_argv(access, rel_dir, exec_name, forwarded_argv),
        git_warning=git_warning,
        exclude_git=mirror is not None,
        claim=claim,
    )


sed -n '1,170p' modules/systray/tests/test_remote_dispatch.py


Output:
Chunk ID: 39f9b6
Wall time: 0.0000 seconds
Process exited with code 0
Original token count: 1376
Output:
from __future__ import annotations

import json
import multiprocessing
import os
import random
import shutil
import subprocess
import sys
from collections import Counter
from pathlib import Path

import pytest

sys.path.insert(0, str(Path(__file__).resolve().parents[1]))

import remote_dispatch

REGISTRY = {
    "schema_version": 1,
    "hosts": [
        {
            "name": "debian1",
            "state": "reachable",
            "roles": ["builder", "agent-seat"],
            "access": {
                "tailscale_ip": {
                    "host": "100.0.0.1",
                    "port": 2222,
                    "user": "user",
                    "identity_file": "~/.ssh/id_ed25519_buildbox",
                }
            },
        },
        {
            "name": "debian2",
            "state": "reachable",
            "roles": ["builder", "agent-seat"],
            "access": {"tailscale_ip": {"host": "100.0.0.2", "port": 2222, "user": "user"}},
        },
        {
            "name": "debian3",
            "state": "unreachable",
            "roles": ["builder", "agent-seat"],
            "access": {"tailscale_ip": {"host": "100.0.0.3", "port": 2222, "user": "user"}},
        },
    ],
}

THREE_REACHABLE = {
    "schema_version": 1,
    "hosts": [
        {
            "name": f"debian{n}",
            "state": "reachable",
            "roles": ["agent-seat"],
            "access": {"tailscale_ip": {"host": f"100.0.0.{n}", "user": "user"}},
        }
        for n in (1, 2, 3)
    ],
}

@pytest.fixture(autouse=True)
def isolated_claim_dir(tmp_path_factory, monkeypatch):
    """No test may write placement claims into the real ~/.local/state directory."""
    directory = tmp_path_factory.mktemp("claims")
    monkeypatch.setenv(remote_dispatch.CLAIM_DIR_ENV, str(directory))
    return directory

def write_registry(tmp_path: Path, payload: dict | None = None) -> Path:
    path = tmp_path / "buildbox-hosts.json"
    path.write_text(json.dumps(payload if payload is not None else REGISTRY), encoding="utf-8")
    return path

def test_should_offload_true_when_not_in_container(monkeypatch):
    monkeypatch.setattr(remote_dispatch, "in_container", lambda: False)
    assert remote_dispatch.should_offload() is True

def test_should_offload_false_when_in_container(monkeypatch):
    monkeypatch.setattr(remote_dispatch, "in_container", lambda: True)
    assert remote_dispatch.should_offload() is False

def test_should_offload_ignores_env(monkeypatch):
    monkeypatch.setenv("CDX_NO_OFFLOAD", "1")
    monkeypatch.setenv("OD_REMOTE_EXEC", "1")
    monkeypatch.setenv("HARNESS_SEAT_CONTAINER", "1")
    monkeypatch.setenv("CDX_OFFLOAD_STRICT", "0")

    monkeypatch.setattr(remote_dispatch, "in_container", lambda: False)
    assert remote_dispatch.should_offload() is True

    monkeypatch.setattr(remote_dispatch, "in_container", lambda: True)
    assert remote_dispatch.should_offload() is False

def test_access_for_raises_credential_error():
    host = {
        "name": "debian1",
        "access": {},
    }
    with pytest.raises(remote_dispatch.OffloadUnavailable) as exc_info:
        remote_dispatch.access_for(host)
    assert exc_info.value.code == remote_dispatch.EXIT_NO_NODE

def test_candidate_hosts_excludes_unreachable():
    names = [h["name"] for h in remote_dispatch.candidate_hosts(REGISTRY)]
    assert names == ["debian1", "debian2"]

def test_candidate_hosts_raises_when_none_reachable():
    payload = {"hosts": [dict(REGISTRY["hosts"][2])]}
    with pytest.raises(remote_dispatch.OffloadUnavailable) as exc_info:
        remote_dispatch.candidate_hosts(payload)
    assert exc_info.value.code == remote_dispatch.EXIT_NO_NODE

def test_select_host_picks_least_loaded():
    loads = {"100.0.0.1": 9.5, "100.0.0.2": 0.4}
    host, access, _claim = remote_dispatch.select_host(
        remote_dispatch.candidate_hosts(REGISTRY),
        probe=lambda a: loads[a["host"]],
    )
    assert host["name"] == "debian2"
    assert access["host"] == "100.0.0.2"

def test_select_host_skips_nodes_that_do_not_answer():
    host, _access, _claim = remote_dispatch.select_host(
        remote_dispatch.candidate_hosts(REGISTRY),
        probe=lambda a: None if a["host"] == "100.0.0.2" else 7.0,
    )
    assert host["name"] == "debian1"

def test_select_host_raises_when_no_node_answers():
    with pytest.raises(remote_dispatch.OffloadUnavailable):
        remote_dispatch.select_host(remote_dispatch.candidate_hosts(REGISTRY), probe=lambda a: None)

def test_parse_loadavg():
    assert remote_dispatch.parse_loadavg("0.52 0.31 0.20 1/900 12345\n") == 0.52
    assert remote_dispatch.parse_loadavg("") is None
    assert remote_dispatch.parse_loadavg("garbage") is None

def test_remote_rel_dir_is_stable_and_path_specific():
    a = remote_dispatch.remote_rel_dir(Path("/home/user/Projects/overdeck/.worktrees/one"))
    b = remote_dispatch.remote_rel_dir(Path("/home/user/Projects/overdeck/.worktrees/two"))
    assert a == remote_dispatch.remote_rel_dir(Path("/home/user/Projects/overdeck/.worktrees/one"))
    assert a != b
    assert a.startswith("cdx-offload/one-")

def test_ssh_argv_pins_identity_port_and_ignores_ssh_config():
    argv = remote_dispatch.ssh_argv(REGISTRY["hosts"][0]["access"]["tailscale_ip"])
    assert argv[:3] == ["ssh", "-F", "/dev/null"]
    assert "-p" in argv and "2222" in argv
    assert argv[-1] == "user@100.0.0.1"
    assert any(a.endswith("id_ed25519_buildbox") for a in argv)

GIT_ENV = {


sed -n '244,320p' modules/systray/tests/test_remote_dispatch.py


Output:
Chunk ID: 57513e
Wall time: 0.0000 seconds
Process exited with code 0
Original token count: 709
Output:
    assert "-tt" in argv
    assert argv[0] == "ssh"

def test_open_session_pushes_then_returns_remote_argv(tmp_path, monkeypatch):
    calls: list[list[str]] = []

    def fake_run(argv, **kwargs):
        calls.append(argv)
        return subprocess.CompletedProcess(argv, 0, stdout="", stderr="")

    monkeypatch.setattr(remote_dispatch, "repo_root", lambda cwd=None: tmp_path / "repo")
    session = remote_dispatch.open_session(
        "codex",
        ["exec", "hi"],
        registry_path=write_registry(tmp_path),
        run=fake_run,
        probe=lambda a: 1.0 if a["host"] == "100.0.0.1" else 5.0,
    )
    assert session.host_name == "debian1"
    assert any("mkdir -p" in " ".join(c) for c in calls)
    assert any(c[0] == "rsync" for c in calls)
    assert session.argv[0] == "ssh" and "-tt" in session.argv

def test_open_session_fails_closed_when_the_push_fails(tmp_path, monkeypatch):
    def fake_run(argv, **kwargs):
        rc = 1 if argv[0] == "rsync" else 0
        return subprocess.CompletedProcess(argv, rc, stdout="", stderr="disk full")

    monkeypatch.setattr(remote_dispatch, "repo_root", lambda cwd=None: tmp_path / "repo")
    with pytest.raises(remote_dispatch.OffloadUnavailable, match="mirror push failed") as exc_info:
        remote_dispatch.open_session(
            "codex",
            ["exec", "hi"],
            registry_path=write_registry(tmp_path),
            run=fake_run,
            probe=lambda a: 1.0,
        )
    assert exc_info.value.code == remote_dispatch.EXIT_MIRROR

def test_pull_back_reports_failure_instead_of_raising(tmp_path):
    session = remote_dispatch.Session(
        host_name="debian1",
        access=REGISTRY["hosts"][0]["access"]["tailscale_ip"],
        root=tmp_path,
        rel_dir="cdx-offload/x",
        argv=["ssh"],
    )
    err = session.pull_back(
        run=lambda argv, **kw: subprocess.CompletedProcess(argv, 23, stdout="", stderr="boom")
    )
    assert err is not None and "debian1" in err and "boom" in err
    assert session.pull_back(
        run=lambda argv, **kw: subprocess.CompletedProcess(argv, 0, stdout="", stderr="")
    ) is None

def test_load_registry_missing_file_is_offload_unavailable(tmp_path):
    with pytest.raises(remote_dispatch.OffloadUnavailable) as exc_info:
        remote_dispatch.load_registry(tmp_path / "nope.json")
    assert exc_info.value.code == remote_dispatch.EXIT_NO_NODE

def test_git_mirror_is_none_for_a_plain_checkout(tmp_path):
    assert remote_dispatch.git_mirror(make_repo(tmp_path)) is None

def test_git_mirror_is_none_outside_a_repository(tmp_path):
    plain = tmp_path / "notrepo"
    plain.mkdir()
    assert remote_dispatch.git_mirror(plain) is None

def test_git_mirror_detects_a_linked_worktree_and_targets_the_common_worktrees_dir(tmp_path):
    root = make_repo(tmp_path)


I’ve finished the edits in all four target files; next I’m doing a focused diff review so we can catch any logical/regression issues before stopping.


git -C /home/user/cdx-offload/sbdisp-c7c9d94b5596 diff -- modules/systray/remote_dispatch.py modules/systray/command_router.py modules/systray/tests/test_remote_dispatch.py modules/systray/tests/test_command_router.py


Output:
Chunk ID: 172f78
Wall time: 0.0857 seconds
Process exited with code 0
Original token count: 4078
Output:
diff --git a/modules/systray/command_router.py b/modules/systray/command_router.py
index 357bbb5f..a16fcb20 100644
--- a/modules/systray/command_router.py
+++ b/modules/systray/command_router.py
@@ -761,25 +761,32 @@ class CommandRouter:
         if log_path is not None:
             return self._run_captured(forwarded_argv, env, log_path)

-        os.execvpe(self.adapter.exec_name, [self.adapter.exec_name, *forwarded_argv], env)
-        return 0
+        if remote_dispatch.in_container():
+            os.execvpe(self.adapter.exec_name, [self.adapter.exec_name, *forwarded_argv], env)
+            return 0
+
+        reason = (
+            "no writable log directory"
+            if is_exec_invocation(forwarded_argv)
+            else "adapter captures no log for these arguments"
+        )
+        print(
+            f"{self.adapter.tool_name}: no containerized path for this invocation ({reason})",
+            file=sys.stderr,
+        )
+        return remote_dispatch.EXIT_UNCONTAINABLE

     def _run_captured(self, forwarded_argv: list[str], env: dict[str, str], log_path: Path) -> int:
         started = time.monotonic()
         tool = self.adapter.tool_name
         argv = [self.adapter.exec_name, *forwarded_argv]
         session = None
-        if remote_dispatch.should_offload(env):
+        if remote_dispatch.should_offload():
             try:
                 session = remote_dispatch.open_session(self.adapter.exec_name, forwarded_argv)
             except remote_dispatch.OffloadUnavailable as exc:
-                if env.get("CDX_OFFLOAD_STRICT") == "1":
-                    print(f"{tool}: cluster offload unavailable — {exc}", file=sys.stderr)
-                    return 1
-                print(
-                    f"{tool}: cluster offload unavailable — {exc}; RUNNING ON THE WORKSTATION",
-                    file=sys.stderr,
-                )
+                print(f"{tool}: containment unavailable — {exc}", file=sys.stderr)
+                return exc.code
             else:
                 argv = session.argv
                 print(f"{tool}: running on {session.host_name} ({session.rel_dir})", file=sys.stderr)
diff --git a/modules/systray/remote_dispatch.py b/modules/systray/remote_dispatch.py
index c1410df8..7ed0036e 100644
--- a/modules/systray/remote_dispatch.py
+++ b/modules/systray/remote_dispatch.py
@@ -51,27 +51,44 @@ CLAIM_DIR_ENV = "OD_PLACEMENT_CLAIM_DIR"
 DEFAULT_CLAIM_DIR_RELPATH = ".local/state/overdeck/placement-claims"
 CLAIM_SUFFIX = ".claim"
 CLAIM_LOAD_PENALTY = 1.0
+EXIT_NO_NODE = 80
+EXIT_CREDENTIAL = 81
+EXIT_MIRROR = 82
+EXIT_LAUNCH = 83
+EXIT_UNCONTAINABLE = 84

 class OffloadUnavailable(RuntimeError):
     """No cluster node can take this run."""

+    def __init__(self, message: str, code: int = EXIT_NO_NODE) -> None:
+        super().__init__(message)
+        self.code = code

-def should_offload(env: dict[str, str] | None = None) -> bool:
-    """False when offload is opted out, or when this process is already on a node."""
-    env = os.environ if env is None else env
-    if env.get("CDX_NO_OFFLOAD") == "1":
+
+def in_container() -> bool:
+    """Machine-local evidence, not env: an env marker is agent-settable."""
+    for probe in (Path("/run/.containerenv"), Path("/.dockerenv")):
+        if probe.exists():
+            return True
+    try:
+        cgroup = Path("/proc/self/cgroup").read_text(encoding="utf-8")
+    except OSError:
         return False
-    return not (
-        env.get("OD_REMOTE_EXEC") == "1" or env.get("HARNESS_SEAT_CONTAINER") == "1"
-    )
+    return "libpod" in cgroup or "docker" in cgroup
+
+
+def should_offload() -> bool:
+    return not in_container()

 def load_registry(path: Path = REGISTRY_PATH) -> dict:
     try:
         return json.loads(Path(path).read_text(encoding="utf-8"))
     except (OSError, ValueError) as exc:
-        raise OffloadUnavailable(f"buildbox registry unreadable at {path}: {exc}") from exc
+        raise OffloadUnavailable(
+            f"buildbox registry unreadable at {path}: {exc}", code=EXIT_NO_NODE
+        ) from exc

 def candidate_hosts(registry: dict, role: str = SEAT_ROLE) -> list[dict]:
@@ -82,14 +99,18 @@ def candidate_hosts(registry: dict, role: str = SEAT_ROLE) -> list[dict]:
         if host.get("state") == "reachable" and role in (host.get("roles") or [])
     ]
     if not hosts:
-        raise OffloadUnavailable(f"no reachable host with role {role} in the registry")
+        raise OffloadUnavailable(
+            f"no reachable host with role {role} in the registry", code=EXIT_NO_NODE
+        )
     return hosts

 def access_for(host: dict, door: str = DOOR) -> dict:
     access = (host.get("access") or {}).get(door)
     if not access or not access.get("host"):
-        raise OffloadUnavailable(f"{host.get('name')}: no usable {door} access door")
+        raise OffloadUnavailable(
+            f"{host.get('name')}: no usable {door} access door", code=EXIT_NO_NODE
+        )
     return access

@@ -266,7 +287,9 @@ def select_host(
             continue
         probed.append((host, access, load))
     if not probed:
-        raise OffloadUnavailable("; ".join(failures) or "no candidate node answered")
+        raise OffloadUnavailable(
+            "; ".join(failures) or "no candidate node answered", code=EXIT_NO_NODE
+        )

     held: PlacementClaim | None = None
     held_index: int | None = None
@@ -560,9 +583,14 @@ def open_session(
                 timeout=PROBE_TIMEOUT_SEC,
             )
         except (OSError, subprocess.SubprocessError) as exc:
-            raise OffloadUnavailable(f"{name}: could not prepare mirror: {exc}") from exc
+            raise OffloadUnavailable(
+                f"{name}: could not prepare mirror: {exc}", code=EXIT_MIRROR
+            ) from exc
         if made.returncode != 0:
-            raise OffloadUnavailable(f"{name}: could not prepare mirror: {made.stderr.strip()}")
+            raise OffloadUnavailable(
+                f"{name}: could not prepare mirror: {made.stderr.strip()}",
+                code=EXIT_MIRROR,
+            )

         try:
             pushed = run(
@@ -572,9 +600,14 @@ def open_session(
                 timeout=SYNC_TIMEOUT_SEC,
             )
         except (OSError, subprocess.SubprocessError) as exc:
-            raise OffloadUnavailable(f"{name}: mirror push failed: {exc}") from exc
+            raise OffloadUnavailable(
+                f"{name}: mirror push failed: {exc}", code=EXIT_MIRROR
+            ) from exc
         if pushed.returncode != 0:
-            raise OffloadUnavailable(f"{name}: mirror push failed: {pushed.stderr.strip()}")
+            raise OffloadUnavailable(
+                f"{name}: mirror push failed: {pushed.stderr.strip()}",
+                code=EXIT_MIRROR,
+            )

         git_warning = (
             None if mirror is None else prepare_remote_git(access, name, rel_dir, mirror, run=run)
diff --git a/modules/systray/tests/test_command_router.py b/modules/systray/tests/test_command_router.py
index 97c9c3fa..30f6fc9e 100644
--- a/modules/systray/tests/test_command_router.py
+++ b/modules/systray/tests/test_command_router.py
@@ -761,6 +761,11 @@ def test_codex_exec_captures_output_to_logfile_and_prints_only_path(
         "sync_before_exec",
         lambda self, base_dir: None,
     )
+    monkeypatch.setattr(
+        command_router.remote_dispatch,
+        "in_container",
+        lambda: True,
+    )

     run_call: dict[str, object] = {}

@@ -833,7 +838,7 @@ def test_run_captured_releases_the_placement_claim_when_the_run_raises(
         raise OSError("the node went away mid-run")

     monkeypatch.setattr(session, "pull_back", lambda **kwargs: None)
-    monkeypatch.setattr(command_router.remote_dispatch, "should_offload", lambda env: True)
+    monkeypatch.setattr(command_router.remote_dispatch, "should_offload", lambda: True)
     monkeypatch.setattr(
         command_router.remote_dispatch, "open_session", lambda *a, **kw: session
     )
@@ -850,6 +855,126 @@ def test_run_captured_releases_the_placement_claim_when_the_run_raises(
     assert "the node went away mid-run" in capsys.readouterr().err

+@pytest.mark.parametrize("entrypoint", ["_run_captured", "main"])
+@pytest.mark.parametrize("escape_env", [False, True])
+def test_run_or_main_rejects_offload_unavailable(
+    tmp_path: Path,
+    monkeypatch: pytest.MonkeyPatch,
+    capsys: pytest.CaptureFixture[str],
+    entrypoint: str,
+    escape_env: bool,
+) -> None:
+    if escape_env:
+        for env_name in (
+            "CDX_NO_OFFLOAD",
+            "OD_REMOTE_EXEC",
+            "HARNESS_SEAT_CONTAINER",
+            "CDX_OFFLOAD_STRICT",
+        ):
+            monkeypatch.setenv(env_name, "1" if env_name != "CDX_OFFLOAD_STRICT" else "0")
+    monkeypatch.setattr(command_router.remote_dispatch, "in_container", lambda: False)
+
+    def raise_unavailable(*_args: object, **_kwargs: object) -> None:
+        raise remote_dispatch.OffloadUnavailable(
+            "no usable access door", code=remote_dispatch.EXIT_MIRROR
+        )
+
+    monkeypatch.setattr(
+        command_router.remote_dispatch,
+        "open_session",
+        raise_unavailable,
+    )
+
+    supervise_called = False
+
+    def fake_supervise(
+        argv: list[str], env: dict[str, str], log_path: Path, **kwargs: object
+    ) -> int:
+        nonlocal supervise_called
+        supervise_called = True
+        return 0
+
+    monkeypatch.setattr(command_router, "supervise", fake_supervise)
+    router = command_router.CommandRouter(
+        command_router.CodexAdapter(),
+        detect_project_name=command_router.detect_project_name,
+    )
+    log_path = tmp_path / "run.log"
+    if entrypoint == "_run_captured":
+        exit_code = router._run_captured(
+            ["exec", "hello"],
+            {**os.environ, "CODEX_HOME": str(tmp_path / "accounts" / "acct" / "CODEX_HOME")},
+            log_path,
+        )
+    else:
+        account_home = tmp_path / "accounts" / "acct" / "CODEX_HOME"
+        account_home.mkdir(parents=True)
+        monkeypatch.setattr(
+            command_router.CodexAdapter,
+            "sync_before_exec",
+            lambda self, base_dir: None,
+        )
+        monkeypatch.setattr(
+            router,
+            "_resolve_account",
+            lambda *args, **kwargs: (tmp_path, "acct", account_home),
+        )
+        monkeypatch.setattr(
+            command_router.CodexAdapter,
+            "capture_log_path",
+            lambda self, forwarded_argv: log_path,
+        )
+        exit_code = router.main(["cdx", "exec", "hello"])
+
+    assert exit_code == remote_dispatch.EXIT_MIRROR
+    assert not supervise_called
+    assert "cdx: containment unavailable — no usable access door" in capsys.readouterr().err
+
+
+def test_cdx_main_with_no_containerized_log_path_returns_uncontainable(
+    tmp_path: Path,
+    monkeypatch: pytest.MonkeyPatch,
+    capsys: pytest.CaptureFixture[str],
+) -> None:
+    router = command_router.CommandRouter(
+        command_router.CodexAdapter(),
+        detect_project_name=command_router.detect_project_name,
+    )
+    account_home = tmp_path / "accounts" / "acct" / "CODEX_HOME"
+    account_home.mkdir(parents=True)
+    monkeypatch.setattr(
+        router,
+        "_resolve_account",
+        lambda *args, **kwargs: (tmp_path, "acct", account_home),
+    )
+    monkeypatch.setattr(
+        command_router.remote_dispatch,
+        "in_container",
+        lambda: False,
+    )
+    monkeypatch.setattr(
+        command_router.CodexAdapter,
+        "capture_log_path",
+        lambda self, forwarded_argv: None,
+    )
+    exec_called = False
+
+    def fake_execvpe(file: str, args: list[str], env: dict[str, str]) -> None:
+        nonlocal exec_called
+        exec_called = True
+
+    monkeypatch.setattr(command_router.os, "execvpe", fake_execvpe)
+
+    exit_code = router.main(["cdx", "chat"])
+    captured = capsys.readouterr()
+
+    assert exit_code == remote_dispatch.EXIT_UNCONTAINABLE
+    assert exec_called is False
+    assert captured.err.strip() == (
+        "cdx: no containerized path for this invocation (adapter captures no log for these arguments)"
+    )
+
+
 def test_codex_router_explicit_override_missing_everywhere_reports_unknown(
     home: Path,
     monkeypatch: pytest.MonkeyPatch,
diff --git a/modules/systray/tests/test_remote_dispatch.py b/modules/systray/tests/test_remote_dispatch.py
index 313a0733..dc988908 100644
--- a/modules/systray/tests/test_remote_dispatch.py
+++ b/modules/systray/tests/test_remote_dispatch.py
@@ -77,17 +77,37 @@ def write_registry(tmp_path: Path, payload: dict | None = None) -> Path:
     return path

-def test_should_offload_defaults_true():
-    assert remote_dispatch.should_offload({}) is True
+def test_should_offload_true_when_not_in_container(monkeypatch):
+    monkeypatch.setattr(remote_dispatch, "in_container", lambda: False)
+    assert remote_dispatch.should_offload() is True

-def test_should_offload_opt_out():
-    assert remote_dispatch.should_offload({"CDX_NO_OFFLOAD": "1"}) is False
+def test_should_offload_false_when_in_container(monkeypatch):
+    monkeypatch.setattr(remote_dispatch, "in_container", lambda: True)
+    assert remote_dispatch.should_offload() is False

-def test_should_offload_false_when_already_on_a_node():
-    assert remote_dispatch.should_offload({"OD_REMOTE_EXEC": "1"}) is False
-    assert remote_dispatch.should_offload({"HARNESS_SEAT_CONTAINER": "1"}) is False
+def test_should_offload_ignores_env(monkeypatch):
+    monkeypatch.setenv("CDX_NO_OFFLOAD", "1")
+    monkeypatch.setenv("OD_REMOTE_EXEC", "1")
+    monkeypatch.setenv("HARNESS_SEAT_CONTAINER", "1")
+    monkeypatch.setenv("CDX_OFFLOAD_STRICT", "0")
+
+    monkeypatch.setattr(remote_dispatch, "in_container", lambda: False)
+    assert remote_dispatch.should_offload() is True
+
+    monkeypatch.setattr(remote_dispatch, "in_container", lambda: True)
+    assert remote_dispatch.should_offload() is False
+
+
+def test_access_for_raises_credential_error():
+    host = {
+        "name": "debian1",
+        "access": {},
+    }
+    with pytest.raises(remote_dispatch.OffloadUnavailable) as exc_info:
+        remote_dispatch.access_for(host)
+    assert exc_info.value.code == remote_dispatch.EXIT_NO_NODE

 def test_candidate_hosts_excludes_unreachable():
@@ -97,8 +117,9 @@ def test_candidate_hosts_excludes_unreachable():

 def test_candidate_hosts_raises_when_none_reachable():
     payload = {"hosts": [dict(REGISTRY["hosts"][2])]}
-    with pytest.raises(remote_dispatch.OffloadUnavailable):
+    with pytest.raises(remote_dispatch.OffloadUnavailable) as exc_info:
         remote_dispatch.candidate_hosts(payload)
+    assert exc_info.value.code == remote_dispatch.EXIT_NO_NODE

 def test_select_host_picks_least_loaded():
@@ -251,7 +272,7 @@ def test_open_session_fails_closed_when_the_push_fails(tmp_path, monkeypatch):
         return subprocess.CompletedProcess(argv, rc, stdout="", stderr="disk full")

     monkeypatch.setattr(remote_dispatch, "repo_root", lambda cwd=None: tmp_path / "repo")
-    with pytest.raises(remote_dispatch.OffloadUnavailable, match="mirror push failed"):
+    with pytest.raises(remote_dispatch.OffloadUnavailable, match="mirror push failed") as exc_info:
         remote_dispatch.open_session(
             "codex",
             ["exec", "hi"],
@@ -259,6 +280,7 @@ def test_open_session_fails_closed_when_the_push_fails(tmp_path, monkeypatch):
             run=fake_run,
             probe=lambda a: 1.0,
         )
+    assert exc_info.value.code == remote_dispatch.EXIT_MIRROR

 def test_pull_back_reports_failure_instead_of_raising(tmp_path):
@@ -279,8 +301,9 @@ def test_pull_back_reports_failure_instead_of_raising(tmp_path):

 def test_load_registry_missing_file_is_offload_unavailable(tmp_path):
-    with pytest.raises(remote_dispatch.OffloadUnavailable):
+    with pytest.raises(remote_dispatch.OffloadUnavailable) as exc_info:
         remote_dispatch.load_registry(tmp_path / "nope.json")
+    assert exc_info.value.code == remote_dispatch.EXIT_NO_NODE

 def test_git_mirror_is_none_for_a_plain_checkout(tmp_path):


rg -n "_run_captured\(" modules/systray/tests/test_command_router.py


Output:
Chunk ID: 21c2a7
Wall time: 0.0000 seconds
Process exited with code 0
Original token count: 33
Output:
851:    exit_code = router._run_captured(["exec", "hi"], {}, tmp_path / "run.log")
904:        exit_code = router._run_captured(


Input:
*** Begin Patch
*** Update File: modules/systray/tests/test_command_router.py
@@
     monkeypatch.setattr(
         command_router.CodexAdapter,
         "capture_log_path",
         lambda self, forwarded_argv: None,
     )
+    monkeypatch.setattr(
+        command_router.remote_dispatch,
+        "open_session",
+        lambda *args, **kwargs: pytest.fail("open_session should not run when capture_log_path is None"),
+    )
     exec_called = False
*** End Patch


Success. Updated the following files:
M modules/systray/tests/test_command_router.py

@@ -959,2 +959,7 @@
     )
+    monkeypatch.setattr(
+        command_router.remote_dispatch,
+        "open_session",
+        lambda *args, **kwargs: pytest.fail("open_session should not run when capture_log_path is None"),
+    )
     exec_called = False


Output:
Exit code: 0
Wall time: 0 seconds
Output:
Success. Updated the following files:
M modules/systray/tests/test_command_router.py


rg -n "raise OffloadUnavailable\(" modules/systray/remote_dispatch.py


Output:
Chunk ID: 90230b
Wall time: 0.0000 seconds
Process exited with code 0
Original token count: 80
Output:
89:        raise OffloadUnavailable(
102:        raise OffloadUnavailable(
111:        raise OffloadUnavailable(
290:        raise OffloadUnavailable(
586:            raise OffloadUnavailable(
590:            raise OffloadUnavailable(
603:            raise OffloadUnavailable(
607:            raise OffloadUnavailable(


sed -n '280,300p' modules/systray/remote_dispatch.py


Output:
Chunk ID: f57ba7
Wall time: 0.0000 seconds
Process exited with code 0
Original token count: 187
Output:
            access = access_for(host)
        except OffloadUnavailable as exc:
            failures.append(str(exc))
            continue
        load = probe(access)
        if load is None:
            failures.append(f"{host.get('name')}: unreachable or load probe failed")
            continue
        probed.append((host, access, load))
    if not probed:
        raise OffloadUnavailable(
            "; ".join(failures) or "no candidate node answered", code=EXIT_NO_NODE
        )

    held: PlacementClaim | None = None
    held_index: int | None = None
    best_index = 0
    for _ in range(2 * len(probed) + 2):
        counts = live_claim_counts(directory)
        if held is not None:
            token = _claim_token(held.host_name)


rg -n "os\.execvpe" modules/systray/command_router.py


Output:
Chunk ID: 02d905
Wall time: 0.0000 seconds
Process exited with code 0
Original token count: 25
Output:
765:            os.execvpe(self.adapter.exec_name, [self.adapter.exec_name, *forwarded_argv], env)


sed -n '990,1045p' modules/systray/tests/test_command_router.py


Output:
Chunk ID: 001946
Wall time: 0.0000 seconds
Process exited with code 0
Original token count: 478
Output:
        detect_project_name=command_router.detect_project_name,
    )

    exit_code = router.main(["cdx", "--account", "nope", "chat"])
    captured = capsys.readouterr()

    assert exit_code == 1
    assert captured.err.strip() == "cdx: unknown account 'nope'"

def test_codex_router_reports_clean_error_for_missing_rules_file(
    home: Path,
    monkeypatch: pytest.MonkeyPatch,
    capsys: pytest.CaptureFixture[str],
) -> None:
    (home / ".local/state/overdeck/systray/runtime").mkdir(parents=True)
    monkeypatch.setattr(command_router, "detect_project_name", lambda cwd=None: "zync.is")
    router = command_router.CommandRouter(
        command_router.CodexAdapter(),
        detect_project_name=command_router.detect_project_name,
    )

    exit_code = router.main(["cdx", "chat"])
    captured = capsys.readouterr()

    assert exit_code == 1
    assert captured.err.strip().startswith("cdx: failed to load routing rules:")

def test_codex_router_reports_clean_error_for_malformed_rules_json(
    home: Path,
    monkeypatch: pytest.MonkeyPatch,
    capsys: pytest.CaptureFixture[str],
) -> None:
    tray_dir = home / ".local/state/overdeck/systray/runtime"
    tray_dir.mkdir(parents=True)
    (tray_dir / "routing_rules.json").write_text("not-json", encoding="utf-8")
    monkeypatch.setattr(command_router, "detect_project_name", lambda cwd=None: "zync.is")
    router = command_router.CommandRouter(
        command_router.CodexAdapter(),
        detect_project_name=command_router.detect_project_name,
    )

    exit_code = router.main(["cdx", "chat"])
    captured = capsys.readouterr()

    assert exit_code == 1
    assert captured.err.strip().startswith("cdx: failed to load routing rules:")

def test_codex_router_reports_clean_error_for_invalid_rules_shape(
    home: Path,
    monkeypatch: pytest.MonkeyPatch,
    capsys: pytest.CaptureFixture[str],
) -> None:
    write_rules(


Input:
*** Begin Patch
*** Update File: modules/systray/remote_dispatch.py
@@
-EXIT_NO_NODE = 80
-EXIT_CREDENTIAL = 81
-EXIT_MIRROR = 82
-EXIT_LAUNCH = 83
-EXIT_UNCONTAINABLE = 84
+EXIT_NO_NODE = 80      # registry unreadable / no reachable agent-seat host / no access door
+EXIT_CREDENTIAL = 81   # resolved credential file missing or unreadable
+EXIT_MIRROR = 82      # mkdir / rsync / git-mirror preparation failed
+EXIT_LAUNCH = 83      # launcher or container failed to start
+EXIT_UNCONTAINABLE = 84  # this invocation has no containerized path
*** End Patch


Success. Updated the following files:
M modules/systray/remote_dispatch.py

@@ -53,7 +53,7 @@
 CLAIM_LOAD_PENALTY = 1.0
-EXIT_NO_NODE = 80
-EXIT_CREDENTIAL = 81
-EXIT_MIRROR = 82
-EXIT_LAUNCH = 83
-EXIT_UNCONTAINABLE = 84
+EXIT_NO_NODE = 80      # registry unreadable / no reachable agent-seat host / no access door
+EXIT_CREDENTIAL = 81   # resolved credential file missing or unreadable
+EXIT_MIRROR = 82      # mkdir / rsync / git-mirror preparation failed
+EXIT_LAUNCH = 83      # launcher or container failed to start
+EXIT_UNCONTAINABLE = 84  # this invocation has no containerized path


Output:
Exit code: 0
Wall time: 0 seconds
Output:
Success. Updated the following files:
M modules/systray/remote_dispatch.py


rg -n "\"cdx\", \"exec\"" modules/systray/tests/test_command_router.py


Output:
Chunk ID: d0500d
Wall time: 0.0000 seconds
Process exited with code 0
Original token count: 16
Output:
927:        exit_code = router.main(["cdx", "exec", "hello"])


rg -n "cdx" modules/systray/tests/test_command_router.py | head -n 60


Output:
Chunk ID: 45bcc4
Wall time: 0.0000 seconds
Process exited with code 0
Original token count: 637
Output:
79:    exit_code = router.main(["cdx", "chat"])
84:    assert captured.err.strip() == "cdx: no healthy account available: avi=unknown-account"
87:def test_cld_router_prefixes_errors_without_cdx_leak(
126:    assert "cdx:" not in captured.err
174:        router.main(["cdx", "--account", "legacyacct", "chat"])
237:    exit_code = router.main(["cdx", "route", "--canonical", "--profile=dynamic,OFFICE"])
256:    exit_code = router.main(["cdx", "route", "--canonical", "--profile=ghost"])
722:            "cdx",
734:    assert captured.err == "cdx: invalid reasoning effort 'minimal' for model 'gpt-5.6-sol'\n"
791:        ["cdx", "--account", "legacyacct", "exec", "-m", "gpt-5.6-sol", "do the thing"]
799:    assert log_path.parent == home / ".local/state/overdeck/systray/runtime" / "logs" / "cdx"
802:        rf"cdx: codex exec finished — exit=7 in \d+\.\ds\. The run is COMPLETE; do not wait or poll for it\.\n"
803:        rf"cdx: log {re.escape(str(log_path))} \(19 B\)\n",
818:    assert run_call["key"] == "cdx"
831:        rel_dir="cdx-offload/x",
927:        exit_code = router.main(["cdx", "exec", "hello"])
931:    assert "cdx: containment unavailable — no usable access door" in capsys.readouterr().err
934:def test_cdx_main_with_no_containerized_log_path_returns_uncontainable(
973:    exit_code = router.main(["cdx", "chat"])
979:        "cdx: no containerized path for this invocation (adapter captures no log for these arguments)"
993:    exit_code = router.main(["cdx", "--account", "nope", "chat"])
997:    assert captured.err.strip() == "cdx: unknown account 'nope'"
1012:    exit_code = router.main(["cdx", "chat"])
1016:    assert captured.err.strip().startswith("cdx: failed to load routing rules:")
1033:    exit_code = router.main(["cdx", "chat"])
1037:    assert captured.err.strip().startswith("cdx: failed to load routing rules:")
1064:    exit_code = router.main(["cdx", "chat"])
1068:    assert captured.err.strip().startswith("cdx: failed to load routing rules:")
1224:        router.main(["cdx", "chat"])
1515:    assert log_path.parent == fallback_root / "cdx-logs"
1593:    exit_code = router.main(["cdx", "chat"])
1708:    exit_code = router.main(["cdx", "chat"])
1770:    exit_code = router.main(["cdx", "--account", "zync2", "chat"])
1888:    exit_code = router.main(["cdx", "--account", "zync2,roy", "chat"])
1949:    exit_code = router.main(["cdx", "--account", "rafa", "chat"])
2013:        router.main(["cdx", "--account", "rafa", "chat"])
2068:        router.main(["cdx", "--account", "rafa", "chat"])


rg -n "should_offload\(" modules/systray


Output:
Chunk ID: ad0cf3
Wall time: 0.0000 seconds
Process exited with code 0
Original token count: 140
Output:
modules/systray/remote_dispatch.py:81:def should_offload() -> bool:
modules/systray/command_router.py:784:        if remote_dispatch.should_offload():
modules/systray/tests/test_remote_dispatch.py:82:    assert remote_dispatch.should_offload() is True
modules/systray/tests/test_remote_dispatch.py:87:    assert remote_dispatch.should_offload() is False
modules/systray/tests/test_remote_dispatch.py:97:    assert remote_dispatch.should_offload() is True
modules/systray/tests/test_remote_dispatch.py:100:    assert remote_dispatch.should_offload() is False


git -C /home/user/cdx-offload/sbdisp-c7c9d94b5596 diff --name-only


Output:
Chunk ID: b5614d
Wall time: 0.2565 seconds
Process exited with code 0
Original token count: 109726
Output:
Warning: truncated output (original token count: 109726)
Total output lines: 3354

modules/harness/tui/target/.rustc_info.json
modules/harness/tui/target/CACHEDIR.TAG
modules/harness/tui/target/debug/.cargo-lock
modules/harness/tui/target/debug/.fingerprint/allocator-api2-48625379a5c54837/dep-lib-allocator_api2
modules/harness/tui/target/debug/.fingerprint/allocator-api2-48625379a5c54837/invoked.timestamp
modules/harness/tui/target/debug/.fingerprint/allocator-api2-48625379a5c54837/lib-allocator_api2
modules/harness/tui/target/debug/.fingerprint/allocator-api2-48625379a5c54837/lib-allocator_api2.json
modules/harness/tui/target/debug/.fingerprint/arrayvec-0ebb7364c5278e05/dep-lib-arrayvec
modules/harness/tui/target/debug/.fingerprint/arrayvec-0ebb7364c5278e05/invoked.timestamp
modules/harness/tui/target/debug/.fingerprint/arrayvec-0ebb7364c5278e05/lib-arrayvec
modules/harness/tui/target/debug/.fingerprint/arrayvec-0ebb7364c5278e05/lib-arrayvec.json
modules/harness/tui/target/debug/.fingerprint/autocfg-374b6208e55aaac6/dep-lib-autocfg
modules/harness/tui/target/debug/.fingerprint/autocfg-374b6208e55aaac6/invoked.timestamp
modules/harness/tui/target/debug/.fingerprint/autocfg-374b6208e55aaac6/lib-autocfg
modules/harness/tui/target/debug/.fingerprint/autocfg-374b6208e55aaac6/lib-autocfg.json
modules/harness/tui/target/debug/.fingerprint/bitflags-368f4563083ffd53/dep-lib-bitflags
modules/harness/tui/target/debug/.fingerprint/bitflags-368f4563083ffd53/invoked.timestamp
modules/harness/tui/target/debug/.fingerprint/bitflags-368f4563083ffd53/lib-bitflags
modules/harness/tui/target/debug/.fingerprint/bitflags-368f4563083ffd53/lib-bitflags.json
modules/harness/tui/target/debug/.fingerprint/cassowary-d691d2f071dfa984/dep-lib-cassowary
modules/harness/tui/target/debug/.fingerprint/cassowary-d691d2f071dfa984/invoked.timestamp
modules/harness/tui/target/debug/.fingerprint/cassowary-d691d2f071dfa984/lib-cassowary
modules/harness/tui/target/debug/.fingerprint/cassowary-d691d2f071dfa984/lib-cassowary.json
modules/harness/tui/target/debug/.fingerprint/castaway-3f04e8c6cd784b6c/dep-lib-castaway
modules/harness/tui/target/debug/.fingerprint/castaway-3f04e8c6cd784b6c/invoked.timestamp
modules/harness/tui/target/debug/.fingerprint/castaway-3f04e8c6cd784b6c/lib-castaway
modules/harness/tui/target/debug/.fingerprint/castaway-3f04e8c6cd784b6c/lib-castaway.json
modules/harness/tui/target/debug/.fingerprint/cfg-if-595cd1fd9b5b1165/dep-lib-cfg_if
modules/harness/tui/target/debug/.fingerprint/cfg-if-595cd1fd9b5b1165/invoked.timestamp
modules/harness/tui/target/debug/.fingerprint/cfg-if-595cd1fd9b5b1165/lib-cfg_if
modules/harness/tui/target/debug/.fingerprint/cfg-if-595cd1fd9b5b1165/lib-cfg_if.json
modules/harness/tui/target/debug/.fingerprint/chrono-ac82a377c75a1fca/dep-lib-chrono
modules/harness/tui/target/debug/.fingerprint/chrono-ac82a377c75a1fca/invoked.timestamp
modules/harness/tui/target/debug/.fingerprint/chrono-ac82a377c75a1fca/lib-chrono
modules/harness/tui/target/debug/.fingerprint/chrono-ac82a377c75a1fca/lib-chrono.json
modules/harness/tui/target/debug/.fingerprint/compact_str-99a35b23a47c26fc/dep-lib-compact_str
modules/harness/tui/target/debug/.fingerprint/compact_str-99a35b23a47c26fc/invoked.timestamp
modules/harness/tui/target/debug/.fingerprint/compact_str-99a35b23a47c26fc/lib-compact_str
modules/harness/tui/target/debug/.fingerprint/compact_str-99a35b23a47c26fc/lib-compact_str.json
modules/harness/tui/target/debug/.fingerprint/crossterm-24db5417cbd7a3ef/dep-lib-crossterm
modules/harness/tui/target/debug/.fingerprint/crossterm-24db5417cbd7a3ef/invoked.timestamp
modules/harness/tui/target/debug/.fingerprint/crossterm-24db5417cbd7a3ef/lib-crossterm
modules/harness/tui/target/debug/.fingerprint/crossterm-24db5417cbd7a3ef/lib-crossterm.json
modules/harness/tui/target/debug/.fingerprint/darling-96675e64e771acdb/dep-lib-darling
modules/harness/tui/target/debug/.fingerprint/darling-96675e64e771acdb/invoked.timestamp
modules/harness/tui/target/debug/.fingerprint/darling-96675e64e771acdb/lib-darling
modules/harness/tui/target/debug/.fingerprint/darling-96675e64e771acdb/lib-darling.json
modules/harness/tui/target/debug/.fingerprint/darling_core-a28e65110a428663/dep-lib-darling_core
modules/harness/tui/target/debug/.fingerprint/darling_core-a28e65110a428663/invoked.timestamp
modules/harness/tui/target/debug/.fingerprint/darling_core-a28e65110a428663/lib-darling_core
modules/harness/tui/target/debug/.fingerprint/darling_core-a28e65110a428663/lib-darling_core.json
modules/harness/tui/target/debug/.fingerprint/darling_macro-ccad6dffe52f8a1e/dep-lib-darling_macro
modules/harness/tui/target/debug/.fingerprint/darling_macro-ccad6dffe52f8a1e/invoked.timestamp
modules/harness/tui/target/debug/.fingerprint/darling_macro-ccad6dffe52f8a1e/lib-darling_macro
modules/harness/tui/target/debug/.fingerprint/darling_macro-ccad6dffe52f8a1e/lib-darling_macro.json
modules/harness/tui/target/debug/.fingerprint/either-048b67f6d94aafbd/dep-lib-either
modules/harness/tui/target/debug/.fingerprint/either-048b67f6d94aafbd/invoked.timestamp
modules/harness/tui/target/debug/.fingerprint/either-048b67f6d94aafbd/lib-either
modules/harness/tui/target/debug/.fingerprint/either-048b67f6d94aafbd/lib-either.json
modules/harness/tui/target/debug/.fingerprint/equivalent-09a05a12e658fb17/dep-lib-equivalent
modules/harness/tui/target/debug/.fingerprint/equivalent-09a05a12e658fb17/invoked.timestamp
modules/harness/tui/target/debug/.fingerprint/equivalent-09a05a12e658fb17/lib-equivalent
modules/harness/tui/target/debug/.fingerprint/equivalent-09a05a12e658fb17/lib-equivalent.json
modules/harness/tui/target/debug/.fingerprint/errno-0750b0a019a98092/dep-lib-errno
modules/harness/tui/target/debug/.fingerprint/errno-0750b0a019a98092/invoked.timestamp
modules/harness/tui/target/debug/.fingerprint/errno-0750b0a019a98092/lib-errno
modules/harness/tui/target/debug/.fingerprint/errno-0750b0a019a98092/lib-errno.json
modules/harness/tui/target/debug/.fingerprint/foldhash-ab54529f8ce84253/dep-lib-foldhash
modules/harness/tui/target/debug/.fingerprint/foldhash-ab54529f8ce84253/invoked.timestamp
modules/harness/tui/target/debug/.fingerprint/foldhash-ab54529f8ce84253/lib-foldhash
modules/harness/tui/target/debug/.fingerprint/foldhash-ab54529f8ce84253/lib-foldhash.json
modules/harness/tui/target/debug/.fingerprint/hashbrown-1874ce83de5319f3/dep-lib-hashbrown
modules/harness/tui/target/debug/.fingerprint/hashbrown-1874ce83de5319f3/invoked.timestamp
modules/harness/tui/target/debug/.fingerprint/hashbrown-1874ce83de5319f3/lib-hashbrown
modules/harness/tui/target/debug/.fingerprint/hashbrown-1874ce83de5319f3/lib-hashbrown.json
modules/harness/tui/target/debug/.fingerprint/heck-d4f1b1e170528588/dep-lib-heck
modules/harness/tui/target/debug/.fingerprint/heck-d4f1b1e170528588/invoked.timestamp
modules/harness/tui/target/debug/.fingerprint/heck-d4f1b1e170528588/lib-heck
modules/harness/tui/target/debug/.fingerprint/heck-d4f1b1e170528588/lib-heck.json
modules/harness/tui/target/debug/.fingerprint/ident_case-2725d4035940bbd8/dep-lib-ident_case
modules/harness/tui/target/debug/.fingerprint/ident_case-2725d4035940bbd8/invoked.timestamp
modules/harness/tui/target/debug/.fingerprint/ident_case-2725d4035940bbd8/lib-ident_case
modules/harness/tui/target/debug/.fingerprint/ident_case-2725d4035940bbd8/lib-ident_case.json
modules/harness/tui/target/debug/.fingerprint/indoc-c7a3202461894569/dep-lib-indoc
modules/harness/tui/target/debug/.fingerprint/indoc-c7a3202461894569/invoked.timestamp
modules/harness/tui/target/debug/.fingerprint/indoc-c7a3202461894569/lib-indoc
modules/harness/tui/target/debug/.fingerprint/indoc-c7a3202461894569/lib-indoc.json
modules/harness/tui/target/debug/.fingerprint/instability-01d6a0f12463fe19/run-build-script-build-script-build
modules/harness/tui/target/debug/.fingerprint/instability-01d6a0f12463fe19/run-build-script-build-script-build.json
modules/harness/tui/target/debug/.fingerprint/instability-03faae84ab0078b4/build-script-build-script-build
modules/harness/tui/target/debug/.fingerprint/instability-03faae84ab0078b4/build-script-build-script-build.json
modules/harness/tui/target/debug/.fingerprint/instability-03faae84ab0078b4/dep-build-script-build-script-build
modules/harness/tui/target/debug/.fingerprint/instability-03faae84ab0078b4/invoked.timestamp
modules/harness/tui/target/debug/.fingerprint/instability-c082f49a521a576e/dep-lib-instability
modules/harness/tui/target/debug/.fingerprint/instability-c082f49a521a576e/invoked.timestamp
modules/harness/tui/target/debug/.fingerprint/instability-c082f49a521a576e/lib-instability
modules/harness/tui/target/debug/.fingerprint/instability-c082f49a521a576e/lib-instability.json
modules/harness/tui/target/debug/.fingerprint/itertools-f3ac5f3ceb6fdc72/dep-lib-itertools
modules/harness/tui/target/debug/.fingerprint/itertools-f3ac5f3ceb6fdc72/invoked.timestamp
modules/harness/tui/target/debug/.fingerprint/itertools-f3ac5f3ceb6fdc72/lib-itertools
modules/harness/tui/target/debug/.fingerprint/itertools-f3ac5f3ceb6fdc72/lib-itertools.json
modules/harness/tui/target/debug/.fingerprint/itoa-d62e748016f8bd79/dep-lib-itoa
modules/harness/tui/target/debug/.fingerprint/itoa-d62e748016f8bd79/invoked.timestamp
modules/harness/tui/target/debug/.fingerprint/itoa-d62e748016f8bd79/lib-itoa
modules/harness/tui/target/debug/.fingerprint/itoa-d62e748016f8bd79/lib-itoa.json
modules/harness/tui/target/debug/.fingerprint/libc-337fe196a7e39b09/dep-lib-libc
modules/harness/tui/target/debug/.fingerprint/libc-337fe196a7e39b09/invoked.timestamp
modules/harness/tui/target/debug/.fingerprint/libc-337fe196a7e39b09/lib-libc
modules/harness/tui/target/debug/.fingerprint/libc-337fe196a7e39b09/lib-libc.json
modules/harness/tui/target/debug/.fingerprint/libc-941bd027ae1e3c1e/run-build-script-build-script-build
modules/harness/tui/target/debug/.fingerprint/libc-941bd027ae1e3c1e/run-build-script-build-script-build.json
modules/harness/tui/target/debug/.fingerprint/libc-f12d3c7f7c553909/build-script-build-script-build
modules/harness/tui/target/debug/.fingerprint/libc-f12d3c7f7c553909/build-script-build-script-build.json
modules/harness/tui/target/debug/.fingerprint/libc-f12d3c7f7c553909/dep-build-script-build-script-build
modules/harness/tui/target/debug/.fingerprint/libc-f12d3c7f7c553909/invoked.timestamp
modules/harness/tui/target/debug/.fingerprint/linux-raw-sys-dce849a3285409fb/dep-lib-linux_raw_sys
modules/harness/tui/target/debug/.fingerprint/linux-raw-sys-dce849a3285409fb/invoked.timestamp
modules/harness/tui/target/debug/.fingerprint/linux-raw-sys-dce849a3285409fb/lib-linux_raw_sys
modules/harness/tui/target/debug/.fingerprint/linux-raw-sys-dce849a3285409fb/lib-linux_raw_sys.json
modules/harness/tui/target/debug/.fingerprint/lock_api-371ca4ea31f9ee70/dep-lib-lock_api
modules/harness/tui/target/debug/.fingerprint/lock_api-371ca4ea31f9ee70/invoked.timestamp
modules/harness/tui/target/debug/.fingerprint/lock_api-371ca4ea31f9ee70/lib-lock_api
modules/harness/tui/target/debug/.fingerprint/lock_api-371ca4ea31f9ee70/lib-lock_api.json
modules/harness/tui/target/debug/.fingerprint/log-0da43015cf843871/dep-lib-log
modules/harness/tui/target/debug/.fingerprint/log-0da43015cf843871/invoked.timestamp
modules/harness/tui/target/debug/.fingerprint/log-0da43015cf843871/lib-log
modules/harness/tui/target/debug/.fingerprint/log-0da43015cf843871/lib-log.json
modules/harness/tui/target/debug/.fingerprint/lru-dd2248e764449247/dep-lib-lru
modules/harness/tui/target/debug/.fingerprint/lru-dd2248e764449247/invoked.timestamp
modules/harness/tui/target/debug/.fingerprint/lru-dd2248e764449247/lib-lru
modules/harness/tui/target/debug/.fingerprint/lru-dd2248e764449247/lib-lru.json
modules/harness/tui/target/debug/.fingerprint/memchr-e21c03e8af1255d0/dep-lib-memchr
modules/harness/tui/target/debug/.fingerprint/memchr-e21c03e8af1255d0/invoked.timestamp
modules/harness/tui/target/debug/.fingerprint/memchr-e21c03e8af1255d0/lib-memchr
modules/harness/tui/target/debug/.fingerprint/memchr-e21c03e8af1255d0/lib-memchr.json
modules/harness/tui/target/debug/.fingerprint/mio-3e2fbea7bc03d2ee/dep-lib-mio
modules/harness/tui/target/debug/.fingerprint/mio-3e2fbea7bc03d2ee/invoked.timestamp
modules/harness/tui/target/debug/.fingerprint/mio-3e2fbea7bc03d2ee/lib-mio
modules/harness/tui/target/debug/.fingerprint/mio-3e2fbea7bc03d2ee/lib-mio.json
modules/harness/tui/target/debug/.fingerprint/num-traits-021b026d3beb07e5/run-build-script-build-script-build
modules/harness/tui/target/debug/.fingerprint/num-traits-021b026d3beb07e5/run-build-script-build-script-build.json
modules/harness/tui/target/debug/.fingerprint/num-traits-aebbe610571a0636/build-script-build-script-build
modules/harness/tui/target/debug/.fingerprint/num-traits-aebbe610571a0636/build-script-build-script-build.json
modules/harness/tui/target/debug/.fingerprint/num-traits-aebbe610571a0636/dep-build-script-build-script-build
modules/harness/tui/target/debug/.fingerprint/num-traits-aebbe610571a0636/invoked.timestamp
modules/harness/tui/target/debug/.fingerprint/num-traits-cacd8b1bc20088dd/dep-lib-num_traits
modules/harness/tui/target/debug/.fingerprint/num-traits-cacd8b1bc20088dd/invoked.timestamp
modules/harness/tui/target/debug/.fingerprint/num-traits-cacd8b1bc20088dd/lib-num_traits
modules/harness/tui/target/debug/.fingerprint/num-traits-cacd8b1bc20088dd/lib-num_traits.json
modules/harness/tui/target/debug/.fingerprint/parking_lot-cde658bd8ca377b1/dep-lib-parking_lot
modules/harness/tui/target/debug/.fingerprint/parking_lot-cde658bd8ca377b1/invoked.timestamp
modules/harness/tui/target/debug/.fingerprint/parking_lot-cde658bd8ca377b1/lib-parking_lot
modules/harness/tui/target/debug/.fingerprint/parking_lot-cde658bd8ca377b1/lib-parking_lot.json
modules/harness/tui/target/debug/.fingerprint/parking_lot_core-2ff7d6ae4bb18231/run-build-script-build-script-build
modules/harness/tui/target/debug/.fingerprint/parking_lot_core-2ff7d6ae4bb18231/run-build-script-build-script-build.json
modules/harness/tui/target/debug/.fingerprint/parking_lot_core-71463008c60fe1b9/build-script-build-script-build
modules/harness/tui/target/debug/.fingerprint/parking_lot_core-71463008c60fe1b9/build-script-build-script-build.json
modules/harness/tui/target/debug/.fingerprint/parking_lot_core-71463008c60fe1b9/dep-build-script-build-script-build
modules/harness/tui/target/debug/.fingerprint/parking_lot_core-71463008c60fe1b9/invoked.timestamp
modules/harness/tui/target/debug/.fingerprint/parking_lot_core-fe3c8f54f6e9b4e2/dep-lib-parking_lot_core
modules/harness/tui/target/debug/.fingerprint/parking_lot_core-fe3c8f54f6e9b4e2/invoked.timestamp
modules/harness/tui/target/debug/.fingerprint/parking_lot_core-fe3c8f54f6e9b4e2/lib-parking_lot_core
modules/harness/tui/target/debug/.fingerprint/parking_lot_core-fe3c8f54f6e9b4e2/lib-parking_lot_core.json
modules/harness/tui/target/debug/.fingerprint/paste-1f46112c5ce27040/dep-lib-paste
modules/harness/tui/target/debug/.fingerprint/paste-1f46112c5ce27040/invoked.timestamp
modules/harness/tui/target/debug/.fingerprint/paste-1f46112c5ce27040/lib-paste
modules/harness/tui/target/debug/.fingerprint/paste-1f46112c5ce27040/lib-paste.json
modules/harness/tui/target/debug/.fingerprint/paste-3dcca4d54cf01214/build-script-build-script-build
modules/harness/tui/target/debug/.fingerprint/paste-3dcca4d54cf01214/build-script-build-script-build.json
modules/harness/tui/target/debug/.fingerprint/paste-3dcca4d54cf01214/dep-build-script-build-script-build
modules/harness/tui/target/debug/.fingerprint/paste-3dcca4d54cf01214/invoked.timestamp
modules/harness/tui/target/debug/.fingerprint/paste-dd6f62ce6bc658e7/run-build-script-build-script-build
modules/harness/tui/target/debug/.fingerprint/paste-dd6f62ce6bc658e7/run-build-script-build-script-build.json
modules/harness/tui/target/debug/.fingerprint/proc-macro2-2d78e42288489a3b/dep-lib-proc_macro2
modules/harness/tui/target/debug/.fingerprint/proc-macro2-2d78e42288489a3b/invoked.timestamp
modules/harness/tui/target/debug/.fingerprint/proc-macro2-2d78e42288489a3b/lib-proc_macro2
modules/harness/tui/target/debug/.fingerprint/proc-macro2-2d78e42288489a3b/lib-proc_macro2.json
modules/harness/tui/target/debug/.fingerprint/proc-macro2-4a599ed645bc3058/run-build-script-build-script-build
modules/harness/tui/target/debug/.fingerprint/proc-macro2-4a599ed645bc3058/run-build-script-build-script-build.json
modules/harness/tui/target/debug/.fingerprint/proc-macro2-86585082b6f41d92/build-script-build-script-build
modules/harness/tui/target/debug/.fingerprint/proc-macro2-86585082b6f41d92/build-script-build-script-build.json
modules/harness/tui/target/debug/.fingerprint/proc-macro2-86585082b6f41d92/dep-build-script-build-script-build
modules/harness/tui/target/debug/.fingerprint/proc-macro2-86585082b6f41d92/invoked.timestamp
modules/harness/tui/target/debug/.fingerprint/quote-8b5b0d1ff71c46f7/run-build-script-build-script-build
modules/harness/tui/target/debug/.fingerprint/quote-8b5b0d1ff71c46f7/run-build-script-build-script-build.json
modules/harness/tui/target/debug/.fingerprint/quote-8def93e76e55a30d/dep-lib-quote
modules/harness/tui/target/debug/.fingerprint/quote-8def93e76e55a30d/invoked.timestamp
modules/harness/tui/target/debug/.fingerprint/quote-8def93e76e55a30d/lib-quote
modules/harness/tui/target/debug/.fingerprint/quote-8def93e76e55a30d/lib-quote.json
modules/harness/tui/target/debug/.fingerprint/quote-d2e9be1c52f73001/build-script-build-script-build
modules/harness/tui/target/debug/.fingerprint/quote-d2e9be1c52f73001/build-script-build-script-build.json
modules/harness/tui/target/debug/.fingerprint/quote-d2e9be1c52f73001/dep-build-script-build-script-build
modules/harness/tui/target/debug/.fingerprint/quote-d2e9be1c52f73001/invoked.timestamp
modules/harness/tui/target/debug/.fingerprint/ratatui-466f3700e94b8771/dep-lib-ratatui
modules/harness/tui/target/debug/.fingerprint/ratatui-466f3700e94b8771/invoked.timestamp
modules/harness/tui/target/debug/.fingerprint/ratatui-466f3700e94b8771/lib-ratatui
modules/harness/tui/target/debug/.fingerprint/ratatui-466f3700e94b8771/lib-ratatui.json
modules/harness/tui/target/debug/.fingerprint/runplan-tui-08bbaf85901f5638/dep-test-integration-test-dag_module
modules/harness/tui/target/debug/.fingerprint/runplan-tui-08bbaf85901f5638/invoked.timestamp
modules/harness/tui/target/debug/.fingerprint/runplan-tui-08bbaf85901f5638/test-integration-test-dag_module
modules/harness/tui/target/debug/.fingerprint/runplan-tui-08bbaf85901f5638/test-integration-test-dag_module.json
modules/harness/tui/target/debug/.fingerprint/runplan-tui-18944e9645f1169e/dep-test-integration-test-state
modules/harness/tui/target/debug/.fingerprint/runplan-tui-18944e9645f1169e/invoked.timestamp
modules/harness/tui/target/debug/.fingerprint/runplan-tui-18944e9645f1169e/test-integration-test-state
modules/harness/tui/target/debug/.fingerprint/runplan-tui-18944e9645f1169e/test-integration-test-state.json
modules/harness/tui/target/debug/.fingerprint/runplan-tui-1c27677e7f396b0a/dep-test-integration-test-acceptance
modules/harness/tui/target/debug/.fingerprint/runplan-tui-1c27677e7f396b0a/invoked.timestamp
modules/harness/tui/target/debug/.fingerprint/runplan-tui-1c27677e7f396b0a/test-integration-test-acceptance
modules/harness/tui/target/debug/.fingerprint/runplan-tui-1c27677e7f396b0a/test-integration-test-acceptance.json
modules/harness/tui/target/debug/.fingerprint/runplan-tui-252fa2ef721e2ce5/dep-test-integration-test-plans
modules/harness/tui/target/debug/.fingerprint/runplan-tui-252fa2ef721e2ce5/invoked.timestamp
modules/harness/tui/target/debug/.fingerprint/runplan-tui-252fa2ef721e2ce5/test-integration-test-plans
modules/harness/tui/target/debug/.fingerprint/runplan-tui-252fa2ef721e2ce5/test-integration-test-plans.json
modules/harness/tui/target/debug/.fingerprint/runplan-tui-3499416966d5ed44/dep-test-integration-test-interaction
modules/harness/tui/target/debug/.fingerprint/runplan-tui-3499416966d5ed44/invoked.timestamp
modules/harness/tui/target/debug/.fingerprint/runplan-tui-3499416966d5ed44/test…99726 tokens truncated…arness/tui/target/debug/incremental/state-1e7bfpz8cvi4u/s-hkudwm04rg-0rlxjhi-2ggrfnynlpjhddj3i7f092vo2/cje8nr2fv017grs31fqx4bf5w.o
modules/harness/tui/target/debug/incremental/state-1e7bfpz8cvi4u/s-hkudwm04rg-0rlxjhi-2ggrfnynlpjhddj3i7f092vo2/cjl1t32ljrkrnt0wjui9l495i.o
modules/harness/tui/target/debug/incremental/state-1e7bfpz8cvi4u/s-hkudwm04rg-0rlxjhi-2ggrfnynlpjhddj3i7f092vo2/clzfdiladapc121wnt68adu4j.o
modules/harness/tui/target/debug/incremental/state-1e7bfpz8cvi4u/s-hkudwm04rg-0rlxjhi-2ggrfnynlpjhddj3i7f092vo2/cunkhy449yotngzikt2c4sx6i.o
modules/harness/tui/target/debug/incremental/state-1e7bfpz8cvi4u/s-hkudwm04rg-0rlxjhi-2ggrfnynlpjhddj3i7f092vo2/d1smnczkmvh5gam7kauar63cx.o
modules/harness/tui/target/debug/incremental/state-1e7bfpz8cvi4u/s-hkudwm04rg-0rlxjhi-2ggrfnynlpjhddj3i7f092vo2/def1ds4wh629ntj0qa4sdtj3u.o
modules/harness/tui/target/debug/incremental/state-1e7bfpz8cvi4u/s-hkudwm04rg-0rlxjhi-2ggrfnynlpjhddj3i7f092vo2/dep-graph.bin
modules/harness/tui/target/debug/incremental/state-1e7bfpz8cvi4u/s-hkudwm04rg-0rlxjhi-2ggrfnynlpjhddj3i7f092vo2/dh57fgm6mf0ov3izdj8xz9imr.o
modules/harness/tui/target/debug/incremental/state-1e7bfpz8cvi4u/s-hkudwm04rg-0rlxjhi-2ggrfnynlpjhddj3i7f092vo2/etmk93ww45aem2c64b27w6osq.o
modules/harness/tui/target/debug/incremental/state-1e7bfpz8cvi4u/s-hkudwm04rg-0rlxjhi-2ggrfnynlpjhddj3i7f092vo2/query-cache.bin
modules/harness/tui/target/debug/incremental/state-1e7bfpz8cvi4u/s-hkudwm04rg-0rlxjhi-2ggrfnynlpjhddj3i7f092vo2/work-products.bin
modules/harness/tui/target/debug/incremental/state-1e7bfpz8cvi4u/s-hkudwm04rg-0rlxjhi.lock
modules/harness/tui/target/debug/incremental/state-1e7bfpz8cvi4u/s-hkudxb3ppn-11gd961-1immfmkroi0mreomj0dn3td0d/18xnq4qabxwocxz9w8opnbm12.o
modules/harness/tui/target/debug/incremental/state-1e7bfpz8cvi4u/s-hkudxb3ppn-11gd961-1immfmkroi0mreomj0dn3td0d/2sleou4l3ess9nnudp22z7360.o
modules/harness/tui/target/debug/incremental/state-1e7bfpz8cvi4u/s-hkudxb3ppn-11gd961-1immfmkroi0mreomj0dn3td0d/2yvenwlcheltm7glpp6l7cs2q.o
modules/harness/tui/target/debug/incremental/state-1e7bfpz8cvi4u/s-hkudxb3ppn-11gd961-1immfmkroi0mreomj0dn3td0d/4059kl52x126h8ofm5w6wcen6.o
modules/harness/tui/target/debug/incremental/state-1e7bfpz8cvi4u/s-hkudxb3ppn-11gd961-1immfmkroi0mreomj0dn3td0d/47y8f0fmov0yesoy3221ilp8f.o
modules/harness/tui/target/debug/incremental/state-1e7bfpz8cvi4u/s-hkudxb3ppn-11gd961-1immfmkroi0mreomj0dn3td0d/49dsfi70n2t3mbyh9kn0bj5k3.o
modules/harness/tui/target/debug/incremental/state-1e7bfpz8cvi4u/s-hkudxb3ppn-11gd961-1immfmkroi0mreomj0dn3td0d/5gu67ppnrx45wog3z8no5fzpo.o
modules/harness/tui/target/debug/incremental/state-1e7bfpz8cvi4u/s-hkudxb3ppn-11gd961-1immfmkroi0mreomj0dn3td0d/5olid2ywtd7r00tdxko84n7vx.o
modules/harness/tui/target/debug/incremental/state-1e7bfpz8cvi4u/s-hkudxb3ppn-11gd961-1immfmkroi0mreomj0dn3td0d/76k8fe7e6xs6d4aithk2388mi.o
modules/harness/tui/target/debug/incremental/state-1e7bfpz8cvi4u/s-hkudxb3ppn-11gd961-1immfmkroi0mreomj0dn3td0d/7ha73s4jts688xxq9puvv1d62.o
modules/harness/tui/target/debug/incremental/state-1e7bfpz8cvi4u/s-hkudxb3ppn-11gd961-1immfmkroi0mreomj0dn3td0d/7ojx5eolzwv1t8nl9eup0lv9x.o
modules/harness/tui/target/debug/incremental/state-1e7bfpz8cvi4u/s-hkudxb3ppn-11gd961-1immfmkroi0mreomj0dn3td0d/7qnrvjte7ze6c220rax98syqv.o
modules/harness/tui/target/debug/incremental/state-1e7bfpz8cvi4u/s-hkudxb3ppn-11gd961-1immfmkroi0mreomj0dn3td0d/93bp02x6uslw1pzb2aobhvatn.o
modules/harness/tui/target/debug/incremental/state-1e7bfpz8cvi4u/s-hkudxb3ppn-11gd961-1immfmkroi0mreomj0dn3td0d/9x6goy5ejmjnlizeesj1dcmw9.o
modules/harness/tui/target/debug/incremental/state-1e7bfpz8cvi4u/s-hkudxb3ppn-11gd961-1immfmkroi0mreomj0dn3td0d/a6wjx073ma2v09mfxakx388qk.o
modules/harness/tui/target/debug/incremental/state-1e7bfpz8cvi4u/s-hkudxb3ppn-11gd961-1immfmkroi0mreomj0dn3td0d/ab4zifgl6eaehulljamjkte4f.o
modules/harness/tui/target/debug/incremental/state-1e7bfpz8cvi4u/s-hkudxb3ppn-11gd961-1immfmkroi0mreomj0dn3td0d/ah038eminfpmnuoik3m3ffjxb.o
modules/harness/tui/target/debug/incremental/state-1e7bfpz8cvi4u/s-hkudxb3ppn-11gd961-1immfmkroi0mreomj0dn3td0d/ar0m4p74eenrnyz9g1kr21s2v.o
modules/harness/tui/target/debug/incremental/state-1e7bfpz8cvi4u/s-hkudxb3ppn-11gd961-1immfmkroi0mreomj0dn3td0d/bc3nkd1pn2rbssa9ahdkcbg8h.o
modules/harness/tui/target/debug/incremental/state-1e7bfpz8cvi4u/s-hkudxb3ppn-11gd961-1immfmkroi0mreomj0dn3td0d/bin0yt2ulz6oiyam9766knfdp.o
modules/harness/tui/target/debug/incremental/state-1e7bfpz8cvi4u/s-hkudxb3ppn-11gd961-1immfmkroi0mreomj0dn3td0d/c50ql0ew5cwhpn8y0adcornoq.o
modules/harness/tui/target/debug/incremental/state-1e7bfpz8cvi4u/s-hkudxb3ppn-11gd961-1immfmkroi0mreomj0dn3td0d/c7l1yk8ae8tl78vd4r5lt1vff.o
modules/harness/tui/target/debug/incremental/state-1e7bfpz8cvi4u/s-hkudxb3ppn-11gd961-1immfmkroi0mreomj0dn3td0d/cje8nr2fv017grs31fqx4bf5w.o
modules/harness/tui/target/debug/incremental/state-1e7bfpz8cvi4u/s-hkudxb3ppn-11gd961-1immfmkroi0mreomj0dn3td0d/cjl1t32ljrkrnt0wjui9l495i.o
modules/harness/tui/target/debug/incremental/state-1e7bfpz8cvi4u/s-hkudxb3ppn-11gd961-1immfmkroi0mreomj0dn3td0d/clzfdiladapc121wnt68adu4j.o
modules/harness/tui/target/debug/incremental/state-1e7bfpz8cvi4u/s-hkudxb3ppn-11gd961-1immfmkroi0mreomj0dn3td0d/cunkhy449yotngzikt2c4sx6i.o
modules/harness/tui/target/debug/incremental/state-1e7bfpz8cvi4u/s-hkudxb3ppn-11gd961-1immfmkroi0mreomj0dn3td0d/d1smnczkmvh5gam7kauar63cx.o
modules/harness/tui/target/debug/incremental/state-1e7bfpz8cvi4u/s-hkudxb3ppn-11gd961-1immfmkroi0mreomj0dn3td0d/def1ds4wh629ntj0qa4sdtj3u.o
modules/harness/tui/target/debug/incremental/state-1e7bfpz8cvi4u/s-hkudxb3ppn-11gd961-1immfmkroi0mreomj0dn3td0d/dep-graph.bin
modules/harness/tui/target/debug/incremental/state-1e7bfpz8cvi4u/s-hkudxb3ppn-11gd961-1immfmkroi0mreomj0dn3td0d/dh57fgm6mf0ov3izdj8xz9imr.o
modules/harness/tui/target/debug/incremental/state-1e7bfpz8cvi4u/s-hkudxb3ppn-11gd961-1immfmkroi0mreomj0dn3td0d/etmk93ww45aem2c64b27w6osq.o
modules/harness/tui/target/debug/incremental/state-1e7bfpz8cvi4u/s-hkudxb3ppn-11gd961-1immfmkroi0mreomj0dn3td0d/query-cache.bin
modules/harness/tui/target/debug/incremental/state-1e7bfpz8cvi4u/s-hkudxb3ppn-11gd961-1immfmkroi0mreomj0dn3td0d/work-products.bin
modules/harness/tui/target/debug/incremental/state-1e7bfpz8cvi4u/s-hkudxb3ppn-11gd961.lock
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/01a5b8uhuiwfl404fwy88513v.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/05koqzec71ycbtn839n2dp3oc.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/0dxdj93h0if0k1ow3bukg03uh.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/0en4an34myqvjj4pq4uhy4jot.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/0g2shrtqfwjx1g5dxeovk8xoi.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/0j2h20eneyc1v2whhzfxch7pj.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/0jcgcop17yd0ii3jgrvczdyz4.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/1hw25vkw6vb8o7jgznouf3v20.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/1n88d4dicy3cfrv4bizllsdcu.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/1v6fgo1gj2xa7lj5gc066lbf3.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/2096kqqcnwho7j67t7587h7eb.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/20s0rmaka94nnjn1705eps1d7.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/25s04oxr8o8tf4qskkwfuoo6d.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/27k4xm77ebbxshu8ur4klziay.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/2ecpspu7t8rxkf627u7blefle.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/2q5pzhp0i5tu0g470p9lljg4b.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/2ra915o8aquw52runnc55xn1g.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/2sarvgw2n0uehx9ewnljj2udk.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/365tfv7hulja6jehon0h51c1x.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/3dnbvuelqdzekaz2nb7w2xybp.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/3gsqpr7n3opsh8u97a59rgflm.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/3iwb5828yakucbvqsbzzu1c4v.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/3k8fdytaqsgtdvq6qwsfotgfn.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/3w5zj30slk2mdo3jtev916dlc.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/3wmasrl9gtiskqs8q8q3bb1ey.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/401bccglpcnv27mp24mptlrwm.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/42jk7gebtartwg5jf2bmls02f.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/4avvjmqktg4bfyx9mhzys4p72.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/4dzwr1ndgqec5e3d03mb3o2dv.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/4e8zztn7jcycz0likik9qusua.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/4h5pbaq7501cgz8u603gvyp5u.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/4k336u0nqg99ibmpng2725agq.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/4ox4bw6e2ih9mbj8i6920opj5.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/55e8djupsw7yj5ikiyc2x407t.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/5b6btg7jx6hqqim8gvbzwaj1y.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/5bln36waznpak1h0n8kz4aite.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/5fwh4zlq0elmdz01sl7i7bs6t.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/5if48tj585nq4qo1re9jo5uvf.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/5jlj7gb6jgmzfw8ng02f0l365.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/5uvwan8wbp4b7php160ukjpzm.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/65mm3tgji5wb7193j659us6xl.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/6b0ojv4v83841l1p4k1n1qjhw.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/6f5lp3zvmlywqlknawtth8mpw.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/6idpnxv8ov8dou8k9w38yawwn.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/6kdmg29pg6xw0j4tfsx4gvwyz.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/6way2wx6tihg2m2a2w6kzcj5i.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/70ayrnev1hrlauqz2gqmw6kh9.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/7580hu4fevsl0vvyq29wn5hu8.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/78vpax8ihi3hrzgvxylb64srq.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/7h0dvabdzondqwbce5ovt8et7.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/7sk9zdtijy2gtbqnd67srnswx.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/7vvkku5s7xlm3fjxdinwiayvp.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/7x1a500ixn6ueiym4lvhei5qq.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/87d5lh4qjas69o1m03229228a.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/89de8fk1ei76xhmggqmoc1sms.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/89p7sbs5frgr04x6jx80f5v7q.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/8l3nbuam5mzt8bqujvhphwgl9.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/8lmrekq5x06ea2w5vibo0q2n2.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/8n6dcnwjlsuyttq9u16ishpri.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/8q0b1orf2csk3wc6t2iedu65i.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/98d4am16rp1vn2137b1ya0wmc.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/9ad563n9ooi4gay5qw5dgjivq.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/9b2lij6x2ie9y2xlz155crxqc.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/9hnmnn414atltr6pouc21t9gt.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/9rodh460df0b3pugrarnqffz9.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/9rohiqx4597mi3rde1invrwug.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/9vk8jvcxb33vu34z5fu8qi5sf.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/a738joh7z9h7gti3s1thuvx84.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/aavsh2gqbhoq8usgx2pnxdfqz.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/ah8qr0ja7y3vam1tg5xl5rpns.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/ap0c5rposne24mhgjfzuv10d8.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/ariijrg8zzfohdjaa6ujqxwj6.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/ayrrghoo56xun1my32g3u1rsd.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/bmti6qj7zyl83wliv0so7a7cg.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/bplibs1px8fw2o1kid804tmm0.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/bwilqi1jstusnwjefq98ea189.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/c6d975sm4rqiuhp47mpyvngc3.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/d0nxudci2u43y89i84j97rkj8.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/d9tco0t8owxx1pazl776j67ny.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/dep-graph.bin
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/dgn8sa6n4szouj3lcerkopx2y.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/dicanbkubfjjle959kn3i6mah.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/dl5an5k3w6vo1iqdv7zrnbc1q.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/dlh8nt26dqcima1o8h41hi0lm.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/dpi0qn2nv8fhc0muzst4nd9k2.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/e0143t31a3drbv2mjvj8m4aau.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/e4lg3m5k805goetr7wl09cx4s.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/e8w7yzc03b23erq9de12eg9zf.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/efyg4yd70jgjjab6ezx5nx5vc.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/emcwqdnq725mqg3madam5la26.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/esn28456awkrb3jb1holgqwgs.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/f44qy4rjtdi7hqty9vxhexdz4.o
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/metadata.rmeta
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/query-cache.bin
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i-cip460fyxz2ierwt6gtgwrmi5/work-products.bin
modules/harness/tui/target/debug/incremental/tui_kit-1nmfwm854367q/s-hkudwir939-01w932i.lock
modules/harness/tui/target/debug/runplan-tui
modules/systray/command_router.py
modules/systray/remote_dispatch.py
modules/systray/tests/test_command_router.py
modules/systray/tests/test_remote_dispatch.py