Изучил архив. Мой вывод: старый `Amnezia limits (old bash)/` можно убирать из проекта, но вместе с ним нужно зачистить документацию и закрыть один процессный пробел: rollback больше не должен ссылаться на `amnezia-tc.service`.

По текущему дереву Rust-код уже не зависит от старой bash-папки. `traffic_core` сам делает discovery контейнера/interface/peers, строит egress + IFB ingress `tc` topology, проверяет drift, восстанавливает state, ведёт status. Отдельно есть nftables host firewall, anti-torrent guard, swap reconciler и reboot scheduler. Старая папка сейчас является только историческим reference.

Главные места, которые конфликтуют с твоей новой моделью:

`tools/build.sh` сейчас принимает `debian|ubuntu`. Это надо заменить на строгий `Debian 13 amd64`. Иначе у тебя документация будет говорить “только Debian 13”, а build-helper фактически разрешит Ubuntu.

`tools/README.md` пишет “Debian/Ubuntu с apt”. Нужно заменить на “Debian 13 amd64”.

Корневой `README.md` содержит `Amnezia limits (old bash)` в дереве репозитория и отдельный абзац про historical reference. Это надо удалить. Там же строка про upstream Amnezia с Debian 12/13 и Ubuntu 22.04/24.04 лучше убрать полностью или переписать так, чтобы было ясно: AWG2 Harness поддерживает только Debian 13 amd64, независимо от того, что поддерживает Amnezia upstream.

`docs/OLD_BASH_BEHAVIOR.md` и `docs/MIGRATION.md` логично удалить. Сейчас они попадут в `.deb`, потому что `tools/build.sh` пакует все `docs/*.md`.

`docs/README.md` надо очистить от ссылок на `OLD_BASH_BEHAVIOR.md` и `MIGRATION.md`.

`docs/ACCEPTANCE_CHECKLIST.md` содержит rollback через старые bash-файлы и `amnezia-tc.service` / `amnezia-tc-watcher.service`. Это больше нельзя оставлять. Нужен Rust-native rollback: остановить сервисы, отключить host firewall / anti-torrent, удалить AWG2-owned `tc` topology и при необходимости удалить пакет.

В `docs/IMPLEMENTATION_SPEC.md`, `docs/CONFIGURATION.md`, `docs/ANTI_TORRENT.md` нужно не удалять смысл, а переименовать происхождение. Например “bash parity” заменить на “class-id stability contract”. Лексикографическую сортировку peer IP я бы оставил: код уже сортирует IP как строки, и это полезно как стабильный ABI для class id. Просто больше не надо объяснять это через старый bash.

Минимальный список удаления:

```text
Amnezia limits (old bash)/
docs/OLD_BASH_BEHAVIOR.md
docs/MIGRATION.md
```

Что я бы добавил до удаления старого rollback:

```text
awg2-harness cleanup-limits
```

или хотя бы документированную процедуру:

```bash
systemctl disable --now awg2-harness.service
systemctl disable --now awg2-reboot-scheduler.service

C="$(docker ps --format '{{.Names}}' | grep -E '^(amnezia-awg2|amnezia-awg)$' | head -n1)"
PID="$(docker inspect -f '{{.State.Pid}}' "$C")"

nsenter -t "$PID" -n -- tc qdisc del dev awg0 root 2>/dev/null || true
nsenter -t "$PID" -n -- tc qdisc del dev awg0 ingress 2>/dev/null || true
nsenter -t "$PID" -n -- ip link del ifb0 2>/dev/null || true
```

Для Debian 13-only модели я бы сделал три уровня защиты.

Первый — `tools/build.sh`: запретить всё кроме Debian 13 amd64.

```bash
ensure_supported_host() {
  if [[ ! -f /etc/os-release ]]; then
    echo "Unsupported OS: missing /etc/os-release. Only Debian 13 amd64 is supported."
    exit 1
  fi

  # shellcheck disable=SC1091
  source /etc/os-release

  if [[ "${ID:-}" != "debian" || "${VERSION_ID:-}" != "13" ]]; then
    echo "Unsupported OS: ${PRETTY_NAME:-unknown}. Only Debian 13 amd64 is supported."
    exit 1
  fi

  local arch
  arch="$(dpkg --print-architecture 2>/dev/null || uname -m)"
  if [[ "$arch" != "amd64" && "$arch" != "x86_64" ]]; then
    echo "Unsupported arch: $arch. Only amd64 is supported."
    exit 1
  fi
}
```

Второй — `.deb preinst`, чтобы пакет не ставился на Ubuntu/Debian 12/Debian 14 случайно.

```sh
#!/bin/sh
set -e

if [ ! -r /etc/os-release ]; then
  echo "awg2-harness supports only Debian 13 amd64" >&2
  exit 1
fi

. /etc/os-release

if [ "${ID:-}" != "debian" ] || [ "${VERSION_ID:-}" != "13" ]; then
  echo "awg2-harness supports only Debian 13 amd64; got ${PRETTY_NAME:-unknown}" >&2
  exit 1
fi

if command -v dpkg >/dev/null 2>&1; then
  arch="$(dpkg --print-architecture)"
  if [ "$arch" != "amd64" ]; then
    echo "awg2-harness supports only amd64; got $arch" >&2
    exit 1
  fi
fi

exit 0
```

Третий — `validate-runtime` в Rust: проверять `/etc/os-release` и arch, чтобы ручной запуск бинаря вне `.deb` тоже явно падал.

Ещё один важный несостык: документация использует версию `0.1.6`, а `traffic_core/Cargo.toml` сейчас `0.1.4`. Если релиз реально `0.1.6`, лучше поднять crate version, а не жить на постоянном `--version` override.
Версия реально 0.1.6