[2026-09-17] eagle: personal/projects/zont-config-compiler.md
This commit is contained in:
@@ -808,18 +808,20 @@ git commit -m "Scenario YAML shape: bare action ids, no anchors"
|
|||||||
|
|
||||||
## 10. Осталось не разобрано
|
## 10. Осталось не разобрано
|
||||||
|
|
||||||
> 🔴 **СТАТУС РАЗДЕЛА НА 2026-09-17: разобранное — ТОЛЬКО в описании, кода нет** (§10.8).
|
> ✅ **СТАТУС РАЗДЕЛА НА 2026-09-17 (конец сессии): разобранное — В КОДЕ и ЗАКОММИЧЕНО** (`07c076f`).
|
||||||
> Пункты 1, 2, 7 закрыты **аналитически** (семантика установлена и подтверждена на данных),
|
> Пункты 1, 2, 7 закрыты **аналитически** (семантика установлена и подтверждена на данных) **и**
|
||||||
> но реализующий их код **потерян при откате** — работать заново поверх `b75c51f`.
|
> реализованы: `set_var` (4 формы), `param`/`event` (49), `op`/`time`/`days_mask` (50), тела 59.
|
||||||
|
> Все три круга чистые (§10.9). Код, потерянный при откате (§10.8), написан заново.
|
||||||
|
|
||||||
⚠️ **Остаётся `raw` / `unresolved`:**
|
⚠️ **Остаётся `raw` / `unresolved`:**
|
||||||
|
|
||||||
1. ~~**Тип 50**~~ — ✅ **РАЗОБРАНО, но КОД ПОТЕРЯН** (§10.5, круги 25–26): поле 2 = признак формы
|
1. ~~**Тип 50**~~ — ✅ **РАЗОБРАНО И РЕАЛИЗОВАНО** (§10.5, круги 25–26): поле 2 = признак формы
|
||||||
(`0` время / `1` дни), поле 3 = **знак сравнения** (коды `0 <` `1 >` `2 =` `3 <=` `4 >=` —
|
(`0` время / `1` дни), поле 3 = **знак сравнения** (коды `0 <` `1 >` `2 =` `3 <=` `4 >=` —
|
||||||
**подтверждены** четырьмя условиями Alex), поле 4 = время, поле 5 = маска дней.
|
**подтверждены** четырьмя условиями Alex), поле 4 = время, поле 5 = маска дней.
|
||||||
`op` и `time` **должны** писаться в YAML — сейчас **не пишутся** (откат).
|
`op`/`time`/`days` **пишутся в YAML** (§10.9, коммит `07c076f`).
|
||||||
2. ~~**Несущие объекты `set var1`** — тело цели в `scenario_orphans`~~ → ✅ **РАЗОБРАНО, КОД ПОТЕРЯН**,
|
2. ~~**Несущие объекты `set var1`** — тело цели в `scenario_orphans`~~ → ✅ **РАЗОБРАНО И РЕАЛИЗОВАНО**,
|
||||||
§10.1 круг 13: тело цели разворачивается **внутрь** `set_var`. **Вариант B выбран Alex.**
|
§10.1 круг 13 / §10.7: тело цели разворачивается **внутрь** `set_var`, орфаны 59 разворачиваются.
|
||||||
|
**Вариант B выбран Alex.**
|
||||||
3. **`unresolved: true`** у `#Z8860`, `#Z8864`, `#Z8601` — этих объектов нет в конфиге.
|
3. **`unresolved: true`** у `#Z8860`, `#Z8864`, `#Z8601` — этих объектов нет в конфиге.
|
||||||
🔴 Alex: «8860 — это **завершить сценарий** команда» (шаг в `then` у `#Z8862=46,1,8858,[8859,8860],[8861]`).
|
🔴 Alex: «8860 — это **завершить сценарий** команда» (шаг в `then` у `#Z8862=46,1,8858,[8859,8860],[8861]`).
|
||||||
Имени в UI не называл → ключ **не заведён**, `unresolved` пока остаётся. Разведка подтверждает:
|
Имени в UI не называл → ключ **не заведён**, `unresolved` пока остаётся. Разведка подтверждает:
|
||||||
@@ -828,7 +830,7 @@ git commit -m "Scenario YAML shape: bare action ids, no anchors"
|
|||||||
5. **Тип 11 внутри `steps` другого сценария** — ссылка на сценарий голым `id` (`#Z8456` держит `11109`).
|
5. **Тип 11 внутри `steps` другого сценария** — ссылка на сценарий голым `id` (`#Z8456` держит `11109`).
|
||||||
6. ~~**Старые снапшоты**~~ → ✅ **ВОССТАНОВЛЕНЫ** из `b75c51f` (§10.8); история снапшотов
|
6. ~~**Старые снапшоты**~~ → ✅ **ВОССТАНОВЛЕНЫ** из `b75c51f` (§10.8); история снапшотов
|
||||||
снова на месте, все `.txt` доступны для перегенерации.
|
снова на месте, все `.txt` доступны для перегенерации.
|
||||||
7. ✅ ~~**Семантика поля 3 объекта 49**~~ — **РАЗОБРАНО, КОД ПОТЕРЯН** (§10.6, круг 27). `0` = **значение
|
7. ✅ ~~**Семантика поля 3 объекта 49**~~ — **РАЗОБРАНО И РЕАЛИЗОВАНО** (§10.6, круг 27). `0` = **значение
|
||||||
параметра** → ключ `param` (имя из `PARAM_CODES` по типу владельца), `1` = **событие** → ключ
|
параметра** → ключ `param` (имя из `PARAM_CODES` по типу владельца), `1` = **событие** → ключ
|
||||||
`event`. Ярлык `type` = **`param`** (было `condition`, переименовано по требованию Alex).
|
`event`. Ярлык `type` = **`param`** (было `condition`, переименовано по требованию Alex).
|
||||||
Подтверждено двумя разведками: §10.4 (**Conditions Test**, 18 событий → все поле 3 = `1`)
|
Подтверждено двумя разведками: §10.4 (**Conditions Test**, 18 событий → все поле 3 = `1`)
|
||||||
@@ -998,7 +1000,7 @@ Alex видел `field: 1` **после** переименования в `mode`
|
|||||||
**Первое действие — `grep -c "<ключ>" <целевой.yml>` + `ls -la`:** если `field:` там есть, файл
|
**Первое действие — `grep -c "<ключ>" <целевой.yml>` + `ls -la`:** если `field:` там есть, файл
|
||||||
не перегенерирован (питфолл 34). Код без прогона = файл без правок.
|
не перегенерирован (питфолл 34). Код без прогона = файл без правок.
|
||||||
|
|
||||||
### 10.1. ✅ Разбор тел записи 59 (2026-09-17) — РАЗОБРАНО, КОД ПОТЕРЯН (§10.8)
|
### 10.1. ✅ Разбор тел записи 59 (2026-09-17) — РАЗОБРАНО И РЕАЛИЗОВАНО (§10.9, `07c076f`)
|
||||||
|
|
||||||
**Запрос Alex:** «Теперь разверни set var, print log и alarm нотификации» → позже уточнения,
|
**Запрос Alex:** «Теперь разверни set var, print log и alarm нотификации» → позже уточнения,
|
||||||
см. §5.8 круги 12–18.
|
см. §5.8 круги 12–18.
|
||||||
@@ -1303,7 +1305,7 @@ iconv -f cp1251 -t utf-8 out.txt | tr -d '\r' | grep '^#Z8830=59'
|
|||||||
> (вложенный шаг), а два — в `scenario_orphans`. Реальный счёт был 3 из 5, не 2. Считать без
|
> (вложенный шаг), а два — в `scenario_orphans`. Реальный счёт был 3 из 5, не 2. Считать без
|
||||||
> привязки к отступу и печатать **какие именно id** не попали, прежде чем делать вывод.
|
> привязки к отступу и печатать **какие именно id** не попали, прежде чем делать вывод.
|
||||||
|
|
||||||
### 10.5. ✅ Объект 50 — ДВЕ формы: время и дни (круги 22–26) — РАЗОБРАНО, КОД ПОТЕРЯН (§10.8)
|
### 10.5. ✅ Объект 50 — ДВЕ формы: время и дни (круги 22–26) — РАЗОБРАНО И РЕАЛИЗОВАНО (§10.9, `07c076f`)
|
||||||
|
|
||||||
**Отправная точка:** `#Z8842=50,0,1,3351,0` выводился как `type: days_mask` + `days: []` +
|
**Отправная точка:** `#Z8842=50,0,1,3351,0` выводился как `type: days_mask` + `days: []` +
|
||||||
`days_mask: 0` + `raw: [0, 1, 3351]`. Alex: «откуда блядь опять raw выполз блядь», затем
|
`days_mask: 0` + `raw: [0, 1, 3351]`. Alex: «откуда блядь опять raw выполз блядь», затем
|
||||||
@@ -1856,12 +1858,13 @@ rm -rf zont_config/_wip
|
|||||||
> которых в YAML не было. Правильная реакция — **сказать «эта форма не собирается обратно»**
|
> которых в YAML не было. Правильная реакция — **сказать «эта форма не собирается обратно»**
|
||||||
> и вернуть `target` в запись, а не изобретать `_target_row()`.
|
> и вернуть `target` в запись, а не изобретать `_target_row()`.
|
||||||
|
|
||||||
### 10.9. ✅ ВОССТАНОВЛЕНО 2026-09-17 (продолжение сессии) — код написан заново
|
### 10.9. ✅ ВОССТАНОВЛЕНО И ЗАКОММИЧЕНО 2026-09-17 — коммит `07c076f`
|
||||||
|
|
||||||
> ✅ **Статус: развёртывание РЕАЛИЗОВАНО заново** поверх `b75c51f`, дефект `#Z9964` **закрыт**.
|
> ✅ **Статус: развёртывание РЕАЛИЗОВАНО заново** поверх `b75c51f`, дефект `#Z9964` **закрыт**.
|
||||||
> `set_var` (4 формы), `param`/`event` (тип 49), `op`/`time`/`days_mask` (тип 50), тела 59
|
> `set_var` (4 формы), `param`/`event` (тип 49), `op`/`time`/`days_mask` (тип 50), тела 59
|
||||||
> (`objstate`/`expr`/`const`/`var`) — **в рабочей копии, НЕ закоммичено**.
|
> (`objstate`/`expr`/`const`/`var`) — **закоммичено** (`07c076f`, «Expand mini-script bodies in
|
||||||
> Круг `21-13-18` → строк `774 → 774`, **потеряно 0, лишнее 0**; `18-43-24` → `686 → 686`,
|
> YAML (set var / param / event / expr)», 6 файлов, +10864/−7).
|
||||||
|
> Круги: `21-13-18` → `774 → 774` · `18-43-24` → `686 → 686` · `19-53-21` → `686 → 686`,
|
||||||
> **потеряно 0, лишнее 0**. Отличается только **порядок строк** — унаследованное поведение (§10.10).
|
> **потеряно 0, лишнее 0**. Отличается только **порядок строк** — унаследованное поведение (§10.10).
|
||||||
|
|
||||||
**Как восстанавливали.** Источник — **Zulip-база**, тред `personal / ZONT Config compiler`
|
**Как восстанавливали.** Источник — **Zulip-база**, тред `personal / ZONT Config compiler`
|
||||||
@@ -2018,25 +2021,24 @@ comm -13 <(sort orig) <(sort back) # → пусто (ничего лишнег
|
|||||||
|
|
||||||
| Файл | Статус |
|
| Файл | Статус |
|
||||||
|---|---|
|
|---|---|
|
||||||
| `config-to-yml.py` | ✅ форма §5 (`trigger:` подъём через `pop('if')`, шаг = `{id, [flag], action}` или `{id, [flag], if, then, [else]}`) **плюс** развёртывание тел (§10.9): `_script_value`, `_set_var_target_body`, `_target_set_name`, `PARAM_CODES`/`COND_EVENTS`/`_OP_NAMES`, разворот орфанов-59 · ⚠️ **не закоммичено** |
|
| `config-to-yml.py` | ✅ форма §5 (`trigger:` подъём через `pop('if')`, шаг = `{id, [flag], action}` или `{id, [flag], if, then, [else]}`) **плюс** развёртывание тел (§10.9): `_script_value`, `_set_var_target_body`, `_target_set_name`, `PARAM_CODES`/`COND_EVENTS`/`_OP_NAMES`, разворот орфанов-59 · ✅ **закоммичено** (`07c076f`) |
|
||||||
| `yml-to-config.py` | ✅ `emit_step` читает `then`/`action`/`else`/`flag`; `f5` из `trigger:`/`interval_ms` + бит 8 **плюс** сборка тел (§10.9): `_parse_script_raw`, `_script_value_row`, `_set_var_target_row`, `_set_var_body`, `_body_type`/`_collect_ids`, `_PARAM_TO_CODE`/`_EVENT_TO_CODE`/`_OP_TO_CODE`/`_SEC_TYPE` · ✅ **расхождение `#Z9964` ЗАКРЫТО** (полный `raw` 59 выводится как есть, питфолл 54) · ⚠️ **не закоммичено** |
|
| `yml-to-config.py` | ✅ `emit_step` читает `then`/`action`/`else`/`flag`; `f5` из `trigger:`/`interval_ms` + бит 8 **плюс** сборка тел (§10.9): `_parse_script_raw`, `_script_value_row`, `_set_var_target_row`, `_set_var_body`, `_body_type`/`_collect_ids`, `_PARAM_TO_CODE`/`_EVENT_TO_CODE`/`_OP_TO_CODE`/`_SEC_TYPE` · ✅ **расхождение `#Z9964` ЗАКРЫТО** (полный `raw` 59 выводится как есть, питфолл 54) · ✅ **закоммичено** (`07c076f`) |
|
||||||
| `test_roundtrip.py` | ✅ без изменений (в коммите `199f2b1`) · ✅ **оба круга зелёные после восстановления** |
|
| `test_roundtrip.py` | ✅ без изменений (в коммите `199f2b1`) · ✅ **оба круга зелёные после восстановления** |
|
||||||
| `zont_config/config_local_2026-09-17_21-13-18.{txt,yml}` | 🆕 **актуальный рабочий снимок** (774 строки, 749 `#Z`) — «Простой тестовый сценарий» `#Z8456` содержит шаги `9925…9990`, `Values test` `#Z9324` не изменился. Круг ✅ `774 → 774`, различий **0** |
|
| `zont_config/config_local_2026-09-17_21-13-18.{txt,yml}` | 🆕 **актуальный рабочий снимок** (774 строки, 749 `#Z`) — «Простой тестовый сценарий» `#Z8456` содержит шаги `9925…9990`, `Values test` `#Z9324` не изменился. Круг ✅ `774 → 774`, различий **0** |
|
||||||
| `zont_config/config_local_2026-09-17_18-43-24.{txt,yml}` | ↩️ **ВОССТАНОВЛЕН 2026-09-17** из `b75c51f` после ошибочной чистки. Форма `trigger:` + `action:`. Круг ✅ строк `686 → 686`, **потеряно 0, лишнее 0** (661 — это счёт `#Z`, 686 — все строки) |
|
| `zont_config/config_local_2026-09-17_18-43-24.{txt,yml}` | ↩️ **ВОССТАНОВЛЕН 2026-09-17** из `b75c51f` после ошибочной чистки. Форма `trigger:` + `action:`. Круг ✅ строк `686 → 686`, **потеряно 0, лишнее 0** (661 — это счёт `#Z`, 686 — все строки) |
|
||||||
| `zont_config/config_local_2026-09-17_19-53-21.{txt,yml}` | 🔴 **удалён в рабочей копии** (`git status` = `AD`) — удаление не закоммичено; восстанавливается `git checkout b75c51f -- …`. Алекс: «блядь почисти файлы а» → «ДА» |
|
| `zont_config/config_local_2026-09-17_19-53-21.{txt,yml}` | ✅ **ВОССТАНОВЛЕНЫ и ЗАКОММИЧЕНЫ** (`07c076f`) — были в индексе как `AD` (удалены из индекса, файлов на диске нет); вернул `git checkout-index -f -- …`, круг `686 → 686`, потеряно 0 |
|
||||||
| `zont_config/config_0FA7C33CC89F_…_12-12-28.txt` + 4 исторических `.txt` | ↩️ **ВОССТАНОВЛЕНЫ** из `b75c51f` (см. §10.8) |
|
| `zont_config/config_0FA7C33CC89F_…_12-12-28.txt` + 4 исторических `.txt` | ↩️ **ВОССТАНОВЛЕНЫ** из `b75c51f` (см. §10.8) |
|
||||||
| `zont_config/archive/` | `-2`/`-3`/`-4` — закоммичены (`7ae0e32`) |
|
| `zont_config/archive/` | `-2`/`-3`/`-4` — закоммичены (`7ae0e32`) |
|
||||||
|
|
||||||
> 📌 **Состояние на 2026-09-17, конец сессии.** HEAD = `b75c51f`, не запушен.
|
> 📌 **Состояние на 2026-09-17, конец сессии.** HEAD = `07c076f`, не запушен.
|
||||||
> Рабочая копия **содержит восстановленное развёртывание тел** (§10.9) — **не закоммичено**.
|
> Рабочая копия **закоммичена** — развёртывание тел (§10.9) в истории.
|
||||||
> Развёртывание тел мини-скриптов и условий (`set_var`, `param`, `event`, `op`/`time`/`days_mask`,
|
> Развёртывание тел мини-скриптов и условий (`set_var`, `param`, `event`, `op`/`time`/`days_mask`,
|
||||||
> `expr`/`objstate`/`const`) — **в коде, работает**; дефект `#Z9964` **закрыт** (§10.9).
|
> `expr`/`objstate`/`const`) — **в коде, работает**, все три круга чистые, дефект `#Z9964` закрыт.
|
||||||
> 🔴 **Первым делом следующей сессии — закоммитить** рабочую копию (питфолл 41/44: незакоммиченная
|
> Круги: `21-13-18` → **774 → 774** · `18-43-24` → **686 → 686** · `19-53-21` → **686 → 686**
|
||||||
> работа уже терялась один раз).
|
> (потеряно 0, лишнее 0; сравнение по **содержимому**, `sort` + `comm`).
|
||||||
> Круги: `21-13-18` → строк `774 → 774` (потеряно 0, лишнее 0), `18-43-24` → `686 → 686`
|
> Расходится только **порядок строк** — унаследованное, не регрессия (§10.10).
|
||||||
> (потеряно 0, лишнее 0). Расходится только **порядок строк** — унаследованное, не регрессия (§10.10).
|
|
||||||
|
|
||||||
> 🔴 **Удаление `19-53-21.{txt,yml}` НЕ закоммичено** (`git status`: `AD`). Плюс в корне 13
|
> ✅ **`19-53-21.{txt,yml}` закоммичены** (`07c076f`, круг `686 → 686`). В корне 13
|
||||||
> мусорных отладочных скриптов (`audit2.py`, `audit_8456.py`, `chk_extra.py`, `check_ops.py`,
|
> мусорных отладочных скриптов (`audit2.py`, `audit_8456.py`, `chk_extra.py`, `check_ops.py`,
|
||||||
> `dump_new_types.py`, `fit_temp.py`, `fit_temp2.py`, `probe_sched.py`, `probe_types.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`) и папки
|
> `read_scenarios.py`, `trace_scenarios.py`, `verify_answers.py`, `why_raw.py`) и папки
|
||||||
|
|||||||
Reference in New Issue
Block a user