비밀번호

우리가 건물을보고, 실시간. 모든 기능, 수정 및 개선은 플랫폼을 통해 배송.

17,933
총 변경
4,614
제품 설명
4,543
수정 사항
32
프로젝트
프로젝트
모든 프로젝트17,933AIService110APIService138BillingService133ConversionService85DaemonService107DocsService189ESigService78EmailService373InitializerService300KBService74KlusterServices546MCPGatewayService43MediaService461RAGService61SecurityService1,523TranslateService45VOIPService173VectorService8kamo-analytics6,157kamo-apps18kamo-asterisk-support19kamo-capcha17kamo-capcha-widget4kamo-internal4,579kamo-login319kamo-marketing585kamo-meet90kamo-nowww18kamo-register206kamo-shared-library1,322kamo-signer-monorepo50kamolos102
필터 유형
모든 유형Build24CI523Chore670Docs226Feature4,614Fix4,543Other6,781Performance136Refactor274Revert23Style48Test70Upgrade1
April 26, 2026
Fixkamo-internal

Probe 마스터 모델 엔드포인트 및 수정 적용모델 org ID

- applyModel.source 기반 게이트를 직접 프로브로 교체 /api/security/master-model on mount; r.ok=false (409)는 org를 의미합니다 분기 유형에 의해 지배된다 — 같은 체크 백엔드 사용 - useAppliedModel에 null을 ...

kamo·4mo ago
Fixkamo-internal

Gate censorship tab options by applied model constraints

- Hide EDIT MASTER MODEL button when org is governed by a branch type (use appliedModel.source instead of unreliable org context branchTypeID) - Hide ATF fiel...

kamo·4mo ago
Fixkamo-internal

Mark-as-read and message fetch for shared/member mailboxes

Classic mode now loads shared mailbox messages via the correct /messages/{folder} endpoint (was calling the non-existent /conversations endpoint). Fetching a fu...

kamo·4mo ago
FixEmailService

Mark-as-read for shared and member mailboxes

EmailController.setFlags now accepts an optional mailboxId query param and routes through resolveProviderWithMailbox so member-mailbox flags are set against the...

Kamo·4mo ago
FixVOIPService

Use extensionId as external ID, not Relay node id

FreePBX returns the same Relay id (ZXh0ZW5zaW9uOg== = "extension:") for every extension because the id field is not populated. Using it caused all extensions to...

Kamo·4mo ago
FixEmailService

ClassCastException을 방지하기 위해 getMessage에서 IMAPInputStream 처리

JavaMail 대신 IMAPInputStream을 반환할 수 있습니다. part.getContent() 메시지 내용이 예쁘지 않은 경우. 더 보기 직접 (String)는 parseMultipart () threw ClassCastException에 캐스팅 영향을받는 메시지, fetch...

Kamo·4mo ago
FixVOIPService

살아있는 schema introspection에 대한 모든 GQL 쿼리 / mutations를 보충

모든 필드 이름과 실제 FreePBX 17 스키마에 대한 유형 확인. 개정의 가득 차있는 세트: 질문: - fetchAllExtensions: 확장에서 non-existent 'voicemail' 필드를 제거 - fetchAllUsers → allCoreUsers { coreUser ...

Kamo·4mo ago
Fixkamo-internal

SelectFolder를 ThreadDetailView로 전달하십시오

chat.folder는 Java ConversationEntity로 항상 정의되지 않습니다. folderIds (text[])는 폴더 문자열 필드가 아닙니다. 이것은 loadThread를 call markConversationRead 및 그 후 이메일 발송:폴더 변경 폴더:undefin...

kamo·4mo ago
FixVOIPService

GraphQL 필드 이름 fetchAsteriskDetails

FreePBX API는 "Did you mean fetchAsteriskDetails?"를 반환합니다. - 건강 이름을 바꾸십시오. 쿼리 및 그 데이터 경로 accessor에 따라 확인합니다.

Kamo·4mo ago
FixVOIPService

XHR/Accept 헤더 및 문자열 응답을 GraphQL 클라이언트로 파싱

FreePBXTokenCache와 같은 패턴: X-Requested-With + Accept: application/json FreePBX의 HTML 리디렉션 응답을 억제하고 모든 3 개의 호출 사이트를 전환 (queryOnce, restGet, restPost) 의 응답Entity<J...

Kamo·4mo ago
Fixkamo-internal

Sync mailbox dropdown 에 기본 mailbox 에 로드

SelectMailbox가 초기화되기 때문에 첫 번째 목록 항목에 기본적으로 드롭다운 mailboxId없이, currentValue가 'personal'으로 해결하기 위해 어떤 옵션이 없습니다. 이제 선택된Mailbox를 1 차 (또는 first) mailbox 접근 가능한 우편함 짐.

kamo·4mo ago
FixAPIService

파일 업로드 크기 제한 500MB

봄 부트는 1MB에 모자 multipart 부속, 배경 이미지를 일으키는 원인이 되었습니다 으로 실패 500 요청에.getParts(). SecurityService의 일치 기존의 500MB의 한계 그래서 APIService는 큰 파일 업로드 할 수 있습니다.

Kamo·4mo ago
Fixkamo-internal

Surface HTTP errors 그래서 업로드 실패가 표시됩니다

Un-OK 상태에 thrown Error를 가진 Silent console.warn를 대체했습니다, 그래서 사용자는 실제 실패 이유 (status + 응답 몸)를 참조 대신 침묵으로 계산을 업데이트합니다. console.log 추가 몇 가지 새로운 이미지가 누락되는지 추적하고 POSTe...

kamo·4mo ago
FixVOIPService

토큰 엔드포인트에 대한 Accept+XHR 헤더와 raw-string 응답 패싱 추가

FreePBX는 클러스터 DNS를 통해 호출 할 때 텍스트 / HTML을 반환했습니다. Host header는 구성 된 PBX HOSTNAME과 일치하지 않았습니다. 더 보기 수락: application/json 및 X-Requested-With: XMLHttpRequest는 FreeP...

Kamo·4mo ago
Fixkamo-marketing

애니메이션 컨트롤을 통해 최소화된 tab 엔트리를 구동

Animate={...} 를 animate={tabControls} 로 바꾸기 생기: tabControls에는 산에 queued 표적이 없습니다, 그래서 단추 체재했습니다 처음 { y : 100 } 위치 (아래 화면). useEffect 추가 명시적으로 y를 시작 위젯State에 key...

Kamo·4mo ago
FixVOIPService

FreePBX API에 대한 정확한 OAuth2 범위 문자열

FreePBX 범위는 최상위 식별자입니다: 'gql' (모든 GraphQL) 과 'rest' (모든 REST). 'gql:read' 형식은 모듈의 GQL을 의미합니다. invalid scope 400 오류가 발생하지 않는 'read'로 이름을 붙입니다.

Kamo·4mo ago
FixKlusterServices

ClusterIP 서비스에 직접 8088 노출

서비스는 항구 80→8088 매핑이 있었습니다. 내부 서비스 *************** (예: VOIPService API 토큰 요청) 포트 8088가 듣지 않았기 때문에 타이밍되었습니다. 클러스터IP.

Kamo·4mo ago
Fixkamo-internal

Trust backend pendingCount, 드롭 클라이언트 오프셋

Backend pendingCount는 이제 읽지 않은 기반 (counts SUPPORT TICKET 세션)입니다. 소유자의 lastViewed보다 더 새로운 메시지). 에이전트가 열릴 때 티켓, markAsRead → 백엔드 방송 → frontend는 새로운 반영 자동 계산. fet...

