[2026-09-25] eagle: personal/plans/lampac-watchlist-plugin.md

This commit is contained in:
Alexey Martemyanov committed 2026-09-25 23:11:40 +06:00
1 parent f184b707a1
commit e89869b6c1
1 file changed
+15 -21
+15 -21
View File
@@ -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 обязательно, повторять команду автоматически нельзя.