diff --git a/personal/projects/zont-config-compiler.md b/personal/projects/zont-config-compiler.md index 6b0fddc5..b14e73af 100644 --- a/personal/projects/zont-config-compiler.md +++ b/personal/projects/zont-config-compiler.md @@ -3228,18 +3228,20 @@ Alex прочитал `git show --stat ba6ef44` (2 файла, 10 строк) и | | | |---|---| -| **HEAD** | **`5fdedc9`** — «type 5 в шаге: action вместо хвоста params, отдельная секция сборки» · ⚠️ **НЕ запушен** | -| **Рабочее дерево** | ✅ **чисто** по конвертерам (круг 43 закоммичен) | +| **HEAD** | **`5d31d6e`** — «пустая секция scenario_orphans не выводится» · ✅ **запушен** | +| **origin/main** | `5d31d6e` (синхронно с локальным) · запушено `4b99d8e..5d31d6e` | +| **Рабочее дерево** | ✅ **чисто** по конвертерам | | **Файл на диске** | `config_local_2026-09-17_23-21-20.yml` — **759 объектов**, `action` у типа 5, `trigger.step_id`, `exit: true` у битых ссылок (`10442`, `10446`, `8601`), `call_sub`/`send_sms` в шагах, пустой `scenario_orphans` не выводится | | **Круг** | ✅ **9/9** (в `zont_config/` 9 снапшотов `.txt`) — потеряно 0, лишнее 0 | -| **Коммиты сессии** | `5fdedc9` (круг 43) · `4b99d8e` (круг 40) · `8f2edd4` · `272f4c6` · `6d0b6a5` · `4c6a6f5` · `806ed2e` · `b770bed` · `ba6ef44` · `0cbbeb8` · `2007771` · `0c4b9a6` · `821659b` · `16ec710` · `375d01a` · `07c076f` — 15 из них ✅ запушены (`d94b809..4b99d8e`), **`5fdedc9` — нет** | +| **Коммиты сессии (до круга 46)** | `5fdedc9` (круг 43) · `4b99d8e` (круг 40) · `8f2edd4` · `272f4c6` · `6d0b6a5` · `4c6a6f5` · `806ed2e` · `b770bed` · `ba6ef44` · `0cbbeb8` · `2007771` · `0c4b9a6` · `821659b` · `16ec710` · `375d01a` · `07c076f` — ✅ все запушены | +| **Коммиты кругов 46-49** | `75f46f3` (тип 9 = `set_contour_target`, Кельвин) · `659a293` (`call_sub`/`send_sms`) · `9c83651` (`end`→`exit`) · `5d31d6e` (пустой `scenario_orphans`) — ✅ все запушены `4b99d8e..5d31d6e` | | **Док в vault** | `personal/projects/zont-config-compiler.md` | -| **Незакоммичено в `zont_config/`** | ничего (2 удалённых `.yml`-снапшота и новый `.txt` ушли в `5fdedc9`) | -| **Открыто** | только поле 4 = `2` у `expr` (`10379`-группа) — имя не дано; всё остальное ✅ закрыто | +| **Незакоммичено в `zont_config/`** | ничего | +| **Открыто** | **только авто-id** (`_resolve_id` + аллокатор `max+1`, 17 точек) — план есть, код не написан. Всё остальное ✅ закрыто | -⚠️ **Первая строка «HEAD» описывает коммиты, а не рабочее дерево.** На конец круга 43 дерево -**чистое**: круг 43 закоммичен в `5fdedc9`. При следующей сессии всё равно начинать с `git status`, -а не с предположения «всё закоммичено». +⚠️ **Первая строка «HEAD» описывает коммиты, а не рабочее дерево.** На конец круга 49 дерево +**чистое**, локальный HEAD = `origin/main` = `5d31d6e`. При следующей сессии всё равно начинать +с `git status`, а не с предположения «всё закоммичено». ### 21.2.1 ✅ Круг 40 (ФИНАЛ) — `set_var`: `args` выдуман, поле 5 производное @@ -3261,6 +3263,21 @@ Alex прочитал `git show --stat ba6ef44` (2 файла, 10 строк) и **Все 7 записей с полем 5 ≠ 0 — ровно те, где поле 4 не является id.** Значит поле 5 — **производное**, в YAML не пишется; энкодер ставит его сам по признаку «в поле 2 число». +#### ✅ Круг 49 — правило подтверждено на всех 26 `expr`-записях в 9 дампах + +Полная проверка поля 4/5 у `expr` (`grep -h "^#Z[0-9]*=59,'expr" zont_config/*.txt`): + +| Значение | Сколько | Признак | +|---|---|---| +| `0` | **15** | правый операнд — **id существующего объекта** (`10373`, `10414`, `10031`, `8460`, …) | +| `2` | **11** | правый операнд — **литерал** (объекта с таким id нет: `1`, `-1`) | + +Исключений нет. Тот же `0`/`2` стоит и в поле 5. **Работа не требуется:** поле производное, +в YAML не выводится, энкодер вычисляет его по «есть ли объект с таким id». +⚠️ id `10030`–`10035` из старых кругов (`10077`–`10085`) в дампе `23-21-20` **не встречаются** — +`expr`-группа теперь `10420`, `10422`, `10424`, `10426`, `10428` (поле 4 = `2`) плюс +`10374`, `10415`, `10418` (поле 4 = `0`). + | Точка | Что | |---|---| | `config-to-yml.py` (`~938`) | ветка «поле 2 = число»: `{'name', 'value'}` — **без `args`** | @@ -3537,19 +3554,18 @@ echo "exit=$?"; ls -la zont_config/config_X.yml --- -## 24. 🔄 Рабочее дерево на начало сессии 2026-09-18 (НЕ закоммичено) +## 24. ✅ Рабочее дерево на начало сессии 2026-09-18 — РАЗОБРАНО (круги 46-49) -Состояние **отличается** от §21.2 (который описывает конец круга 43). Проверено `git log`/`git status` -в начале следующей сессии: +Состояние **отличалось** от §21.2 (который описывает конец круга 43). Ниже — что было найдено на +старте, и что с этим стало к концу сессии: -| | | -|---|---| -| **HEAD** | **`5fdedc9`** — «type 5 в шаге: action вместо хвоста params, отдельная секция сборки» | -| **`origin/main`** | **`4b99d8e`** → **`5fdedc9` НЕ запушен** | -| **Модифицированы** | `config-to-yml.py`, `yml-to-config.py`, `zont_config/config_local_2026-09-17_23-21-20.yml` | -| **Untracked** | `audit2.py`, `audit_8456.py`, `check_ops.py`, `chk_extra.py`, `dump_new_types.py`, `fit_temp.py`, `fit_temp2.py`, `probe_sched.py`, `probe_types.py`, `read_scenarios.py`, `trace_scenarios.py`, `verify_answers.py`, `why_raw.py`, `zont_api_docs/`, `zont_local_ui_recon/` | -| **Артефакт** | `config_local_2026-09-17_23-21-20.yml` — 90 918 байт, mtime `Sep 17 23:30:52` (на 55 байт меньше, чем в §21.2: **90 973 → 90 918**, расхождение не объяснено) | -| **В `zont_config/`** | два `.yml`: `..._22-26-26.yml` (90 480) и `..._23-21-20.yml` (90 918) | +| | На старте сессии | К концу (круг 49) | +|---|---|---| +| **HEAD** | `5fdedc9` («type 5 в шаге: action») | **`5d31d6e`** | +| **`origin/main`** | `4b99d8e` (4 не запушенных) | **`5d31d6e`** — синхронно | +| **Модифицированы** | `config-to-yml.py`, `yml-to-config.py`, `zont_config/..._23-21-20.yml` | ✅ всё закоммичено и запушено | +| **Untracked** | 13 отладочных `.py` + `zont_api_docs/`, `zont_local_ui_recon/` | те же (рабочий мусор, не мешает) | +| **Артефакт** | 90 918 байт, mtime `Sep 17 23:30:52` | перегенерён, 759 объектов, круг 9/9 | ⚠️ **Правило:** §21.2 описывает **коммиты**, §24 — **рабочее дерево**. На старте сессии — всегда `git status`, не полагаться на «всё закоммичено». @@ -3561,6 +3577,8 @@ echo "exit=$?"; ls -la zont_config/config_X.yml точках (`emit_step` ~990 и `emit_action` ~770), и покрыта была только одна. Гипотезу про код проверять `grep` по **всем** точкам входа, а не по одной. +**Остаток сессии — только авто-id** (§25, план согласован, код не написан). + --- ## 25. 🎯 План: авто-id для всех сущностей (СОГЛАСОВАНО, не реализовано)