[2026-09-17] eagle: personal/projects/zont-config-compiler.md
This commit is contained in:
@@ -801,22 +801,25 @@ https://lk.zont-online.ru/download/firmwares/H2000_PRO_<HW>__<FW>_<PROFILE>.zip
|
|||||||
|
|
||||||
| Что | Состояние |
|
| Что | Состояние |
|
||||||
|---|---|
|
|---|---|
|
||||||
| Round-trip | 🟢 **9/9 ЧИСТО** (круги 32–36): `598→598`, `660→660`, `661→661` ×5, `749→749`, `757→757` — потеряно **0**, лишнее **0**. ⚠️ **Порядок строк `#S` и часть `#Z` не сохраняется** — но это **унаследованное** поведение (проверено на `b75c51f`), **не регрессия** (§10.10) |
|
| Round-trip | 🟢 **9/9 ЧИСТО** (круги 32–40): `598→598`, `660→660`, `661→661` ×5, `749→749`, `757→757` — потеряно **0**, лишнее **0**. ⚠️ **Порядок строк `#S` и часть `#Z` не сохраняется** — но это **унаследованное** поведение (проверено на `b75c51f`), **не регрессия** (§10.10). 🔴 **Зелёный круг ≠ приёмка**: при 70 орфанах круг тоже был зелёным — энкодер молча собирал `raw` обратно (питфолл 84) |
|
||||||
| Форма сценария | ✅ закрыта (§5), оба конвертера переведены |
|
| Форма сценария | ✅ закрыта (§5), оба конвертера переведены |
|
||||||
| Тела типа 59 | ✅ **`storeenv`/`log`/`pickle`/`pickle_value`/`expr` (`op`+`left`/`right`)/`var`/`objstate` — РАСПОЗНАЮТСЯ в `_script_value` (§19.3)** · `objcmd` — единственное неразобранное тело |
|
| Тела типа 59 | ✅ **`storeenv`/`log`/`pickle`/`pickle_value`/`expr` (`op`+`left`/`right`)/`var`/`objstate`/`objcmd` — все РАСПОЗНАЮТСЯ (§19.3, круг 38). Неразобранных тел не осталось** |
|
||||||
| Условия 49 при поле 3 = `1` | ✅ **форма закрыта** — `event` + `object`; поле 3 в YAML не пишется; 18 комбинаций из **Conditions Test** (§10.4) |
|
| Условия 49 при поле 3 = `1` | ✅ **форма закрыта** — `event` + `object`; поле 3 в YAML не пишется; 18 комбинаций из **Conditions Test** (§10.4) |
|
||||||
| Условия 49 при поле 3 = `0` | ✅ **ЗАКРЫТО (§10.6)** — `param: <имя>` по **типу владельца** (`PARAM_CODES`), 15 `param:` в YAML снимка `21-13-18`. Ярлык `type: param` (круг 27, было `condition`). Цель-шаг (`9885`) — не объект значения, остаётся `descr`+`args` |
|
| Условия 49 при поле 3 = `0` | ✅ **ЗАКРЫТО (§10.6)** — `param: <имя>` по **типу владельца** (`PARAM_CODES`), 15 `param:` в YAML снимка `21-13-18`. Ярлык `type: param` (круг 27, было `condition`). Цель-шаг (`9885`) — не объект значения, остаётся `descr`+`args` |
|
||||||
| Объект 50 (`set_var`) | ✅ **ЗАКРЫТО (§10.5)** — **поле 2** = форма (`0` время / `1` дни), **поле 3** = знак сравнения, поле 4 = время, поле 5 = маска. Знак пишется как **`op`** — коды `0 <` `1 >` `2 =` `3 <=` `4 >=` (совпали с типом 47 на 4/4 условиях) |
|
| Объект 50 (`set_var`) | ✅ **ЗАКРЫТО (§10.5)** — **поле 2** = форма (`0` время / `1` дни), **поле 3** = знак сравнения, поле 4 = время, поле 5 = маска. Знак пишется как **`op`** — коды `0 <` `1 >` `2 =` `3 <=` `4 >=` (совпали с типом 47 на 4/4 условиях) |
|
||||||
| Имя переменной | ✅ `set var1` **и** `set varname` — регексп `^set (var\w*\|\w+)$` (§10.4) |
|
| Имя переменной | ✅ `set var1` **и** `set varname` — регексп `^set (var\w*\|\w+)$` (§10.4) |
|
||||||
| `field` / `mode` / `cmp` / `_f2` / `_f5` / `_head` / `condition` | ⛔ **удалены** — 0 вхождений в коде и файлах (§10.1 круги 19–21, §10.5 круги 26, §10.6 круг 27) |
|
| `field` / `mode` / `cmp` / `_f2` / `_f5` / `_head` / `condition` | ⛔ **удалены** — 0 вхождений в коде и файлах (§10.1 круги 19–21, §10.5 круги 26, §10.6 круг 27) |
|
||||||
| Потери объектов | ✅ **0** — было 5 (`8472`, `8821`, `8849`, `8851`, `8855`) |
|
| Потери объектов | ✅ **0** — было 5 (`8472`, `8821`, `8849`, `8851`, `8855`) |
|
||||||
| `unresolved: true` | ⚠️ висит у `#Z10099`, `#Z8601`, `#Z10103` — объекта в конфиге нет (проверено `grep`), это **битые ссылки прибора**, не баг парсера (§19.6) |
|
| `unresolved: true` | ✅ **ЗАКРЫТО** (круг 37, `806ed2e`) — ключ переименован в **`end: true`**: битая ссылка прибора = **конец сценария** (Alex: «unresolved - конец сценария»), не «неразрешённый объект». Три терминатора: `10099`, `8601`, `10103` — их нет ни в одном из 9 дампов. ⛔ Не путать с `#Z10104=*` (§19.5) |
|
||||||
| Орфаны | **5** (было 27): `10030`, `10031`, `10035` (тип 49, одиночные) + `10032` (expr) — все висят на `objcmd`, который ещё не разобран (§19.5) |
|
| **Орфаны** | ✅ **4** (было 27 → 6 → **4**): `10030`, `10031`, `10035` (`type: param`) + `10032` (`expr`). Всё, что разворачивается, развёрнуто; оставшиеся 4 не привязаны ни к одному сценарию. **`raw` в орфанах — 0 вхождений** (круги 38/39) |
|
||||||
| Коммит | **`0cbbeb8`** ← **текущий HEAD** · `2007771` (условие 47) · `0c4b9a6` (поле 2 `var` снесено) · `16ec710` (круг 32) · `375d01a` (storeenv/log/pickle) · `07c076f` (восстановление потери) |
|
| **`objcmd`** | ✅ **РАЗОБРАН** — `descr` + `args` + `target: <id>` (`10029`/`10033`/`10036`/`10053`). `args` остаётся **только** у `objcmd` |
|
||||||
|
| **`args` у `set_var`** | ⛔ **ОТМЕНЁН** (круг 40, `4b99d8e`) — был выдумкой: `0` = поле 4, `1` = поле 5 (**производное**: «в поле 2 литерал, а не id»). Энкодер ставит поле 5 сам (§21.2.1) |
|
||||||
|
| **`action` / шаг 46 в `steps`** | ⛔ **ОТМЕНЁН** (круг 39, `8f2edd4`) — шаг 46 в `steps` не пишется; его id едет в **`trigger.step_id`**, `steps` = **тела действий** (§21.3) |
|
||||||
|
| Коммит | **`4b99d8e` ← текущий HEAD** · `8f2edd4` (step_id) · `272f4c6` (trigger.step) · `6d0b6a5` · `4c6a6f5` (орфаны-param) · `806ed2e` (end) · `b770bed` (revert) · `ba6ef44` · `0cbbeb8` (расписание 50) · `2007771` (условие 47) · `0c4b9a6` (`var` поле 2) · `16ec710` (круг 32) · `375d01a` · `07c076f` |
|
||||||
| Откачено | `87e315c` («set-var target into `set_var`») — снят `git reset --soft` без разрешения Alex (§10.1) |
|
| Откачено | `87e315c` («set-var target into `set_var`») — снят `git reset --soft` без разрешения Alex (§10.1) |
|
||||||
| Ранее | `823fabd` — форма сценария §5; `1cc010a` — **содержит сломанные версии**; закрыт §9.1 |
|
| Ранее | `823fabd` — форма сценария §5; `1cc010a` — **содержит сломанные версии**; закрыт §9.1 |
|
||||||
| Документация | ✅ **три дока сведены в один** — `personal/projects/zont-config-compiler.md` (§9.2) |
|
| Документация | ✅ **три дока сведены в один** — `personal/projects/zont-config-compiler.md` (§9.2) |
|
||||||
| Push | ❌ **не сделан** |
|
| Push | ✅ **СДЕЛАН** (круг 40): `d94b809..4b99d8e` — 14 коммитов, `origin/main` = HEAD = `4b99d8e` |
|
||||||
| Коммит — правило | 🔴 **Alex 2026-09-17: «отъебись блядь! я скажу комит когда надо будет!»** — сам не предлагать коммит повторно, не напоминать. Ждать явной команды |
|
| Коммит — правило | 🔴 **Alex 2026-09-17: «отъебись блядь! я скажу комит когда надо будет!»** — сам не предлагать коммит повторно, не напоминать. Ждать явной команды |
|
||||||
|
|
||||||
**Проверка на снимке `19-53-21`:** `trigger:` 66 · `action:` · `if:`/`then:` (тест `8456`) ·
|
**Проверка на снимке `19-53-21`:** `trigger:` 66 · `action:` · `if:`/`then:` (тест `8456`) ·
|
||||||
|
|||||||
Reference in New Issue
Block a user