Содержит горизонтальный переполнение в панели просмотра электронной почты до 3-й колонки
Добавить переполненный x-скрытый во внешний контейнер MessageBrowser в качестве жесткой границы Добавить Overflow-x-hidden в графу 3 обертки и Overflow-x-auto в...
Заменить Coqui TTS на Piper TTS (en US-norman-medium)
Модель Coqui VCTK не имеет названных динамиков — замените Piper TTS, который имеет динамики. Точный нормальный [средний] голос. Пипер двоичный (~3 МБ) и модель ...
Reset stale hasAttachments on sync and accumulate correctly
- Reset has_attachments=false at start of bulk sync so stale true values from old false-positive MIME detection are cleared before re-indexing - Accumulate ha...
Предварительно заселить FROM на ответ / вперед и исправить отправить с Адреса
DraftMessage теперь переносится из Адреса, поэтому он перетекает из OpenNewMessage через композитора - MessageBrowser хранит активный почтовый ящик emailAddress...
Поддержка от Address override в отправке
Добавляет из AddressRequest в EmailSendRequest, чтобы интерфейс мог указать alias/shared/mailbox адрес для отправки. Компания SmtpOnlyProvider использует этот а...
Добавить local net для сплит-DNS/LAN клиента RTP
Телефоны в той же локальной сети, что и k1m1, подключаются через разделенный DNS (домен решается на 192.168.4.22 Внутренне. Без локальной сети Asterisk по-прежн...
Настойчивый контакт с магией = исправление памяти и блокировка SIP-сканера в startup.sh
Введите [res pjsip] contact=memory в sorcery.conf перед началом Asterisk; бэкэнд по умолчанию sorcery-astdb SQLite бесшумно отбрасывает все контакты REGISTER - ...
Sub-tab content fills full content-area width
Drop the centered max-width constraint (was 920 / 1200 / 680 / 720 depending on tab) on SubTabShell. The page already lives inside SettingsView's content column...
Fix attachment parsing and hasAttachment false positives
Three fixes to EmailImapService: 1. toEnvelope: narrow multipart check to multipart/mixed only — plain HTML+text emails (multipart/alternative) no longer sh...
Add download button to classic view attachment section
The classic view (MessageBrowser) had its own attachment list that was missing the download button — only the conversation view was fixed previously. Also align...
Add com.kamo.z.shared.commerce to EnableJpaRepositories scan
**************** (required by **************** in the shared library) lives under com.kamo.z.shared.commerce but was not included in the JPA repository scan, ca...
Правильный макет, прокладка и логотипы провайдера
Установка/установка интервалов: - Все шесть вкладок (Поставщики, Расширения, Пользователи телефонов, Устройства, Голосовая почта, Здоровье) Теперь оберните их с...
Correct field name and type in getFromAddresses response
Backend was sending 'email' key but frontend expected 'address', and sent type 'shared_mailbox' when frontend expected 'shared'. Also fixes hasMailboxes flag wh...
Load FROM addresses from accessible mailboxes and aliases
Replaces the broken getFromAddresses() endpoint (which sent 'email' instead of 'address') with getAccessibleMailboxes() + listMemberAliases(), matching the same...
CockroachDB-совместимый синтаксис DROP INDEX CASCADE
CockroachDB отклоняет альтернативную таблицу ... DROP CONSTRAINT для ограничений UNIQUE: нереализованный: не может отказаться от ограничения UNIQUE «uk org oau...
Включите com.kamo.z.shared.commerce в репозиторий
Последняя камо-общая библиотека распространяется **************************** (donotmodify.dao.services), в зависимости от конструктора ************************...
Добавить кнопку загрузки вложения и разъединить пометку как чтение
Добавьте кнопку Download icon в каждый ряд вложений, чтобы пользователи могли нажать кнопку Загрузка файла вместо открытия только в новой вкладке - Decouple mar...
Переместить hostPath из MinIO (клон FUSE) в локальный /var/lib/pbx
MinIO через клон FUSE не поддерживает POSIX chmod или symlink() Требуется модульной системой FreePBX. Изменились все FreePBX и MariaDB Объемы hostPath от /mnt/s...
Wrap fwconsole/amportal via php for MinIO FUSE hostPath
/var/lib/asterisk поддерживается MinIO через клон FUSE. POSIX chmod, поэтому скрипты fwconsole не могут быть выполнены на этом томе. Startup.sh создает оберточн...
Добавить preStop hook и terminationGracePeriodSeconds
Контейнеры застряли в терминации из-за фона Asterisk Процессы продолжали работать после выхода apache2ctl (PID 1). Престоп-хук посылает SIGTERM до Asterisk, пре...
Добавить bootstrap.php требуется регенерировать /etc/freepbx.conf
Установщик пишет freepbx.conf с datasource='' и require once для bootstrap.php, от которого зависит загрузка класса FreePBX. Наша регенерированная версия отсутс...
Регенерировать /etc/freepbx.conf для перезапуска
/etc является эфемерным (не хост-Пат), поэтому /etc/freepbx.conf написан Установщик теряется при каждом перезапуске. Добавлена ветвь для регенерации это от env ...
Bypass start asterisk, дождитесь розетки управления
start asterisk использует «pidof asterisk», который возвращает ложный положительный результат на под Перезапускается, в результате чего петля ожидания звездочки...
Запустите Asterisk в фоновом режиме, подождите его, затем запустите установщик
Начальная точка.sh не запускает установщик FreePBX — он только запускается. услуг. Startup.sh теперь повторяет этапы настройки точки входа и запускает Asterisk ...
Пусть точка входа обрабатывает установку, а не start.sh
Установщик FreePBX (php install -n) требует наличия Asterisk. бегать. Наш стартап.sh называл его до того, как началась Asterisk. "Ошибка в общении со звездочкой...
Маунт /etc/asterisk, а не /etc для исправления ошибки simplexml
Установка полного /etc в качестве тома hostPath портит расширение PHP Загрузка даже после посева из изображения — simplexml load file не определен во время уста...
Уменьшите пределы процессора до соотношения 2:1, чтобы устранить чрезмерную приверженность
Док 4→1 ядро, джибри 4→2 ядра, либретранслировать 2→1 ядро, ядро бергамота 2→1, ядро поворота 1→0,5. Сохраняет ~7,5 ядер от пределов узлов.
Переход на escomputers/freepbx:17 с правильной архитектурой
у уставшего / freepbx нет изображения FreePBX 17 (заброшен с 2022 года). escomputers/freepbx:17 (обновленный Apr 2026, Asterisk 21 + FreePBX 17) отдельный модул...
Parse formData перед отправкой для предотвращения бинарной коррупции
request.text() на multipart/form-data портит бинарные байты файлов; Передайте парсированные FormData как init.body так впередToApi пропускает запрос.text() и по...
Удалить MinHeight: 100vh, вызывая двойные полосы прокрутки
Высота внешней коробки: 100vh превысила кальций макета (100vh - 56px) контейнер, который вызвал как прокрутку уровня браузера, так и внутреннюю Перелив: быть ак...
Бросьте устаревший заголовок колонки Pay из таблицы моделей безопасности
Когда поле «Самоплачиваемый работник» Kamo Fees было удалено, соответствие TableCell в корпусе строки был удален, но строка заголовка все еще имела <<Член коман...
Реальная причина ошибки GoDaddy 400
GoDaddy теперь возвращает HTTP 400 с кодом = UNABLE TO AUTHENTICATE «Плохой запрос: плохой запрос», когда учетная запись не соответствует их текущему Производст...
Censorship sub-tab теперь делает ATF первым в спецификации
Реорганизует цензурные субтаб-карты в соответствии с запрашиваемым заказом: 1 Алкоголь, табак и огнестрельное оружие 2 Разрешенные возрастные диапазоны членов 3...
Eager-load domains via findByIdWithDomains, drop @Transactional
@Transactional на методе контроллера держит соединение DB открытым Вся загрузка MinIO, а также риск LazyInitializationException внутренняя GetOrganizationById т...
Удалить дубликат ?type= из apiPath
forwardToApi уже добавляет входящий поиск (?type=...) запрос URL. Встраивание ?type = второй раз в apiPath ?type=full?type=full на бэкэнде, поэтому Spring парси...
Восстановите коммутатор почтового ящика для идентификаторов членов int64
Используйте getMemberIdString для почтовых ящиков/member fetch, нормализуйте id/mailboxId от EmailService и отключить коммутатор от доступного личного почтовые ...
URL-адреса логотипа Cache-bust с использованием темыRevision от config.json
DynamicMetaLoader теперь хранит темуRevision в сессииХранение и пожары KAMO THEME CONFIG LOADED после извлечения config.json ThemeLogo слушает для этого события...
URL-адреса логотипа Cache-bust с использованием темыRevision от config.json
DynamicMetaLoader теперь хранит темуRevision в сессииХранение и пожары KAMO THEME CONFIG LOADED после извлечения config.json ThemeLogo слушает для этого события...
Загрузить непосредственно в public/{domain-folder}/img/ вместо постановки ведра
Конечная точка загрузкиLogo писала в жестко закодированный заполнитель «sumtingwong» (незаполненная настройка) вместо фактического публичного тематического пути...
Удаление сбитого узла k2m1 из краевых узлов по умолчанию
k2m1 (10.8.2.1) постоянно снижается. Оставить его в списке отказов Это привело к тому, что повторные загрузки зависли до тех пор, пока новый тайм-аут OkHttp не ...
Применить тайм-ауты для подключения / записи / чтения к MinioClient через OkHttpClient
Без тайм-аутов сбитый одноранговый аналог репликации сайта (k2m1) вызвал MakeBucket и PutObject призывает блокировать бесконечно, всплывая как бесконечное «Savi...
Mailbox Checkbox читает домены org domains, а не домены провайдеров
Предыдущая проводка читать /api/email/domains (email provider domains) столик). Этот стол заполняется только тогда, когда сторонний поставщик электронной почты ...
Unwrap {рынки:[...]} конверт в диалоге Attach
GET/api/security/commerce-markets returns {markets: [...], message: "..."}, Не голый массив. Диалог Attach Commerce Market был посвящен всему миру. Реакция как ...
Слить OTK-redirect в proxy.ts, удалить дубликаты middleware.ts
Next.js 15 отказывается от сборки, когда существуют как middleware.ts, так и proxy.ts. The OTK hand-off redirect, который жил в middleware.ts — отправка любого ...
Читать новый *** от Redis master и dedupe OTK POST
Replica читает пропущенные недавно написанные сессии после обмена OTK, вызывая Ложный сбой и перенаправление входа. Пропустить задержку ввода, когда присутствуе...
Защита от нередких ответов на /platform/orgs
Ответ без массива (пустое тело, оболочка ошибки или обертка {data: [...]}) приземлялся в состоянии оргов и взрывал рендер с E.map не является функцией. Введите ...
Enforce/network вводит правила на стороне сервера
Отклонить, когда целью является текущий сеанс, пользовательский домен SSL не Подтверждено, или целевое членство человека неактивно. Share domain-setup Логика с ...
Требовать членство в организации назначения Id и валидировать членство в организации
Enter-as теперь всегда строит новый *** с клиентом-поставленной целью членский ряд; отклонить несоответствующую организацию/член. Улучшить сеансовую отладку.
Как вы видите судоходство?
Каждое из этих обновлений автоматически попадает в ваше рабочее пространство. Начните бесплатно и смотрите, как он растет неделю за неделей.