자동 오픈 핸드오버를 위한 엔드포인트
GET /sessions/chat/auto-open 채팅 대화 이 멤버의 클라이언트를 반환 제기해야 합니다. POST /sessions/{guid}/auto-opened 레코드가 수행되었습니다. 내구성 지원 handover의 반대, 그리고 같은 이유로: 결정 플랫폼에 속해, 하나의 브라...
활동 프레임의 세션 유형을 너무 넣어
읽지 않은/ACTIVITY 방송은 모든 세션 유형에 게시되며 수행되지 않습니다. 주의사항 채팅 목록, 아무것도하지 않고, unseen을 입력 일반 채팅으로 세션 - 그래서 지원 티켓의 첫 번째 활동은 채팅으로 도착 row: false sub-tab, the ticket's system-...
메시지가 도착한 클라이언트에게 말하십시오
미디어 세션의 모든 구성원은 들어오는 메시지 알림을받습니다. 지원 티켓을 지정하면 그 티켓의 세션의 구성원이 됩니다. 더 보기 alert no session type, 그래서 클라이언트는 지원을 말할 수 없다 직접 메시지에서 티켓을 열고 일반 채팅 창을 모두 엽니 다 — 창 티켓의 통제...
AUTO ASSIGNMENT, 에이전트의 화면에 할당된 대화를 제기
채팅 요청 및 제출 된 티켓은 작업의 동일한 단위입니다. 주제 전략은 단지 결정하는 방법 중 하나가 넘겨진. 더 보기 PRE TICKET 특수 케이스가 사라집니다. AUTO ASSIGNMENT 는 온라인에서 가장 저렴한 에이전트를 선택합니다. PresenceService를 통해 웹소켓...
세션을 더 이상 갱신하지 마십시오
Redis 레코드에 대한 만료는 세션입니다. 회원이 끊을 때 로그인. 이 서비스는 KSessionService의 자체 사본을 보유하고 있습니다. SHARED 키와 모든 읽기에 갱신, 혼자 유지 세션 살아 다른 서비스가 결정되었는지 여부를 영원히 - 각 5 개의 서비스 이, 그래서 그들은...
라이브 채팅은 팝업을 통해 주장, 결코 할당되지
Round-robin을 통해 채팅 요청을 추적하는 것은 잘못된 모델이고 그것은 깨어 났습니다. 그것을 해결하는 것이 의미. 지정된 티켓은 청구 가능한 큐를 남깁니다. (SupportQueService는 할당된Agent IS NULL이 필요합니다), 그래서 채팅 할당 허용 팝업은 모든 사...
지정 실패를 중지하는 티켓을 파괴
새로운 티켓 랜을 생성 거래 안쪽에 추적, 그래서 아무것도 그것은 히트 그와 함께 티켓을 압연하고 도움이 필요한 회원은 " 실패 어디에서든지 저장하지 않는 티켓"을 만듭니다. 두 가지는 그것을 명중, 둘 다 latent 채팅 요청이 코드에 도달 시작 때까지 - 라운드 로빈은 효과적으로 ...
주제의 할당 전략을 통해 채팅 요청 경로
지원 채팅 요청은 PRE TICKET로 제출되며 createTicket Skipped 그들에 대한 할당. 감시는 web-chat 위젯을 위해 기록되었습니다, 사전 티켓은 결코 말할 수없는 익명의 방문자입니다. — but an in-app 채팅 요청은 이미 주제를 선택 한 알려진 org의...
공유-library @Lob LONGVARCHAR 수정에 대한 재건
Hibernate의 PostgreSQL 방언은 getLong()를 통해 OID로 @Lob String 칼럼을 읽습니다. Affects 메모, 연락처, 달력, OAuth 토큰, IMAP 암호, 이메일 캠페인 몸, webhook 비밀, Canva 및 소셜 자격.
YugabyteDB의 포인트 및 PostgreSQLDialect 사용
CockroachDB는 YugabyteDB에 의해 대체되었습니다. 연결 문자열에서 이동 cockroachdb-public:26257 yb-tserver-service:5433, 그리고 Hibernate 방언 ...에서 *********** 에 PostgreSQLDialect.
KSessionService에서 CRLF 종료
이전의 커밋은 LF로 파일을 다시로드하고 15 라인 변경을 577-line 전체 파일 diff. 내용이 변경되지 않습니다. 이것은 다시 종료합니다. 역사는 정직하고 동시 편집은 모든 선에 충돌하지 않습니다.
공유 중지 *** idle 사용자를위한 TTL
이 서비스는 KSessionService의 자체 사본을 유지하고 TTL을 slid합니다. 모든 읽기. Gating SecurityService 혼자 따라서 고정 아무것도: kamo-internal 포인트 라이브 채팅, 존재 및 지원 표면이 서비스 및 새로 고침 키보드에서 아무도로 실행을...
BLAKE3-only 주장을 받아들이십시오 그래서 dedup는 올려주기 보다는 더 빠릅니다
링크 endpoint 모두 hashes 요구. 브라우저에는 빠른 SHA3-256가 없습니다. 이미 358 MB 파일을 가지고 ~20 초에 대한 18.8 두 번째 업로드 — 회원 오랫동안 기다려야 할 것은 아무것도 변경하지 않았다. sha3256는 지금 선택적입니다: 공급해, 아직도 가...
다시 업로드하지 않고 이미 저장된 파일을 첨부
3 명의 동료에게 2 GB 비디오를 전달하는 3 개의 전체 업로드. 제품 정보 1개의 객체로 나눌 수 있지만, 각 전송이 완료된 후만 thrown away — 회원은 모든 바이트에 대해 지불, 세 번, 사본을 생성 이미 플랫폼. 두 개의 엔드 포인트는 모든 바이트 이동 전에 정착. /...
한 시간 동안 그것을 잡고 대신 분에 죽은 업로드 실패
connectionUploadTimeout는 읽기 사이의 tolerated SILENCE이며 예산이 없습니다. 전체 이동. 1 시간에서 'match Traefik'로 설정하면 두 개의 혼동됩니다. 업로드는 500 MB의 2 GB 파일과 sat 거기에서 중지, 요청 스레드를 들고 Half...
Tomcat의 60s 연결 타임 아웃이 긴 업로드를 죽이는 중지
2 GiB 채팅 첨부 파일이 거의 4 분 후에 실패했습니다. MultipartException은 bare SocketTimeoutException을 감싸고 회원이 되었습니다. 'Internal Server Error'에 대해서 Tomcat의 disableUploadTimeout def...
스토리지로 스트리밍하여 3 GiB 첨부 파일을 수락
file.getBytes()는 이 큰 업로드를 표시할 수 없습니다. - Java 배열은 단지 중지합니다. 위 2 GiB — 그래서 모든 첨부 파일을 과거에 죽은 OutOfMemoryError에 상관없이 힙의 1 GB는 파일 스프링을 저장하기 위해 1 GB 할당을 필요로했습니다. 디스크에...
Catch OptimisticLockException, 유형 40001 실제로 포장
라운드 3 검토 수정: hibernate-core의 **************** 테스트 LockAcquisitionException (무엇 SQLState 40001 로 변환) 에 대하여 순서에 있는 특정한 유형, 어떤 일반 LockAcquisitionException satisfie...
예외 유형의 충돌을 실제로 던져
라운드 2 검토 수정 : 문 레벨 40001 (일반적인 경우, 감지 내부 executeUpdate() 오히려 커밋에서) 표면 ****** ***********************************************************************************...
Mirror Maven Central and retry, 그래서 하나의 나쁜 바이트는 빌드를 죽이는 중지
시작 수정이 발송되지 않았습니다. 빌드는 "Tag mismatch"로 byte-buddy를 해결했습니다. 누락된 artifact와 같은 것을 읽는 것은 그러나 이 다운로드에 의하여 손상된 mid-transfer입니다 runner의 링크. 그 단지에 대한 아무것도 - DocsService...
반환 409 모든 손실 청구 레이스에, 추가 관리자 청구 경로
라운드 1 리뷰는 수락 팝업 청구 엔드 포인트에 대한 수정 : - 일반 분실 레이스 (loser's isClaimableBy already false post-commit) 이제 TicketAlreadyCl 대상Exception (409) 대신 400 - 티켓 자체 우승자가 idempo...
이메일 저장소 DepartmentService가 필요합니다
MediaService CrashLooped on every pod since shared-lib 1.5.0: 부서서비스는 @Service, 그래서 와일드카드 @ComponentScan("com.kamo")는 이지 여부를 확인 서비스 접촉 부, 그리고 그것은 MailboxReposito...
GET /types/{typeId}/slots 그래서 설정 편집기를 나열할 수 있습니다 슬롯
설정 UI는 항상이 경로를 fetched, 하지만 POST/PUT/DELETE는 mapped, 그래서 Availability 슬롯 탭은 405 및 렌더링 빈. 이름 * /slots/available 이 필터링 없이 타입의 모든 활성 슬롯을 반환 사전 예약 통지 또는 어린이 제한 - 관리...
반복된 params로 timeline 공급자 여과기를 받아들이십시오
웹 클라이언트가 전송 ?providers=facebook,x 한 CSV 값으로. 자주 묻는 질문 VALUE는 %2C로 여행하고, 다시 인코딩은 %252C로 전환; 우리는 한 번 디코드, 더 이상 존재하지 않는 comma에 분할, 전체 필터는 단일 실행 토큰 "Facebook%2Cx". ...
사용자 계정으로 missed-message 이메일 보내기, org mailbox
이 통지는 "당신은 메시지 대기, 로그인 및 그것을 읽었다"고 말했다, 그리고 그것은 mailbox에 전달 된이 조직은 회원 할당 — 그들은 단지 도달 할 수 로그인. 그것을 볼 수없는 사람은 사람을 위해이었다. Recipient 해결책은 지금 사용자 계정 주소 혼자 있습니다; Mem...
모든 대리인에게 읽지 않은 조사 대신에 살아있는 배지를 주십시오
Nav 배지 및 /support?tab=tickets는 다른 질문에 답했습니다. 사이트 맵 org의 모든 티켓 목록; 배지 카운트 읽지 않은 채팅 메시지 정확히 하나의 회원, 해결 된 org 소유자, 및 게시 support.agent.{ownerId} 각 브라우저가 자신의 회원 ID에 ...
Drop 클라이언트는 주제를 보호하고 HEAD에서 빌드를 복구
TWO THINGS, 배송에서 MediaService 메인을 중지합니다. 1. 주는 컴파일하지 않습니다. MediaController:1361 통화 **************** 존재하지 않는: SupportTicketService에 대한 방법은 **************** 90d4...
법적 책임 조사 및 감시 per-member SUBSCRIBEs
법적.패키지.> -> -> ****** ******************************************************************************************************************************************...
한 번 메시지를 발표, 때 전체
행이 저장 된 후 메시지를 마무리하는 두 개의 호출기는 이제 말 createMessage가 발표되지 않음 : MediaController는 이미지 및 출판물을 첨부합니다. Article Author HTML PHP Post Tag Tags Video WordPress 결혼 김사랑 노무현...
업로드 당 한 객체 대신 dedup 파이프라인을 통해 첨부
첨부파일은 자신의 "<imgId>/<fileName>" 객체를 모든 업로드, 우회 content-addressed store 전적으로 — 같은 Logo-draft.png는 한 번에 3 번 첨부 대화는 3개의 목표를 점유했습니다. 지금은 공유 ImgDat로 해시를 업로드, 그래서 동일 내...
통합된 이미징 버킷을 위한 재건
Kamo-shared-library 3045cc3: ImageAssocType.getBucket()을 지금 반환 "imaging" 각 협회에 대 한 물통, 그래서 deduplicated 파일은 한 번 저장 됩니다. 관련 상품 객체는 이 목록의 앞에 migrated 있었습니다. 공유 라이...
STOMP에 릴레이 SecurityService 플랫폼 이벤트
SecurityService는 플랫폼 관리자 표면을 소유합니다 - 시스템 구성, DNS 프로비저닝, 상거래 동기화 — 하지만 WebSocket 엔드포인트가 없습니다, 그래서 모든 화면 그것에 의해 뒷받침은 아무것도 말하지 않고 대신 타이머에 새로 고침 : 닫히는 로난 트레이너 탭 매 4...
Kamo-shared-library 8f3c1ec에 대한 재건
Intake-pool 수정을 선택합니다. LeadService.createLead는 이제 가장 잘 알려진 리드를 플래그합니다. requireAssignment 그래서 수입된 지도는 countAssignablePool에 의해 계산됩니다 그리고 받아들여질 수 있습니다. shared-lib는...
예약 단계 전에 데모 리드 캡처
마케팅 사이트 데모 양식 수집 이름, 이메일, 회사, 회사 크기, 산업 및 메시지, 다음 누구에게도 알리지 않고 스케줄링에 고급. 지도 창조는 단지 안쪽으로 살았습니다 *********** 그래서 예약을 완료하지 않은 모든 방문자 — 모든 방문자 해당 이용 후기에 달린 코멘트가 없습니다...
Zoom 및 Microsoft 팀과의 회의 제공 업체 요약
회의는 Kamo Meets by Construction — MeetService가 미팅룸에 참석했습니다. 이름과 다른 아무것도. 이것은 요약 및 두 개의 원격 제공 업체를 소개합니다. 뒤로. meet/provider 거울 이메일 공급자 층: MeetingProviderResolver는...
Persist MediaService PHI 액세스 트레일 phi access log
채팅 메시지는 Slf4j 기본 작가를 통해 기록되었습니다. §164.312(b) 6년 보존에 대한 14일 로그 스트림의 흔적 의무 - 그리고 "이 대화를 읽으십시오" unanswerable, 로그 이후 스트림은 회원 또는 리소스에 의해 queried 수 없습니다. JpaPhiAcces...
공유 MFA 저장소 스캔
MfaEnrollmentService는 kamo-shared-library의 @서비스이므로 와일드 카드 @ComponentScan("com.kamo") 이 응용 프로그램에서 여부 또는 이지 여부를 구성 서비스는 MFA와 함께해야 할 일이 있습니다. — 그리고 그것의 constructor...
Record chat message reads on the endpoints that return bodies
Sending a message left a row; reading one left nothing. Every chat, support and social thread on the platform renders from a handful of endpoints here, and none...
진행중인 탁월한 업무
단계와 헌신적인 as-is 그래서 아무것도 작동하지 나무에서 uncommitted 남아. 3개의 파일 변경, 353 삽입(+), 4개의 deletions(-)
Flaky egress에 대한 kubectl 다운로드를 Harden [skip ci]
dl.k8s.io 런너의 egress 간에 실수로 중간 전송을 삭제: 컬: (56) OpenSSL SSL read: 해독 실패 또는 나쁜 기록 맥 그렇지 않으면 녹색 빌드에 배포되지 않습니다. 반복적으로 관찰 kamo-signer-monorepo 및 카모 번역 사전. 추가 --retr...
만료 된 와일드카드 비밀 대신 라이브 per-host cert를 마운트
Cert-converter init 컨테이너는 PKCS12 키 저장소를 내장 wildcard-kamocrm-com, 레거시 멀티 산 비밀 cert-manager orphaned 때 그것의 증명서는 per-host 비밀에 repointed. 아무것도 그것을 갱신하고 그것 만료 된 2026...
핸프오프에 인간의 실로 AI 대화를 실시
지원 세션을 생성하거나 재사용하고, AI 성적표를 한 시스템으로 복사 이벤트, 그것을 경로, 그리고 다음에 무슨 일이 있었는지 정직한 방문자를 말한다. Confidentiality는 청중에 의해, 첫번째 통행은 뒤로 얻었습니다. 더 보기 AI의 요약 및 reasonDetail은 방문자...
에이전트-authored outreach를 개방형 차용기 스레드로 허용
AIService의 outreach 파견자 호출. 그것 없이 outbound 경로는 기록된 404에서 종결했습니다 - 문은 접촉을 허가했습니다, 메시지가 구성되었다, 그리고 거기에 그것을 넣어. 소유권은 deliberately를 분할합니다. AIService는 WHETHER에게 터치를...
Cross-org 판매 에이전트를 거부; widen bootstrap 캐시 busting
salesAgentId는 요청 몸에서 unchecked, 그래서 십자가org 또는 dangling 대리인 ID는 WebChatIntegration에 저장될 수 있었습니다. 그것은 안전 만 실패 AIService가 org-scoped lookup으로 에이전트를 다시 읽기 때문에 데이터가되...
채널 + 보고서 LO 가용성 당 판매 에이전트 할당
- WebChatIntegration CRUD 스레드 판매AgentId (null은 할당을 취소) - lo-presence 이제 회원의 가용성Status를 온라인으로 반환하므로 위젯은 bare dot 대신 실제 상태를 보여줄 수 있습니다. Cross-org 조사는 여전히 {online:...