KamoCRM

비밀번호

모든 기능, 수정 및 개선, 그것은 배로 게시. 출시를 위해 다시 열지 않습니다.

17,500
총 변경
5,986
제품 설명
5,284
수정 사항
30
프로젝트
프로젝트
모든 프로젝트17,500AIService251APIService174BillingService157ConversionService110DaemonService138DocsService223ESigService91EmailService576InitializerService329KBService151KlusterServices740MCPGatewayService251MediaService602RAGService79SecurityService1,847TranslateService62VOIPService249VectorService11kamo-apps26kamo-asterisk-support27kamo-capcha17kamo-capcha-widget4kamo-internal8,349kamo-login335kamo-marketing641kamo-nowww20kamo-register213kamo-shared-library1,657kamo-signer-monorepo56kamolos114
필터 유형
모든 유형Build16CI523Chore774Docs3,254Feature5,986Fix5,284Other994Performance165Refactor278Revert23Style42Test160Upgrade1
April 25, 2026
OtherSecurityService

UploadBackground endpoint에 로깅 추가

Log org/index, 파일 정보, userId, auth 결정, 그리고 MinIO staging 왜 배경 업로드를 추적하는 열쇠는 노후화 물통에서 나타나지 않습니다.

Kamo·6mo ago
Otherkamo-internal

업로드-background 프록시 경로에 로그인

Log org/index, 파일 이름/크기/타입, 업스트림 응답 상태 왜 배경 업로드가 APIService에 도달하지 않는지 진단하십시오.

kamo·6mo ago
Featurekamo-internal

위치 열을 티켓 datagrid에 추가

