이메일 보기 pane에서 3번째 란에 수평한 과잉을 포함합니다
- MessageBrowser 외부 컨테이너에 overflow-x-hidden 추가 - 이메일 내용 영역에 오버플로우 x-hidden을 열 3 래퍼 및 오버플로우 x-auto 추가 - Constrain SanitizedEmailRenderer shadow host with max-w-f...
Piper TTS (en US-norman-medium)를 가진 Coqui TTS를 대체하십시오
Coqui VCTK 모델에는 지명 된 스피커가 없습니다. - Piper TTS와 교체하십시오. 정확한 norman[medium] 음성. Piper 바이너리 (~3 MB) 및 모델 (~60 MB) 첫 번째 실행 및 캐시에 init 컨테이너에 의해 다운로드 /var/lib/piper/{bi...
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...
대답 / 앞으로 및 수정에서 Pre-populate 주소
- DraftMessage는 이제 fromAddress를 운반하므로 openNewMessage에서 흐릅니다. 작곡가에게 - MessageBrowser는 Active mailbox 이메일주소를 저장합니다. 개인적인 우편함) 그리고 그것을 때 오프닝 대답/forward 통과하십시오 - Me...
Send에 지원 fromAddress override
Adds FromAddressRequest to EmailSendRequest 그래서 프론트엔드를 지정할 수 있습니다. alias/shared/mailbox 주소로 전송합니다. SmtpOnlyProvider 지금 헤더의 주소는 현재가 떨어지면 공급자 설정하지 않을 때 이메일.
Split-DNS / LAN 클라이언트 RTP 수정에 대한 local net 추가
K1m1과 같은 LAN의 전화는 분할 DNS를 통해 연결 (도메인은 해결 192.168.4.22 내부). local net없이, Asterisk는 여전히 광고 SDP에서 LAN 클라이언트에 외부 도메인, 공공 IP를 통해 RTP 라우팅. local net=192.168.4.0/24 은 ...
Persist sorcery contact=memory 수정 및 start.sh에서 SIP 스캐너 차단
- [res pjsip] contact=memory as sorcery.conf 앞에 Asterisk 시작; 기본적으로 sorcery-astdb SQLite는 조용히 모든 REGISTER 연락처를 삭제 - 팟 스타트에서 iptables를 통해 알려진 SIP 스캐너 87.246.54.22...
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...
Proper layout, 패딩 및 공급자 로고
레이아웃 / 간격 수정 : - 모든 6개의 탭(Providers, Extension, Phone Users, Device, Voicemail, Health) 이제 px:{xs:2,md:3} py:3 pb:6 패딩을 사용하여 TabShell에서 콘텐츠를 감싸고 있습니다. 단추 패널의 가장...
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는 ALTER TABLE을 거부합니다 ... UNIQUE 제약을위한 DROP CONSTRAINT : unimplemented : UNIQUE constraint "uk org oauth provider"를 사용하지 마십시오. ALTER TABLE DROP CONST...
저장소 스캔에 com.kamo.z.shared.commerce 포함
최신 kamo-shared-library propagates *************** (donotmodify.dao.services)는 생성자 의존성을 가지고 있습니다. *************** *************** 더 보기 서비스는 VOIPService의 구성 요소 검사...
첨부 파일 다운로드 버튼 및 decouple Mark-as-read 추가
- 각 첨부 파일 행에 다운로드 아이콘 버튼을 추가하여 사용자가 강제할 수 있습니다. 파일 다운로드 대신에만 새 탭에서 열기 - Decouple markConversation 스레드 로드 시도 / 캐치에서 transient OTK/network 실패 거짓 실 짐으로 더 긴 표면 오류 또...
로컬 /var/lib/pbx에 hostPath를 이동
Rclone FUSE를 통해 MinIO는 POSIX chmod 또는 symlink()를 지원하지 않습니다. FreePBX의 모듈 시스템에 의해 요구되는. 모든 FreePBX 및 MariaDB 변경 /mnt/shared-files/pbx/에서 /var/lib/pbx/로 hostPath 볼...
MinIO FUSE hostPath를 위한 PHP를 통해 포장 fwconsole/amportal
/var/lib/asterisk는 지원하지 않는 rclone FUSE를 통해 MinIO에 의해 역행됩니다 POSIX chmod, 그래서 fwconsole 스크립트는 그 볼륨에 실행할 수 없습니다. start.sh는 이제 ephemeral /usr/local/bin의 래퍼 스크립트를 생성...
PreStop 후크 및 종료GracePeriodSeconds 추가
컨테이너는 배경 Asterisk 때문에 종료에 갇혀 있었다 apache2ctl (PID 1) 종료 후 실행되는 프로세스. preStop 걸이는 보냅니다 Kubernetes가 컨테이너를 죽이기 전에 Asterisk에 SIGTERM, 깨끗한 포트 릴리즈 및 포트 사용 오류 타격에서 다음 팟...
Bootstrap.php 추가 /etc/freepbx.conf 재생
Installer는 datasource='와 require once로 freepbx.conf를 작성합니다. bootstrap.php의 경우, config.php는 FreePBX 클래스를로드하는 데 따라 다릅니다. 재생 된 버전은 모두 누락되었습니다. "Class FreePBX는 찾을 수...
재시작 /etc/freepbx.conf
/etc는 ephemeral (hostPath), 그래서 /etc/freepbx.conf에 의해 작성된 installer는 각 pod 재시작에 손실됩니다. 다른 지점을 재생 그것은 env vars 때 bootstrap.php 이미 존재, 그래서 관리자 UI 수 있습니다 MariaDB에 ...
Bypass start asterisk, 대신 제어 소켓을 기다립니다
start asterisk는 pod에 false 긍정적을 반환하는 `pidof asterisk`를 사용합니다. 다시 시작, 대기 - Asterisk 루프를 걸기 위해. 지금 start.sh 시작 Safe asterisk를 통해 직접 Asterisk ( stale 소켓 / pid 파일 삭...
배경에서 Asterisk를 시작, 그것을 기다리고, 다음 설치 프로그램을 실행
Entrypoint.sh는 FreePBX 설치 프로그램을 실행하지 않습니다 - 그것은 단지 시작 서비스. start.sh 이제 엔트리포인트 설정 단계를 복제, 시작 배경에 Asterisk는, 그것의 소켓을 준비하기 위하여 기다립니다, 그 후에 달립니다 php는 첫 번째 부팅이라면 아파치...
Entrypoint 핸들 설치, start.sh가 아닌
FreePBX installer (php install -n)는 이미 Asterisk가 필요합니다. 실행. 우리의 Startup.sh는 Asterisk가 시작되기 전에 호출되었습니다. "Asterisk와 함께 시작" 추락. 이제 start.sh 만 기다립니다 MariaDB 및 패치 Ap...
마운트 /etc/asterisk 만, /etc, PHP 간단한 XML 오류 수정
HostPath 볼륨으로 전체 /etc 설치는 PHP 확장을 손상 이미지에서 파종 후도 로딩 — simplexml load file undefined 설치 시간. 지금만 /etc/asterisk는 persisted입니다; /etc는에서 옵니다 이미지 및 PHP 설정 intact 유지. ...
과량 제거를 위해 2:1 비율에 CPU 한계를 감소시키십시오
Docs 4→1 핵심, 지브리 4→2 핵심, libretranslate 2→1 핵심, bergamot 2→1 핵심, coturn 1→0.5 핵심. 저장 ~7.5 노드 제한을 코어.
Escomputers/freepbx:17에 스위치 정확한 건축
피곤 / freepbx는 FreePBX 17 이미지가 없습니다 (2022). escomputers/freepbx:17 (4월 2026일 새롭게 한, Asterisk 21 + FreePBX 17)는 요구합니다 별도의 MariaDB 팟과 한 번 PHP 설치 단계. 변경 사항: - Free...
이진 corruption을 방지하기 전에 파스 formData
request.text() 에 multipart/form-data corrupts 바이너리 파일 바이트; init.body로 parsed FormData를 전달하기 때문에 forwardToApi는 request.text()를 건너 뛸 수 있습니다. 정확한 경계를 가진 청결한 multip...
MinHeight 제거:100vh 두 배 scrollbars 원인
외부 상자의 minHeight:100vh는 배치의 calc (100vh - 56px)를 초과했습니다 브라우저 수준의 스크롤과 내부를 두는 컨테이너 overflow: 동시에 능동태이기 위하여 자동. 고도: 혼자 100%는 충분합니다.
보안 모델 테이블에서 Drop stale Pay 컬럼 헤더
Employee Self-Pay Kamo 수수료 필드가 제거되었을 때, 일치 행 몸에 TableCell은 삭제되었지만 헤더 행은 여전히 '<팀회원> 지불의 세포, 각 몸 란 1개의 구멍에 이동 머리의 왼쪽. orphaned 헤더를 제거하기 그래서 열 / 헤더 폭은 다시 라인.
GoDaddy 400 오류 뒤에 표면 실제적인 이유
GoDaddy는 이제 코드 = UNIABLE TO AUTHENTICATE와 몸으로 HTTP 400을 반환합니다. "Bad Request : Bad Request" 계정이 현재의 일치하지 않는 경우 생산 영역 API 자격 (10 + 도메인 계정 또는 활성 할인 도메인 클럽 회원). 자격은...
Censorship sub-tab 이제는 spec 당 ATF를 첫째로 만듭니다
Censorship sub-tab 카드를 요청한 순서와 일치합니다. 1. 알콜, 담배 & 소화기 2. 허용된 회원 연령 범위 3. 허용된 직원 (팀 회원) 연령 범위 다른 sub-tabs는 이미 정확한 순서 (일반: 기본 정보 / 가시성 / 누가 만들 수 / 플랫폼 설정 / Domai...
FindByIdWithDomains를 통해 Eager-load 도메인, 드롭 @Transactional
@Transactional on the Controller 메소드는 DB 연결이 실행되도록 합니다. 전체 MinIO 업로드, 또한 위험 LazyInitializationException if 내부 getOrganizationById 거래가 해결하기 전에 커밋 org.getDomains(...
ApiPath에서 중복 제거?type=
forwardToApi 이미 appends incomingSearch (?type=...) 원본에서 요청 URL. Embedding ?type= 생성 된 apiPath의 두 번째 시간 ?type=full?type=full at the backend, 그래서 봄은 유형을 구부렸습니다 "f...
Int64 회원 ID에 대한 mailbox 스위처 복원
Mailboxes/member fetch를 위한 getMemberIdString를 사용하여, id/mailboxId를 정상화하십시오 EmailService에서 접근 가능한 개인의 스위처를 구동 우편함 사용할 때 JS 번호 coercion는 ID 정밀도를 스트립 할 수 없습니다.
ThemeRevision을 사용하여 캐시 스트레치 로고 URL config.json
DynamicMetaLoader는 이제 테마를 저장합니다. 세션 저장 및 화재 KAMO THEME CONFIG LOADED config.json을 fetching 후. ThemeLogo 듣기 그 이벤트를 위해 ?v={revision} 쿼리 매개 변수, forcing 브라우저는 캐시 된 ...
ThemeRevision을 사용하여 캐시 스트레치 로고 URL config.json
DynamicMetaLoader는 이제 테마를 저장합니다. 세션 저장 및 화재 KAMO THEME CONFIG LOADED config.json을 fetching 후. ThemeLogo 듣기 그 이벤트를 위해 ?v={revision} 쿼리 매개 변수, forcing 브라우저는 캐시 된 ...
Public/{domain-folder}/img/ 대신 staging Bucket에 직접 업로드
UploadLogo endpoint는 hardcoded 'sumtingwong' placeholder로 작성되었습니다. (unfilled setting) 대신 org의 실제 대중 테마 경로. 지금 로고 ********* 또는 로고 전체로 이동합니다.{ext}. - copyFolder는...
Edge-nodes에서 다운된 k2m1 노드 제거
k2m1 (10.8.2.1)는 영구적으로 아래로 입니다. 실패 목록에서 제거 새로운 OkHttp timeout 불까지 걸기 위하여 올려주기한 올려주기. 기본 정보 이제 k1m1-only; k0m1 콜드 노드는 fallback로 남아 있습니다.
Connect/write/read timeout을 OkHttpClient를 통해 MinioClient에 적용
Timeouts 없이, downed site-replication 동료 (k2m1)는 makeBucket를 일으키는 원인이 되었습니다 그리고 putObject 호출은 무한하게 차단, 무한한 서핑 로고 업로드 UI에 "Saving...". OkHttpClient는 이제 30초 동안 시행됩...
Mailbox checkbox는 org domains, 공급자 도메인을 읽습니다
이전 배선 읽기 /api / 이메일 / 도메인 (email provider domains) 테이블). 그 테이블은 제 3 자 이메일 제공 업체가 될 때만 팝업됩니다. 통합 설정 - Kamo Mail orgs에 대한 빈 - 그래서 양식은 말했다 "확인 된 사서함 도메인이 설정되지 않음" ...
Unwrap {markets:[...]} 첨부 파일 대화 상자에서 봉투
GET /api/security/commerce-markets 반환 { 시장: [...], 메시지: "..." }, bare 배열이 아닙니다. 첨부 파일 상업 시장 대화 상자 전체를 치료 'a.filter가 작동하지 않는 배열과 부는 응답 (그 후 falsely보고 "사용할 수없는 구독...
Merge OTK-redirect proxy.ts, 중복 미들웨어 삭제.ts
Next.js 15는 middleware.ts와 proxy.ts가 존재하는 경우 빌드를 거부합니다. 더 보기 OTK hand-off redirect that live in Middleware.ts — 어떤 요청을 전송 ?otk=... 에 /validate 그래서 OTK는 실제로 소모됩니...
Redis master와 dedupe OTK POST에서 새로운 ***를 읽으십시오
Replica는 OTK 교환 후 신선한 서면 세션을 읽고, 원인 false 실패 및 로그인 리디렉션. otk가 존재할 때 Skip intro 지연; Strict Mode double mount를 위한 in-flight validate 약속을 공유하십시오.
/platform/orgs에 비선 응답에 대하여 감시
비선 응답 (empty body, error envelope, 또는 {data : [...]} 래퍼) orgs 상태에 착륙하고 렌더링을 부는 'e.map은 함수가 아닙니다. Array.isArray 뒤에 국가 갱신을, 여십시오 {data: [...]}를 허용 envelope 및 표면 인...
Enforce /network는 규칙 서버 측을 입력합니다
대상이 현재 세션 org, 사용자 정의 도메인 SSL이 아닌 경우 거부 확인, 또는 인간 대상 회원은 비활성입니다. 도메인 설정 OrgNetworkEnterPolicy를 통해 내 네트워크와 논리; 로드 대상 org와 findByIdWithDomains를 통해 도메인.
Org 회원이 필요합니다
이제 입력하면 항상 새로운 *** 클라이언트 공급 대상 회원 행; 잘못된 org/member를 거부합니다. 세션 디버그 로깅 개선.