From e89869b6c1d051745d0a0453ff9066a512f36d98 Mon Sep 17 00:00:00 2001 From: Alexey Martemyanov Date: Fri, 25 Sep 2026 23:11:40 +0600 Subject: [PATCH] [2026-09-25] eagle: personal/plans/lampac-watchlist-plugin.md --- personal/plans/lampac-watchlist-plugin.md | 36 ++++++++++------------- 1 file changed, 15 insertions(+), 21 deletions(-) diff --git a/personal/plans/lampac-watchlist-plugin.md b/personal/plans/lampac-watchlist-plugin.md index d403b9ec..32e12425 100644 --- a/personal/plans/lampac-watchlist-plugin.md +++ b/personal/plans/lampac-watchlist-plugin.md @@ -550,31 +550,25 @@ node --check plugin-cub.js → SYNTAX OK `docker exec lampac grep -c "wlPrefetch\|wlComp" /lampac/module/Catalog/plugin.js` → **4** → рестарт Lampa на ТВ через `luna-send` (`--- закрываю --- --- запускаю --- --- готово ---`). -### 🔴 Что ОСТАЛОСЬ (следующая сессия, начать отсюда) +### ✅ ОБА СИМПТОМА РАЗОБРАНЫ ЗАМЕРОМ — ЧЕТВЁРТЫЙ ФИКС (см. раздел ниже) -**Гипотезы по двум симптомам (НЕ проверены, гадать не нужно — мерить):** +Гипотезы из третьего фикса **опровергнуты замером**. Переход +`main → category_full → main` даёт **ПУСТОЙ трейс `partNext`** — он не вызывается +на этих переходах вообще, Lampa переиспользует отрисованный пул. Фильтр по +`component` при этом **работает** (`main` → пропуск, `category_full` → рез). -1. **Уход в «Фильмы» → секции снова появились.** Переход идёт через `category()` / - `category_full` (`plugin.js:36`). Фильтр по `component` там должен давать `false`, - НО `component` на экране Фильмов в замере **не логировался** — на тот момент - фиксировался только `url`. Возможные варианты: `component` на Фильмах тоже - `'main'`; либо вставка на этом экране идёт не из `partNext`. - → Проверить `component` на экране Фильмов ОТДЕЛЬНОЙ пробой. -2. **Возврат на главную → секции не сверху.** `wlPrefetch()` **одноразовый** - (`__wl_prefetched`). На возврате `__wl_menu` уже заполнен, но `wlInject` не - срабатывает в первом раунде; плюс `unshift` в голову `parts` работает, только если - `partNext` вызван **заново с новым массивом** — на возврате Lampa может - переиспользовать уже отрисованный пул. - → Нужен трейс порядка вызовов `partNext` на «главная → Фильмы → главная» - (`console.log` с номерами вызовов). +Полный разбор, код фикса и статус деплоя — в разделе +«🔴 РЕШЕНИЕ НАЙДЕНО ЗАМЕРОМ: хук на `activity` (ЧЕТВЁРТЫЙ ФИКС 2026-09-25)». -**Порядок работ:** сначала ЗАМЕР по обоим пунктам (пока Lampa в текущем состоянии, -без рестарта), потом правка, потом обычный цикл: сборка → `node --check` → бэкап → -`scp` → рестарт Lampa на ТВ → замер CDP → приёмка Alex. +**Метод замера, который это дал** (`/tmp/wl_nav.py`): обернуть `Lampa.Api.partNext` +своим трейсом (`window.__wl_trace.push(component+'|url='+url+'|n='+parts.length)`), +затем дёрнуть `Lampa.Router.call('category_full',{url:'movie',...})`, снять снапшот +`Activity.active()`, вернуться, снять трейс. **Трейс пустой = `partNext` не зовётся** — +это и был ответ. -**Коммит правки (третий фикс) НЕ сделан** — апрув истёк по таймауту. Файлы лежат в -`/Users/admin/lampac-tmp/`, в `~/Developer/lampac-scripts/scripts/` ещё НЕ скопированы. -После приёмки — скопировать и закоммитить тем же порядком, что `5e55a47`. +🔴 **Питфолл метода:** `Lampa.Router.call('main')` как «вернуться на главную» +**не работает** (`ERR: Cannot read property 'url' of undefined`). Возврат на главную +через Router не эмулируется — навигацию по экранам Alex проверяет пультом. **Правило:** `git commit` через `ssh`/длинную команду может уйти в таймаут апрува — подтверждение Alex обязательно, повторять команду автоматически нельзя.