fix(skills): исправлена настройка песочницы Codex через AppArmor

- Зачем:
  - Профили на пути установки Codex ломались после переустановки, а прежние проверки могли давать ложный успех.
- Что:
  - Штатный профиль системного bwrap выбран основным способом настройки; исторические обходы ограничены подтверждёнными случаями.
  - Уточнены диагностика, переход со старых профилей и проверки режимов и границ записи.
  - Обновлены связанные инструкции и записан результат применения на Ubuntu 24.04.4 с Codex 0.154.0.
- Проверка:
  - Пройдены quick_validate, проверка ссылок, синтаксиса Bash и git diff --check.
  - Штатный профиль применён; старые профили выгружены. Оба режима и запреты записи проверены из процесса unconfined; подтверждены метки AppArmor у bwrap и дочерней команды.
This commit is contained in:
Dmitry Dementiev committed 2026-09-10 14:56:36 +03:00
1 parent 67aa5e67d5
commit 26fdb7584c
3 files changed
+162 -127

No files matched your search

@@ -15,10 +15,10 @@ WSL2 Ubuntu: exec/resume/`-o`/фоновый Bash — весь конвейер)
## Сквозные правила (любая ветка)
- **Предполёт — один раз на новой машине или в новом харнессе.** Две
проверки. Песочница: диагностика из
[codex-sandbox-apparmor.md](codex-sandbox-apparmor.md) (сигнатура поломки
и лечение — там же). Вывод доходит до файла: `codex --version > f;
- **Предполёт — на новой машине, в новом харнессе и после обновления или
переустановки Codex.** Две проверки. На Linux/WSL песочница: оба режима
и границы записи по [codex-sandbox-apparmor.md](codex-sandbox-apparmor.md).
Вывод доходит до файла: `codex --version > f;
wc -c f` — непусто значит, что рецепты ниже работают как написаны. Пусто:
среда теряет унаследованный файловый дескриптор, и на входе, и на выходе
(известный случай — T3 Code, [lessons.md](lessons.md) 2026-08-06); тогда
@@ -118,14 +118,12 @@ WSL2 Ubuntu: exec/resume/`-o`/фоновый Bash — весь конвейер)
`jq`, редиректы под Windows работают). `$SCRATCH` задавай
forward-slash-путём (`/c/Users/...`), не `C:\...`; пути в аргументах
кавычь; в выводах под Windows возможны `\r`.
- **Linux: sandbox может молча сломаться обновлением Codex.** Сигнатура:
web_search работает, а `pwd` внутри песочницы — нет
(`bwrap: loopback: Failed RTM_NEWADDR`). Обход без sudo
`use_legacy_landlock=true` чинит только read-only, write-режим с ним
паникует; полный фикс — AppArmor-профиль, и он под sudo: сам не применяй,
дай пользователю готовые команды из
[codex-sandbox-apparmor.md](codex-sandbox-apparmor.md) (`!`-префикс в чат),
после применения профиля напомни убрать `use_legacy_landlock`.
- **Linux: shell-команды падают до запуска, хотя web_search работает.**
При ошибке bwrap, в том числе `Failed RTM_NEWADDR`, сначала установи
причину и фактический способ запуска по
[codex-sandbox-apparmor.md](codex-sandbox-apparmor.md). Там же — штатная
настройка, переход со старого обхода и критерий готовности. При провале
предполёта сначала восстанови среду, затем запускай рабочие задачи.
- **Блок классификатора — сначала сузь песочницу, потом зови пользователя.**
Первая проверка: нет ли в команде `-s danger-full-access` — классификатор
его блокирует, и он не нужен (почему — в ветке исполнителя). Если блок не