# Сборка форка f7_talk (Nextcloud Talk / spreed) Форк ветки nextcloud/spreed. Базовый апстрим — **v22.0.12** (тег `v22.0.12-upstream`), совместим с NC 32.0.5 (glb, forbion). Обновления с официальной ветки НЕ берём (решение владельца 2026-07-06) — источник версии Talk теперь этот репозиторий. ## Сборочная среда (проверено на nd3, 2026-07-06) - Node **22.17.0** + npm **10.9.2** (package.json engines: node ^22, npm ^10.5). На nd3 ставится в userspace: `/home/foradmin/f7-build/node-v22.17.0-linux-x64` (не системный). - Зависимости фронтенда: `npm ci` по `package-lock.json` (воспроизводимо). - Сборка: `NODE_OPTIONS=--max-old-space-size=8192 npm run build` (rspack, production) → каталог `js/`. На 16 vCPU / 20 ГБ занимает ~20 с; 4 warning'а (olm.wasm __dirname/__filename) — безвредны. ## Воспроизводимость (подтверждена) Наша сборка из исходников v22.0.12 сверена с ОФИЦИАЛЬНЫМ релизным артефактом `nextcloud-releases/spreed v22.0.12`: - **55 из 65** `.js`-бандлов — байт-в-байт идентичны. - Расхождения: 10 файлов = `.map` (source maps, не грузятся клиентом) + `talk-collections.js`, где отличается ТОЛЬКО порядок двух minifier-переменных (`p`/`d`) — недетерминизм минификатора, функционально эквивалентно. Вывод: собранный нами Talk = официальному 22.0.12. ## Что на боевом glb отличается от стока (правки downstream, НЕ наши в форке) Установленный на glb spreed = сток 22.0.12 + преобразования f7-брендинга (владелец — dev-f7, их generalize/theme-конвейер), а НЕ ручной патч ядра: - `l10n/*` (110 файлов): строки Nextcloud→F7cloud, ссылки docs; - `img/*` (27): фавиконки/иконки бренда; `css/talk-main.css`: одна @media-правка; - `js/*` (7 бандлов): namespace `http://nextcloud.com/ns`→`https://f7cloud.ru/ns` + бренд-строки; - **единственный функциональный патч PHP**: `lib/Notification/Listener.php` — форс языка `ru` для push-уведомлений больших звонков (упрощение: fallbackLang='ru', userLanguages=[]). Вывод для форка: брендинг остаётся ПОСТ-сборочным шагом dev-f7 (их зона), либо переносится в форк отдельным коммитом по согласованию. Патч Listener.php логично инкорпорировать в форк как наш. ## Релизы форка Версии `22.0.12-f7.N`. Пайплайн: изменение → `npm ci && npm run build` → смок-чеклист на стенде → деплой glb → золотой шаблон (dev-f7). app id `spreed`, схема БД, OCS API v4/bot v1/HMAC — НЕ трогаем (транскрипция R5, HPB, мобильные клиенты). Первый релиз f7.1 — только маркер версии, обкатка конвейера.