지원하다 *************** SupportTicketDTO (지금은 티켓 엔터티에 스냅샷 창조 시간 - 여분의 왕복 없음. + 도시/지역/국가 렌더링 도구 끝에서 보이는 IP로; 지위 데이터가 없을 때 em-dash로 돌아갑니다. 티켓에 있습니다. 에이전트 보기만. Ticke...

kamo·6mo ago
PerformanceMediaService

생성에 티켓에 저장 지오, 드롭 GeoLite 읽기

*********** 이제 방문자의 지를 캡처 한 번 ( GeoLookupService를 통해) 및 persists IP/country/city/subdivision SupportTicket 자체. SupportTicketService.toDTO는 티켓에서 지오를 읽습니다. - 아니 ...

Kamo·6mo ago
Featurekamo-shared-library

티켓 엔터티에 Snapshot 방문자 지

VISITOR IP ADDRESS, VISITOR COUNTRY CODE, VISITOR COUNTRY NAME에 추가하십시오. VISITOR CITY, VISITOR SUBDIVISION 열. 티켓 작성 그래서 목록/세부 끝점은 GeoLite 범위 검사 또는 할 필요가 없습니다 자주 ...

Kamo·6mo ago
PerformanceMediaService

Bulk-load 방문객 및 GeoLite 검색 목록

/api/support/tickets list endpoint가 실행되었습니다., 20개의 행의 페이지 당: - 20 *********** 통화 (N+1) - 20은 GeoLookupService.lookup으로 호출되며, 각 범위는 GeoLite 블록 테이블에 대한 (열의 방사) 및 ...

Kamo·6mo ago
Performancekamo-shared-library

Add findBySessionGuidin 대량 로딩

지원 티켓 목록 endpoint에 의해 사용하는 모든 방문자를 fetch N 별도의 findBySessionGuid 호출 대신 하나의 쿼리에 페이지.

Kamo·6mo ago
Fixkamo-internal

LoadThread retry 버튼을 패스하십시오

loadThread는 (threadId, 폴더); 과실 상태 재량 단추만 걸립니다 threadId를 통과, kamo-internal 구조. 전화 일치 서명.

kamo·6mo ago
ChoreSecurityService

회원 JsonIdentity 픽업 kamo-shared-library의 정보 수정

kamo-shared-library b57d156 수정 @JsonIdentityInfo (property = "uniqueId") → 회원에 "id", PUT /api/security/org/{id}에 400 오류를 해결합니다.

Kamo·6mo ago
Fixkamo-shared-library

정확한 JsonIdentity 'uniqueId'의 정보 속성

@JsonIdentityInfo(property = "uniqueId")를 선언했지만 실제 기본 키 필드는 'id'로 지정됩니다. 잭슨 threw 'uniqueId'라는 이름을 가진 속성을 찾을 수 없습니다. 즉, PUT /org/{id}를 사용하는 멤버(예: 조직)을 참조하여 반환 4...

Kamo·6mo ago
FeatureMediaService

SockJS와 함께 /ws/public-chat-native 일반 WebSocket 엔드포인트 추가

/ws/public-chat-native에 SockJS 없이 두번째 STOMP endpoint를 등록하십시오 frontend는 필요 없이 native WebSocket (brokerURL)과 연결할 수 있습니다. sockjs-client library를 사용하여 unload 핸들러를 등...

Kamo·6mo ago
Fixkamo-marketing

SSR 가드를 제거하여 수분 잡기를 유발합니다. 웹소켓을 위한 드롭 SockJS

- Hero.tsx : ParticleField 주변의 Typeof 창 체크 제거 - 이미 ParticleField ssr:false 그래서 감시는 서버/클라이언트 나무 mismatch (React #418)를 생성했습니다 - LiveSupportPanel.tsx : @stomp/sto...

Kamo·6mo ago
Featurekamo-internal

Per-ticket 읽지 않은 배지 + '새 메시지 만 필터

- 티켓 목록은 다음에 읽지 않은 읽지 않은 수를 가진 채찍 배지를 보여줍니다 세션이 에이전트보다 더 새로운 메시지를 보낼 때마다 ticket# 마지막 메시지. - 필터 바에 '새 메시지 만' 필터 스위치를 추가합니다. - TicketChat은 지금 전화합니다. *********** 로...

kamo·6mo ago
FeatureMediaService

방송 읽지 않은 조사에 에이전트에 방문자 메시지

방문자가 지원 메시지를 보낸 후, 최신 읽지 않은 통화를 밀어 ****************에 페이로드 그래서 에이전트의 티켓 목록 실시간 배지 및 navtop 카운터 업데이트. Mirrors 에서 방송 MediaController.sendMessage 회원 가입 채팅.

Kamo·6mo ago
Featurekamo-shared-library

읽지 않은 회원 쿼리에 SUPPORT TICKET 세션 포함

findChatMembershipsByMemberId 이제 CHAT에 대한 회원을 반환하고 SUPPORT TICKET 세션 유형이므로 기존의 읽지 않은 계정 인프라 (getUnreadCountsByMember, /topic/chat/unread/{memberId} 방송, GET ****...

Kamo·6mo ago
Fixkamo-internal

대화가 열릴 때 명확한 읽지 않은 표시

ThreadDetailView 이제 이메일 발송 : markConversation 후 폴더 변경자세히 보기 MailButton은 navtop inbox 배지 카운트를 refetches로 성공합니다. 계정 만들기 최적화된 제로 읽지 않은 항목 선택에 즉시 선택된 스레드 그래서 목록 배지는...

kamo·6mo ago
FixAPIService

Move CORS to Traefik via kamo-middlewares, remove in-app CorsFilter

The CorsFilter @Bean in the Spring app was silently not applying headers after WebConfig.java was removed. CORS is now handled entirely at the Traefik layer by ...

Kamo·6mo ago
Fixkamo-marketing

Use /public/{mainDomain}-{tld} path matching actual MinIO bucket layout

The getThemePath() was generating /domain/{tld}/{split}/kamosite paths that don't exist in MinIO — theme files live in the public bucket under kamocrm-com/, bad...

Kamo·6mo ago
Fixkamo-internal

Break min-w-0 chain to contain email scroll in body column only

Add min-w-0 to outer container and main content flex div so flex children cannot expand to email min-content width, which was causing the page-wide horizontal s...

kamo·6mo ago
Fixkamo-internal

ToolProviders의 호이스트 공급자

ChatWebSocketProvider 호이스트와 같은 루트 원인: SupportTicketWindow 이름 * *********** 및 ChatBox 통화 useUnread().markAsRead(), 하지만 ToolDock 내부의 도구 창 렌더링 ABOVE PresenceWrappe...

kamo·6mo ago
Fixkamo-marketing

BoostHydrationWarning 및 수정 깨진 placeholder 이미지 추가

억제HydrationWarning on <html>는 React 오류 #418을 브라우저에 의해 발생시킵니다. extensions (e.g. 번역, 어두운 모드) SSR과 html 속성을 mutating 고객 수화. placehold.co를 사용하여 via.placeholder.com...

Kamo·6mo ago
FixKlusterServices

허용 /domain / 경로는 테마 IngressRoute에 CORS

Theme.kamocrm.com/domain/...에서 테마 구성은 일치하지 않았습니다 기존의 경로 규칙(만 /public/ 및 /internal/은 허용), 그래서 Traefik CORS 헤더가없는 503를 돌려 브라우저가 fetch를 거부합니다. PathPrefix('/domain/...

Kamo·6mo ago
FixAPIService

게이트웨이에서 중복 필터 및 스트립 업스트림 CORS 헤더 제거

WebConfig.java는 CorsConfig과 비교하여 두 번째 CorsFilter bean을 정의했습니다. java의 bean, 위험 중복 헤더 쓰기. 하나의 CorsFilter가 존재합니다. 앞으로 () 방법은 또한 상류에서 Access-Control-Allow-Origin을 ...

Kamo·6mo ago
FixSecurityService

두 배 접근 통제 Allow Origin 우두머리를 일으키는 원인이 되는 CorsFilter 콩을 제거하십시오

명시된 CorsFilter bean은 두 번째 CORS 필터가 봄에 발생했습니다. Security의 내장 CORS 지원 (CORSConfigurationSource를 사용하는 경우). 두 필터는 기원 패턴을 해결하고 같은 헤더를 썼다, 생성 중복 'https://www.kamocrm.c...

Kamo·6mo ago
Fixkamo-internal

Debug console.log 문 제거 및 누락된 경로 추가

WebSocket에 추가된 모든 임시 디버그 로깅 제거 ChatBox, TicketChat, MemberItem, ChatTool 및 useChatWebSocket; 추가 /help → /support 및 /settings/member → /settings/team-member에 대한 ...

kamo·6mo ago
Fixkamo-internal

긴 주소에서 열 확장에서 메시지 헤더를 방지

헤더의 왼쪽 플렉스 아이는 min-w-0이 없었다, 그래서 긴 깨지지 않는 이메일 from/To/Cc에 있는 주소는 성장하는 최소한도 내용 폭을 강제했습니다, 끌기 헤더 (과 열 레이아웃) 더 넓은. min-w-0, Break-all 추가 주소 텍스트, from/date 행에 flex-...

kamo·6mo ago
Fixkamo-internal

ToolProviders의 위 호이스트 ChatWebSocketProvider

ToolDock (과 같은 도구 창은 SupportTicketWindow → TicketChat) 나무에 ABOVE PresenceWrapper 앉아있는 ToolProviders 내부에 장착 auth/navigation 변경에 해제를 피하기 위해. ChatWebSocketProvider...

kamo·6mo ago
Fixkamo-internal

드롭 섀도 DOM 이메일 렌더링기 그래서 오버 플로우 X 자동 화재

Shadow DOM은 뿌리 원인이었습니다. 넓은 이메일 내용 (fixed-width 테이블) 그림자 나무 안쪽에 기여하지 않고 호스트를 그린 호스트의 레이아웃 상자, 그래서 부모 바디 래퍼의 오버 플로우 X 자동 오버플로를 감지하지 않고 스크롤바를 제작하지 않았습니다. 일반 div +...

kamo·6mo ago
Fixkamo-internal

Align ChatWebSocketContext 가져오기 경로에 매치 공급자

TicketChat 및 ChatNotificationListener는 컨텍스트를 통해 수입 '@/app/contexts/...' alias while PresenceWrapper (제공자) 가져오기 상대를 통해 '../contexts/...' 경로. Next.js 번들러는 이러한 것을 ...

kamo·6mo ago
Otherkamo-internal

TicketChat STOMP 구독 경로를 추적하는 임시 콘솔.log

구독 파이프라인의 모든 단계에서 콘솔 로그 추가 (효과 화재, 가드 패스, 구독() 통화, 첨부 파일SessionSubscription, 클라이언트. 구독하기 /app/chat/subscribe 게시, 메시지 수신). 한 번 거꾸로 실시간 방문자 메시지 버그가 식별됩니다.

kamo·6mo ago
Fixkamo-internal

인라인 스타일 +를 가진 힘 그림자 주인 containment는 포함합니다: 배치

그림자 호스트의 Class-based overflow-x-auto는 믿을 수 없을 것 그림자에 대하여 ':host { all: 초기 }' 리셋, 그래서 넓은 이메일 content (fixed-width table)는 호스트의 과거에 시각적으로 그림이었습니다. 레이아웃 상자와 3-colu...

kamo·6mo ago
Fixkamo-internal

Shadow DOM 내부의 넓은 이메일 내용, 외부

이전 시도 overflow-x-auto 에 빛 DOM 조상 그림자 나무의 시각 때문에 넓은 이메일 내용을 잡을 수 없습니다 페인트 오버플로우는 호스트의 레이아웃 박스에 기여하지 않습니다. 이름 * 넓은 테이블이 과거에 그려진 동안 란 폭에 체재해, 타격 외부 오버 플로우 x-숨겨진 및 ...

kamo·6mo ago
FixEmailService

사용 getHasAttachments() Boolean 래퍼 유형 일치

***********는 Boolean (wrapper), 그래서 Lombok입니다 getHasAttachments()를 생성합니다. 후자의 만 primitive boolean에 대한 존재. 안전하게 취급하기 위하여 Boolean.TRUE.equals ()를 사용하십시오 null의 경우.

Kamo·6mo ago
FixMediaService

JPA 저장소 스캔을 확장하여 상거래 패키지를 포함

새로운 kamo-shared-library에서 가져옵니다 *********** 제품 설명 *************** (com.kamo.z.shared.commerce에서). MediaService는 donotmodify.dao.repos 만 스캔했습니다. 그리고 응용 프로그램은 시작 ...

Kamo·6mo ago
FixMediaService

ChatWebSocketController에서 HashMap 가져오기 복원

이전 refactor는 HashMap 가져 오기를 제거하지만 HandleTyping 여전히 태핑 이벤트 페이로드에 대한 HashMap을 구성, 원인 Forgejo는 '암호를 찾을 수 없습니다. class HashMap'.

Kamo·6mo ago
Fixkamo-internal

이메일 내용에 min-w-0을 추가하십시오 div 그래서 overflow-x-auto 불

Min-w-0 없이, flex-col 아이의 과태 최소한도 폭: 자동차는 해결합니다 min-content, 넓은 이메일 테이블 확장 div 과거 열 폭. 외부 오버 플로우 x-숨겨진 다음 확장 된 div 대신 scrollbar 생산 min-width 설정:0 div를 유지 열의 할당된 ...

kamo·6mo ago
Fixkamo-marketing

SendMessage에 중복 connectStomp 호출 제거

첫 번째 메시지가 새로운 세션을 만들 때, onSessionCreated update props useEffect를 트리거하여 connectStomp를 호출합니다. sendMessage의 인라인 호출 redundant 였고, useEffect 의 splitStomp에 의해 즉시 사망 할...

Kamo·6mo ago
FixMediaService

세션 생성에 NATS 소비자를 활성화하여 메시지 손실을 방지합니다

NATS JetStream 푸시 소비자는 STOMP 클라이언트가 만들 때만 생성되었습니다. /app/chat/subscribe를 보냈습니다. DeliverPolicy로. 새로운, 어떤 메시지가 전에 출판 소비자는 영구적으로 손실되어 있습니다. 방문자 메시지 및 이름 변경 에이전트가 먼저...

Kamo·6mo ago
Fixkamo-internal

실시간 메세지를 떨어뜨리는 reconnect gap

구독 useEffect deps에서 `connected` 제거 채팅박스. 너무 이른, 모든 WebSocket reconnect 트리거 효과 unsubscribe()라고 하는 정리, 세션을 삭제 구독지도 및 /app/chat/unsubscribe를 백엔드에 전송 — NATS→STOMP 브...

kamo·6mo ago
FixSecurityService

시스템 사용자를 허용 org 브랜딩 및 수정 로고 auth

- canManageOrgBranding에 있는 첫번째 감시로 체계 사용자 우회를 etc로 추가하십시오 체계 사용자는 모든 non-parent orgs에 가득 차있는 브랜딩 통제가 있습니다 - bypassed의 raw org-owner-only check가 있는 uploadLogo en...

Kamo·6mo ago
Fixkamo-internal

이메일 보기 pane에서 3번째 란에 수평한 과잉을 포함합니다

- MessageBrowser 외부 컨테이너에 overflow-x-hidden 추가 - 이메일 내용 영역에 오버플로우 x-hidden을 열 3 래퍼 및 오버플로우 x-auto 추가 - Constrain SanitizedEmailRenderer shadow host with max-w-f...

kamo·6mo ago
FeatureKlusterServices

생산 실패 PJSIP 감옥과 지속 상태

- [asterisk] 및 [freepbx-web] 감옥과 함께 실패2ban-configmap.yaml를 추가하십시오. 증가 금지 에스컬레이션 (1h→24h→30d 천장), LAN 무시, 및 사용자 정의 asterisk-security.conf 필터 대상 PJSIP SecurityEve...

Kamo·6mo ago
FixKlusterServices

Piper TTS (en US-norman-medium)를 가진 Coqui TTS를 대체하십시오

Coqui VCTK 모델에는 지명 된 스피커가 없습니다. - Piper TTS와 교체하십시오. 정확한 norman[medium] 음성. Piper 바이너리 (~3 MB) 및 모델 (~60 MB) 첫 번째 실행 및 캐시에 init 컨테이너에 의해 다운로드 /var/lib/piper/{bi...

Kamo·6mo ago
FixEmailService

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...

Kamo·6mo ago
Featurekamo-shared-library

Add resetHasAttachmentsForFolder query to ConversationRepository

Allows sync to reset stale has_attachments flags before re-indexing so corrected MIME detection can rebuild the field from actual attachment data.

Kamo·6mo ago
FeatureKlusterServices

Integrate Coqui TTS with norman voice (VCTK p267)

- Deploy coqui-tts server (VCTK VITS model, CPU-only) as ClusterIP service on port 5002 with model cache at /var/lib/coqui-tts on k1m1 - Inject coqui_tts.agi ...

Kamo·6mo ago
Fixkamo-internal

대답 / 앞으로 및 수정에서 Pre-populate 주소

- DraftMessage는 이제 fromAddress를 운반하므로 openNewMessage에서 흐릅니다. 작곡가에게 - MessageBrowser는 Active mailbox 이메일주소를 저장합니다. 개인적인 우편함) 그리고 그것을 때 오프닝 대답/forward 통과하십시오 - Me...

kamo·6mo ago
FixEmailService

Send에 지원 fromAddress override

Adds FromAddressRequest to EmailSendRequest 그래서 프론트엔드를 지정할 수 있습니다. alias/shared/mailbox 주소로 전송합니다. SmtpOnlyProvider 지금 헤더의 주소는 현재가 떨어지면 공급자 설정하지 않을 때 이메일.

Kamo·6mo ago
FeatureKlusterServices

Add LAN DNS pod for split-DNS on k1m1

Deploys a dnsmasq pod with hostNetwork on k1m1 that listens on 192.168.4.22:53. Overrides pbx.k1.kluster.kamocrm.com -> 192.168.4.22 so LAN phones reach the PBX...

Kamo·6mo ago
FixKlusterServices

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 은 ...

Kamo·6mo ago

배송을 보는 것과 같이?

모든 것이 자신의 작업 공간에서 도착합니다. 무료 플랜을 시작하고 이 페이지를 다시 한 달에 읽으십시오.

무료 영원히 시작가격 비교