[2026-09-17] eagle: personal/projects/zont-config-compiler.md
This commit is contained in:
@@ -2987,7 +2987,74 @@ Alex прочитал `git show --stat ba6ef44` (2 файла, 10 строк) и
|
||||
|
||||
---
|
||||
|
||||
## 21. 📌 HEAD и состояние файлов на конец сессии 2026-09-17
|
||||
## 21. 📌 HEAD и состояние на конец 2026-09-17
|
||||
|
||||
### 21.0. ✅ Круг 38 — орфаны разгребены: `raw` убран (2026-09-17, ночь)
|
||||
|
||||
Тела записей `49`/`50`, попавшие в `scenario_orphans`, теперь раскрываются **той же формой**, что
|
||||
цель `set_var` (`type: param` + `object` + `param`/`event`), а не лежат нечитаемым `raw`.
|
||||
|
||||
| id | Было | Стало |
|
||||
|---|---|---|
|
||||
| `10030` | `raw: [49, 9864, 0, 4]` | `type: param`, `object: 9864`, `param: input_value` |
|
||||
| `10031` | `raw: [49, 8254, 0, 4]` | `type: param`, `object: 8254`, `param: input_value` |
|
||||
| `10035` | `raw: [49, 4099, 0, 8]` | `type: param`, `object: 4099`, `param: dhw_temp` |
|
||||
|
||||
| Точка | Что |
|
||||
|---|---|
|
||||
| `config-to-yml.py`, цикл орфанов (`~1291`) | перед `raw`-фоллбэком пробуется `_set_var_target_body` для типов `49`/`50` |
|
||||
| `yml-to-config.py`, блок без `raw` (`~1198`) | ветка `type: param` → `_set_var_target_row` (тот же хелпер, что у `set_var`) |
|
||||
|
||||
`raw` в `scenario_orphans` — **0 вхождений**. Круг ✅ **9/9 чистый**, `757→757` объектов, `782→782` строк.
|
||||
|
||||
**Коммит:** **`4c6a6f5`** («Орфаны: тела 49/50 раскрыты как param, raw убран»).
|
||||
|
||||
🔴 **ПИТФОЛЛ 81 — раскрыл в декодере ⇒ сразу учи энкодер.** После правки декодера круг дал
|
||||
`757 → 754`: три объекта `#Z10030/10031/10035` **терялись**, потому что энкодер не знал ветку
|
||||
`type: param` в блоке орфанов и падал в `raw`-фоллбэк. Порядок всегда: правка декодера + ветка
|
||||
энкодера + круг, в одном заходе (ср. питфолл 72).
|
||||
|
||||
🔴 **ПИТФОЛЛ 82 — `raw` в орфане = сигнал «форма не разобрана», а не «данных нет».** Все три
|
||||
`raw` были обычными записями `49` с полем 3 = `0`, форма которых (`param` + `object`) уже
|
||||
принята и живёт в 15 других местах артефакта. Прежде чем оставлять `raw` — `grep` принятую форму
|
||||
у соседей (ср. §10.1 круг 16, питфолл 73).
|
||||
|
||||
### 21.1. ✅ Круг 37 (ФИНАЛ) — `unresolved` ПЕРЕИМЕНОВАН в `end`
|
||||
|
||||
**«unresolved - конец сценария»** — битая ссылка прибора это **конец сценария**, а не «неразрешённый
|
||||
объект». Ключ `unresolved` отвергнут, принят **`end`**.
|
||||
|
||||
| Что | Было | Стало |
|
||||
|---|---|---|
|
||||
| Декодер, 4 точки (`_dump_leaf`, `_dump_condition`, `dump_step`, сборка `flat_steps`) | `{'id': N, 'unresolved': True}` | `{'id': N, 'end': True}` |
|
||||
| Артефакт: `10099`, `10103`, `8601` | `unresolved: true` | `end: true` |
|
||||
| Энкодер, 3 чтения (`413`, `834`, `844`) | `node.get('unresolved')` | `node.get('end') or node.get('unresolved')` |
|
||||
|
||||
Круг после правки — ✅ **9/9 чистый**: `598/660/661×5/749/757`, 0 расхождений, `757→757` объектов, `782→782` строк.
|
||||
|
||||
**Коммиты:** `b770bed` (revert `ba6ef44`) → **`806ed2e`**. Push не делался.
|
||||
|
||||
🔴 **ПИТФОЛЛ 79** — «откатывай» ≠ откат в пустоту: `git revert ba6ef44` вернул **отвергнутую**
|
||||
форму `unresolved`. Откат требовался как снос коммита, а целевая форма — **новая** (`end`).
|
||||
|
||||
🔴 **ПИТФОЛЛ 80** — прямой ответ на заданный вопрос = **целевое состояние**. На «что должно стоять
|
||||
вместо `- id: 10099`» ответ был «unresolved - конец сценария»; я переинтерпретировал его как
|
||||
«флаг снят верно, делать нечего» и вернул пустую строку. Цена — шесть раундов («не беси меня» ·
|
||||
«хули ты слушаешь» · «мозг не еби» · «я че только что блядь просил сделать?!» · «ты конченый» ·
|
||||
«КОНЕЦ СУКА СЦЕНАРИЯ»). Ответ на прямой вопрос **не переспрашивать и не толковать**.
|
||||
|
||||
### 21.2. Состояние файлов
|
||||
|
||||
| | |
|
||||
|---|---|
|
||||
| **HEAD** | **`4c6a6f5`** — «Орфаны: тела 49/50 раскрыты как param, raw убран (10030/10031/10035)» |
|
||||
| **Содержимое `ba6ef44`** (история) | только снятие флага: `config-to-yml.py` (4 точки) + регенерация артефакта. 2 файла, `+6/-7` |
|
||||
| **Рабочее дерево** | чистое по конвертерам |
|
||||
| **Файл на диске** | `config_local_2026-09-17_22-26-26.yml` — 757 объектов; `4171`/`4178`/`4233` = `end: true` |
|
||||
| **Круг** | ✅ **9/9** — потеряно 0, лишнее 0 |
|
||||
| **Коммиты сессии** | `4c6a6f5` · `806ed2e` · `b770bed` · `ba6ef44` · `0cbbeb8` · `2007771` · `0c4b9a6` · `821659b` · `16ec710` · `375d01a` · `07c076f` — **push не делался** |
|
||||
| **Незакоммичено в `zont_config/`** | 2 удалённых `.yml`-снапшота (`18-43-24`, `19-53-21`), новый `.txt` |
|
||||
| **Открыто** | §20.3 — п.1 ✅ закрыт (`end`), п.3 `objcmd` ✅ форма есть (`descr`+`args`+`target`); остались `args`-хвост `#Z10069`, поле 4 `expr`, push |
|
||||
|
||||
| | |
|
||||
|---|---|
|
||||
|
||||
Reference in New Issue
Block a user