# Паритет форка f7_talk с боевым glb.f7cloud.ru Полный разбор: установленный на glb `spreed` = **сток 22.0.12 + ДВА слоя**. ## Слой 1 — ядро (НАШ, в форке) Единственная функциональная правка PHP-ядра поверх стока: - `lib/Notification/Listener.php` — форс языка push-уведомлений больших звонков (`ru`). Инкорпорирован в форк (коммит f7.1). ⚠️ хардкод `ru` теряет per-user язык и конфликтует с задачей мультиязычности З5 → кандидат вынести в config, согласование с dev-f7. Всё остальное ядро (lib/, templates/, appinfo/, composer) — байт-в-байт сток. JS собирается из исходников воспроизводимо (BUILD-f7.md). ## Слой 2 — брендинг (ЗОНА dev-f7, НЕ в форке) Пост-сборочные/пост-установочные преобразования артефакта (generalize/theme-конвейер dev-f7): - `l10n/*` (110 файлов): строки Nextcloud→F7cloud, docs-URL; - `img/*` (27): фавиконки/иконки бренда; - `css/talk-main.css`: одна @media-правка; - namespace в собранных JS: `http://nextcloud.com/ns` → `https://f7cloud.ru/ns` (приходит из зависимости, заменяется в бандле ПОСЛЕ сборки); - бренд-строки в JS (видимый текст), НО НЕ внутренние идентификаторы (напр. cookie `_nextcloudCsrfTokenReloaded` на glb СОХРАНЁН) — трансформация ХИРУРГИЧЕСКАЯ. Точные правила этого слоя — в репозитории dev-f7 (не реконструирую: их зона). Для полного glb-идентичного артефакта слой 2 применяется к сборке форка downstream. ## Итог: как собрать glb-идентичный артефакт ``` 1. npm ci && npm run build (форк → сток-эквивалентный js) [dev-conf] 2. Listener.php-патч уже в форке (f7.1) [dev-conf] 3. брендинг-трансформ dev-f7 на артефакт (l10n/img/css/ns/строки) [dev-f7] ← НУЖНО от dev-f7 4. упаковка + подпись + публикация в App Store [dev-appstore] ``` Открытый вопрос к dev-f7: слой 2 остаётся вашим пост-шагом на артефакте форка, или переносим в пайплайн форка отдельным коммитом-слоем? (письмо отправлено). До ответа форк = ядро-паритет с glb.