kamo·4mo ago
FixKlusterServices

K1m1에 대한 누락된 고장2ban-config ConfigMap 추가

배포 참조 실패2ban-config ConfigMap (jail.local + asterisk-security.conf) 하지만 존재 하지 않았다, 팟을 차단 마운트볼륨. 시작에서 FreePBX를 설정하고 방지합니다.

Kamo·4mo ago
April 25, 2026
Fixkamo-internal

MarkAsRead 후 에이전트는 이렇게 lastViewed advances

지원 티켓에, 둘 다 방문자 및 대리인 메시지는 아래에 저장됩니다 같은 systemMember, 그래서 읽지 않은 계정 쿼리는 멤버 agnostic 및 lastViewed에 완전히 의존합니다. 에이전트가 MarkAsRead하지 않는 경우 전송, 자신의 대답은 새로운 방문자 메시지로 계산...

kamo·4mo ago
Fixkamo-shared-library

지원 티켓 필요 회원-agnostic 읽지 않은 수

지원 티켓의 방문자 메시지는 같은 systemMember에 저장됩니다. 그 대리인은, 그래서 기존의 CHAT-session 읽었습니다 queries - m.member.id를 제외한 = :memberId - 항상 0을 반환 지원 세션. 티켓 목록 배지 그러므로 결코 등장하지 않았습니다....

Kamo·4mo ago
Fixkamo-internal

LoadThread retry 버튼을 패스하십시오

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

kamo·4mo ago
Fixkamo-shared-library

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

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

Kamo·4mo ago
Fixkamo-marketing

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

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

Kamo·4mo ago
Fixkamo-internal

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

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

kamo·4mo 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·4mo 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·4mo 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·4mo ago
Fixkamo-internal

ToolProviders의 호이스트 공급자

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

kamo·4mo ago
Fixkamo-marketing

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

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

Kamo·4mo ago
FixKlusterServices

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

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

Kamo·4mo ago
FixAPIService

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

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

Kamo·4mo ago
FixSecurityService

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

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

Kamo·4mo ago
Fixkamo-internal

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

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

kamo·4mo ago
Fixkamo-internal

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

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

kamo·4mo ago
Fixkamo-internal

ToolProviders의 위 호이스트 ChatWebSocketProvider

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

kamo·4mo ago
Fixkamo-internal

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

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

kamo·4mo ago
Fixkamo-internal

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

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

kamo·4mo ago
Fixkamo-internal

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

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

kamo·4mo ago
Fixkamo-internal

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

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

kamo·4mo ago
FixEmailService

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

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

Kamo·4mo ago
FixMediaService

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

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

Kamo·4mo ago
FixMediaService

ChatWebSocketController에서 HashMap 가져오기 복원

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

Kamo·4mo 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·4mo ago
Fixkamo-marketing

SendMessage에 중복 connectStomp 호출 제거

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

Kamo·4mo ago
FixMediaService

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

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

Kamo·4mo ago
Fixkamo-internal

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

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

kamo·4mo ago
FixSecurityService

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

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

Kamo·4mo ago

배송을 보는 것과 같이?

작업 공간의 모든 업데이트 땅은 자동으로. 일주일 후 무료로 시청하십시오.

무료 영원히 시작가격 비교