Исправлена навигация по клику на уведомления: уведомления теперь корректно открывают источник (чат, календарь, профиль/пост и т.д.) в браузере и PWA
Релиз
Версия 3.4.3
Уведомления стали информативнее: для новых сообщений показываются имя отправителя и фрагмент текста
Для входящих звонков в уведомления добавлены действия «Принять» и «Отклонить» (там, где это поддерживает браузер/устройство)
Релиз
Версия 3.4.4
В дашборде (`Настройки`) добавлен отдельный блок настроек уведомлений: цвет, оформление toast/desktop-уведомлений, рингтон уведомлений и отдельный рингтон входящего звонка
Добавлен блок `PWA и обновления`: политика обновления (manual/notify/auto), интервал проверки Service Worker, автозапрос persistent storage и toast-оповещения об обновлении PWA
В открытом приложении входящий звонок теперь использует настраиваемый рингтон (если у пользователя включён звук уведомлений)
Релиз
Версия 3.4.5
В настройках уведомлений добавлена загрузка своих рингтонов: отдельно для обычных уведомлений и отдельно для входящего звонка
В админке можно прослушать загруженные рингтоны прямо в разделе настроек и удалить их при необходимости
Релиз
Версия 3.5.0
Стабилизационный релиз: проведён общий cleanup проекта, снижён шум от временных артефактов и улучшена предсказуемость работы уведомлений/PWA-настроек
В настройках уведомлений доработана работа со своими рингтонами: при замене старые файлы корректно очищаются, а слишком большие файлы не принимаются
Релиз
Версия 3.5.1
Hotfix рингтонов на телефонах: улучшено воспроизведение кастомных рингтонов уведомлений/звонка на мобильных браузерах и PWA
Релиз
Версия 3.5.2
Усилена надёжность уведомлений: добавлен серверный retry-worker для wake-push доставки с повторными попытками и backoff
В админке (Настройки -> PWA и обновления) появился блок диагностики push-очереди: количество недоставленных элементов, состояние очереди и статус подписок
Релиз
Версия 3.5.3
Уведомления стали стабильнее при закрытом PWA/сайте: сервер теперь пытается отправлять полноценный Web Push payload (с телом уведомления), а не только wake-push
Сохранён fallback-режим (`wake-push + push_pull`) для совместимости, если endpoint/браузер не принимает payload
Релиз
Версия 3.5.4
В админке (`Настройки -> PWA и обновления`) добавлена диагностика push-устройств: список подписок, устройство/режим, последний успех доставки и ошибки
Появилась кнопка `Тест push` для каждого устройства, чтобы быстро проверить доставку уведомлений на конкретную подписку
Релиз
Версия 3.5.5
Диагностика push-устройств в админке стала практичнее: добавлены фильтры (поиск, active/inactive, только с ошибками)
Для push-подписок появились действия `Отключить / Включить / Удалить` прямо в таблице устройств
Релиз
Версия 3.5.6
Исправлен бренд в уведомлениях: заголовок уведомлений теперь подтягивается из настроек сайта, а не захардкожен как `TSOY.CLOUD`
В диагностике push-устройств добавлена колонка `Последний тест` (успех/ошибка, режим `payload/wake`, HTTP-код, время)
Релиз
Версия 3.5.7
В диагностике push-устройств добавлена статистика реальных доставок по подписке: `payload`, `wake`, `wake fallback`, `errors` (накопительно, с последнего сброса)
Добавлены кнопки сброса статистики доставок: для одной подписки и для всех подписок сразу
Заголовок уведомлений теперь стабильно берётся из настроек сайта (брендинг) и для серверных push, и для клиентских fallback-уведомлений
Релиз
Версия 3.5.8
Hotfix уведомлений: название в заголовке уведомления теперь берётся в приоритете из `Название в шапке`, затем из `Название сайта`
Исправлен fallback тестового уведомления в центре уведомлений: больше не показывает захардкоженный `TSOY.CLOUD`
Релиз
Версия 3.5.10
В диагностике push-устройств добавлена агрегированная сводка по всем подпискам: `payload success rate`, `fallback rate`, `error rate` и общие счётчики попыток
Добавлен мини-график/спарклайн по дням (14 дней): stacked bars `payload / wake / errors`, где высота столбца показывает объём попыток за день
Теперь качество доставки push видно и в разрезе периода, и по текущему срезу без ручного анализа таблицы устройств
Релиз
Версия 3.5.11
Страница `Настройки` в дашборде больше не выглядит как сплошная простыня: добавлен блок быстрых переходов по разделам (якоря) и группировка по логическим секциям
Появились явные секции: основные параметры, дизайн/уведомления, PWA/push, функции/звонки/диагностика — ориентироваться в настройках стало заметно проще
Навигация по секциям адаптирована под мобильные устройства: на телефоне список разделов прокручивается горизонтально
FileHub работает как SkyBox на уровне сервера: файлы любого человека можно выделять, скачивать архивом, открывать и закрывать по ссылке и удалять прямо из общего списка; люди видны сразу, у каждого файла ссылка на его папку
Человек в FileHub открывается на своих файлах со всеми действиями SkyBox: новая папка, перенос перетаскиванием, деревом и «Вырезать / Вставить», удаление папок (содержимое поднимается выше), доступ по ссылке для папки
Файл из SkyBox или FileHub можно перетащить в боковой чат — на переписку, аватар или строку чата — и отправить; страница больше не уходит по ссылке файла
Техническое:
W1: filehub POST: filehub_create_folder, filehub_delete (файлы + папки человека), filehub_public (файлы или папка), filehub_download (ZIP, raw); FilesModule::files_admin_in_scope (порталы админа, гостевые — только админу всех порталов); аудит *_admin; FileHubPage: выделение во всех списках, люди на главной, place у файла, человек на корне, current, new_folder, move_tree «Файлы @person»; bulk_files delete принимает folder_ids[]
W2: cloud.js владеет всеми drop во время перетаскивания плитки (без перехода по ссылке), в данных перетаскивания имена файлов; dock.js принимает Files и application/x-tajelo-cloud-items на переписку, рельс и список — облачный файл уходит по file_id; smoke-cloud-pages 124; filehub route: ответ raw (архив)
v5.32.0
2026-10-09
Что нового:
В SkyBox и FileHub переносится всё: файлы и папки можно перетащить на папку, на папку в списке слева или на шаг пути сверху; папки тоже выделяются галочкой, Ctrl/Shift и рамкой
«Переместить…» открывает дерево папок: выберите место (двойной щелчок — сразу), текущее место отмечено «здесь», папку нельзя положить в неё саму или во вложенную
«Вырезать» и «Вставить сюда»: вырежьте файлы или папки, откройте другую папку и вставьте (или Ctrl+X / Ctrl+V)
Техническое:
V4: FilesModule::folders_move (владелец, корень = null, отказ в перенос в себя/во вложенную); bulk_files move принимает folder_ids[] (аудит file_move_bulk + folder_move), filehub_move_files — folder_ids[] + owner_user_id (аудит folder_move_admin, проверка портала как при переименовании)
CloudFolderTree::rows (id, name, depth, parent) для окна «Переместить»; шаги пути с drop, config.pasteTarget; cloud.js: выделение и перетаскивание папок, запрет сброса в перетаскиваемые и вложенные, дерево вместо select, вырезать/вставить в sessionStorage; smoke-cloud-pages 110; deploy: coturn enable только если не включён (с повтором)
v5.31.0
2026-10-09
Что нового:
Новое окно просмотра: файлы открываются на тёмном полноэкранном фоне — название, размер, «3 из 12», миниатюры внизу, стрелки и свайпы, свайп вниз или «Назад» закрывают
Фото увеличиваются двойным щелчком или касанием, колесом и щипком; PDF и текстовые файлы открываются прямо в окне, остальное — карточкой с кнопками «Скачать» и «Открыть»
Новый плеер видео и аудио: перемотка по дорожке, скорость, звук, «картинка в картинке», полный экран, клавиши; одновременно играет только одно — в просмотре, в постах и в аудио профиля
Техническое:
V3: viewer.js переписан — свой DOM вместо Bootstrap-модалки (группы data-group, зум/пан/щипок, свайпы, history-запись для «Назад», фокус внутри), API TajeloAttachmentViewer v5 (openByElement/openByFileId/close); file_meta: виды pdf и text (html/svg/js остаются file)
media-player.js (TajeloPlayer.create/enhance, хосты data-media-inline=video|audio, совместимый TajeloInlineMedia) вместо media-inline.js (1 723 строки); удалены views/components/viewer.php и media_inline.php с inline-стилями; стили ui-media.css (.mv-*, .mp-*) в бандле; smoke-media-viewer (66)
v5.30.0
2026-10-09
Что нового:
Новости приведены в порядок: каждый релиз — одна запись (дубли убраны), объявления и релизы по дате, фильтры «Все / Объявления / Релизы», по 15 записей и «Показать ещё» без перезагрузки
Админ может очистить все релизы из новостей, с главной и из уведомлений одной кнопкой и вернуть их; история версий их хранит
Пустые места без лишних слов: «Пусто», а блоки «Открыто сейчас» и «Что нового» на главной скрыты, пока в них ничего нет
Техническое:
V2: один релиз = одна строка news(type=changelog); миграция 20261009_0007_release_news_once удаляет type=system; release-builder без --news-title/--news-body и system_entries.json; NewsModule без system seed/sync
News\NewsPage (view-model: SQL-страницы по 15, фильтры, can_manage) + News\NewsItem; views/news.php + views/news/item.php + views/admin_news.php только рисуют; public/assets/js/news.js, public/css/ui-news.css (.nw-*); удалены NewsCenterViewModelBuilder, ReadNewsUseCase, MutateNewsUseCase, news-center.js и старые .news-*/.admin-news-* стили (DI 263→261)
Маршруты news_delete_system/news_restore_system/news_delete_changelog/news_restore_changelog → news_clear_releases/news_restore_releases (ядро 135→133); admin_news под пунктом «Новости»; лента уведомлений — только последний релиз; главная читает 6 строк со ссылками на запись; smoke-news-page (75)
v5.29.0
2026-10-09
Что нового:
Чат доработан: имена и превью диалогов больше не меняются через секунду после загрузки; в превью своего сообщения — «Вы:», в ответе видно сам ответ, а не цитату; при открытии диалога с непрочитанными — линия «Новые сообщения», переписка открывается с неё; дата при прокрутке всплывает сверху и не закрывает текст.
Техническое:
U4: views/chat.php → каркас + views/chat/{list,thread,menus,call}.php, только рисуют view-model MainChatPage (строки диалогов = chat_dialogs_poll, собеседник, контакты, приглашения, конфиг в #msgr-config без CSRF); убраны 8 функций во view, вызовы BootstrapRuntime/UserModule/Format/I18n и ненужная загрузка сообщений и реакций; DirectChat: превью без цитаты, last_mine; messenger.js: «Вы:», линия «Новые сообщения», плавающая дата; smoke-chat-page (46).