임상 권리는 ungrantable이었습니다
권한 편집기는 활성화된 앱당 하나의 섹션을 렌더링하고 각 역할의 필터링합니다. 그 섹션의 serviceType에 의해 권리. EHR 섹션이 없었다, 그래서 모든 ~30 임상 권리는 아무것도 일치하고 침묵적으로 모든 편집기에서 떨어졌다 — 보안 역할, 직책, 부서. 그것은 licensi...
읽지 않은 읽지 않은 읽지 않은 상태 제거
AI 읽지 않은 배지의 kamo-internal 제거와 결합 : 계산 결코 회원에게 아무것도 행동하지 말했습니다 (노 푸시 채널이 다시, 그래서 non-zero는 "당신은 그것을 완성하기 전에 창을 극소화했습니다"), 그래서 두 개의 엔드 포인트가 너무 간다. 드롭 GET /api/a...
AI 읽지 않은 계정 표시를 완전히 제거
그것은 아무것도 행동 할 수없는 회원에게 말했다 : AIService는 푸시 채널이 없습니다. 조수가 답합니다. 그래서 비제로는 "당신은 최소화 창문이 완성되기 전에"- "너희가 기다리고 있습니다." 지원하다 앞에, 결코 행해; 이것은 그 개정입니다. AI 액션 버튼에 nav 배지를 ...
/network의 클릭으로 새로운 작업 공간이 열립니다
Org를 사용하지 않는 양식을 만들고, 일을하고, 그 다음 아무것도 할 수 없었다 : 새로운 탭, 그리고 "Create Organization"을 읽는 버튼. window.open ran 멀티 초 후, 그래서 사용자 제스처는 뒤에 서 그 브라우저 그것을 차단, null을 반환. fal...
자체 제작 세션의 guid를 창의 props에 다시 패치
SessionGuid (launcher / nav / command palette)없이 열릴 때, AiChatTool POSTs 새로운 세션 및 호출 setSessionGuid(guid) 하지만 결코 도구 창 저장소에 말했다, 그래서 창의 props stayed `{}` 영원히. 대화K...
Switcher 컬럼은 솔직히 표시할 수 없습니다
ShowPresence={false}을 대화로 전달합니다. 팬 산. 이 열 아래 렌더링 ToolDock, sibling of **************** (ToolProviders.tsx의 자신의 doc 주석 참조) 오히려 후손가락보다, 그래서 어떤 존재 읽다 here can only...
Thread showPresence to rows, and gate prefsLoaded에 빈 상태
- 모든 ConversationRow에 전달된 `showPresence`(기본 true)를 추가합니다. Switcher-column 존재 수정의 팬 측 반 (참고하십시오) ConversationRow는 전체 루트 원인에 대한 커밋/doc을 소유합니다. - 각 최대의 열량, 마운트와 사...
Row honors showPresence, 그리고 TEXT 미리보기의 E.164 보낸 사람 형식
이 성분에 대한 두 개의 전체 branch-review 발견 : - ConversationRow는 항상 ***********를 직접 읽습니다. 스위처 열 안쪽에 장착 (PresenceProvider/의 sibling AvailabilityProvider, 후손이 아닙니다 - ToolP...
Chats 탭은 무한한 높이를 밝히지 만 min-height
Chats-tab motion.div는 `height: undefined`(`minHeight: '100%'`), 그래서 그것의 포함 구획은 자동 고도 및 반전이었습니다 팬의 자신의 `height: 자동에 해결되는 100%` 뿌리. 대신 콘텐츠에 팬 사이즈 clipped, 그래서 그것의...
Close review 라운드 1 에 채팅 스위치 컬럼
- ChatSwitcherColumn : 붕괴 환경의 PUT를 이동 setCollapsed updater를 클릭 핸들러 자체로 설정합니다. 업데이트가되었습니다. impure (그것은 부작용으로 fetch를 발사), 이는 React StrictMode 정확히 확인하기 위해 더블 호출, 그...
Fallback-bucket 플래시를 중지, 더블 클릭을 감시
검토는 pane가 오래된 채팅 목록 구성 요소의 prefsLoaded를 떨어졌다 문: activeBucket는 initialBucket/DEFAULT BUCKET에서 시작되고 덧붙였습니다 useConversationRows 는 첫 번째 렌더링에서 저장 된 환경 설정 GET 별도의 해결 ...
복원 된 창은 어디에서 왔는지 기억합니다
창이 잃는 데 사용되는 스냅 샷 창이 돌아올 것이므로 복원 된 세션의 첫 번째 대화 스위치 도크에 떨어졌다면 hexhead이었다. serializeWindows 지금 (PersistedToolWindow에 옵션)을 통해 preMaximize를 운반합니다. snapshots는 그것을 가지...
텍스트 분기의 재량 폭풍을 중지, 관찰자 재 루트 핀
voipApi.getConversations는 apiCall을 통해 간다, 어떤 non-2xx에 던져 - loadMore의 다른 두 가지 지점과는 달리 fetch()을 직접 확인하고 확인 로그아웃 텍스트 분기는 그 주위에 붙잡지 않았으므로 백엔드 500이되었습니다. unhandled 약...
Pin ServiceJob의 열을 INT8에 결합
테이블의 DDL 수출은 org id,volve id 및 customer uid를 보여주었습니다 INT8 DEFAULT unique rowid() - 참조된 키에서 상속. 3개의 외국 열쇠는, unset를 떠났습니다, 무작위 id 지적을 발명할 것입니다 null이 아닌 경우도 없습니다. ...
이전 커밋의 CRLF 리깅을 중지 memberColor
이전 커밋의 한 단어 doc-comment 편집 (ChatsList를 삭제 참고) LF에서 CRLF까지 전체 memberColor 함수를 다시 wrote: 이 파일 믹스 라인 엔드 (CRLF 위, 그 기능에서 EOF에 LF), 및 편집 도구는 대신 파일의 지배적 인 종료에 터치 된 hu...
상태 변경 및 응답 중지 200
updateWorkOrder는 캐치 내부의 요청된 상태를 파고 (지정 무시), 법인 변경을 저장하고 기존의 값을 보여주는 DTO로 200을 반환합니다. Work-order 스크린은 7개의 상태를 제공합니다, FulfillmentStatus에는 4가 있습니다, 그래서 7개의 전환 중 5개...
Org의 테마 도메인을 중단하고 양식을 동결하면서 작동합니다
마법사는 GET /org/{id}에서 새로운 org의 도메인을 파생했습니다. 즉 endpoint는 법인을 반환합니다. 그리고 그 `domains`는 LAZY입니다. — 트랜잭션 밖에 null로 serialized — 그래서 파생된 를 통해 "{alias}.kamocrm.com" 때마다 ...
Create return the domain 테마는 아래와 같이 제공된다
콜러는이 작업을 수행하고 시도를 중지 할 수 없습니다. GET /org/{id} 은 엔티티티와 답변, `domains`는 LAZY이고 트랜잭션 밖에 null로 serializes. 그래서 클라이언트가 "{alias}.kamocrm.com"을 통해 조용히 떨어졌다. 팬더 익스프레스의 경...
추적 링크 스트립 클립 자신의 텍스트를 중지
마케팅 도구 -> Tracking Codes 는 회원의 링크 스트립을 eyebrow로 흘렸습니다. 자본을 통해 잘라, 아이콘은 상단과 하단을 슬라이딩, 그리고 그 아래 선 그 후손을 누락. 그것은 사본에 truncation 버그로 읽습니다; 그것은 입니다 Flexbox 하나. 스트립은...
Text-conversations coder 에게 tiebreaker 그래서 묶인 타임스탬프는 떨어지지 않습니다
lastActivityAt, 그래서 정확한 타임스탬프가 제외 된 대화 공유 목록에서 잃어버린, 그냥 잘못. 연습에 접근 가능 lastActivityAt는 대화의 자신의 날짜로 돌아갑니다. 메시지 및 메시지 및 대화 배치는 타임스탬프를 공유 할 수 있습니다. 마이크로초. 표준 keyse...
새로운 작업 공간은 한 번 열려, 준비, 그리고 자체로
Carl 's Jr : 새로운 탭을 생성 한 원인으로 3 개의 결함이 말했다. ?org=kamocrm.com, Kamo의 로고와 org의 색상의 아무도 보여주었다 — 그것의 진짜 로고 및 동안 그 정확한 색상은 MinIO에서 올바르게 제공. 탭을 결코 식별하지 칼의 Jr로, 그래서 포탄...
Delete findConflictingEvents, 결코 줄을 반환하지 않는
4개의 독립적인 결점, 그 결과로 emptied 어떤 것: 그것 필터링된 e.user.id 두 호출자는 회원 ID와 두 개의 열을 전달하는 동안 결코 coincide; e.id !=:excludeEventId는 매개변수가 있을 때 UNKNOWN입니다 모든 새로운 이벤트인 null; e....
Conflict detection 이제 충돌을 발견
Delegates to findBusyForMemberInRange 및 편집 된 이벤트 제외 Java에서 null 제외가 SQL predicate를 독소 할 수 없습니다. 시험은 repository와 asserted 그것의 자신의 통조림으로 만드는 것을 대체합니다 대답은 뒤로왔다, 그...
반복 제어를 제거하면 수집 된 것을 discarded
스위치, 주파수 선택 및 발생률은 달력에 렌더링 페이지와 payload에 도달: composeDraft 결코 읽고 onSave 결코 견적 요청 회원은 주간 반복, 저장을 설정하고 한 이벤트를 얻을 수 있습니다. 오류 및 경고 없음. 플랫폼에서 아무것도 반복 규칙을 확장, endpoin...
"load start" flag에없는 게이트에로드 게이트를 정착
세션 저장소에 두 개의 후속, 실제 결함 중 하나. keepLoaded는 `everLoaded` 플래그에서 전경 Vs-background을 첫번째로 결정했습니다. 이 지상 통행 STARTED. 그 패스는 아무것도 settling하지 않고 반환 할 수 있습니다 — 그것은 아무것도 할 때...
푸시 토큰은 1개의 장치 행에 의해 주장될 수 있습니다, 각 과거 표시에서
MediaService 8a809b3에 Companion, 회원이 동일한 것을 중지 채팅 메시지 세 번에 그들의 전화. 그 변화는 파견 불쾌한 목적지; 이것은 창조되는 중복을 중지합니다. device/register는 새로운 user device tokens 행을 uncondition...
One phone, one alert — collapse duplicate push destinations
Members were getting the same chat message three-plus times on their phone. Registrations are unique on (device_token_id, org_id, push_kind), NOT on the push t...
탭은 실제로 조직 만 이름을 가지고
/network에서 TacoBell을 열기 ?org=kamocrm.com 새 탭에. /validate의 탭 토지, 이 쉘에서 렌더링하는 것은 세션이 존재합니다. 그래서 서버는 아무것도 없습니다. 해결, 플랫폼으로 돌아가, OrgProvider는 탭의 테마로 떨어지는 기록 사이트 맵 Or...
이미지에서 손실 된 배경 수를 복구
commitBackgroundOrder는 STAGING에 이미지를 쓰고, imageBgCount는 방법의 기록입니다 많은 그것은 썼다 — 어느 한 열이 실패의 단일 지점을했다. org 그의 수 갔다 누락 된 세 단계의 이미지는 아무것도 볼 수 없습니다: 그들을 복사하지 않는 제공, 각 ...
오른쪽에 9개의 서비스 업무 종료점
그들은 콜러가 세션을 가지고있는 유일한 검사를 발송, 그래서 어떤 회원의 org는 읽을 수 있고 역할에 관계없이 모든 작업 순서. ASSIGN SERVICE WORK 및 COMPLETE SERVICE WORK는 SW1에 의해 추가되지만 문은 없습니다. 아직 — 종료점은 SW3의 도메인...
9개의 서비스 업무 종료점을 unguarded baseline에서 삭제하십시오
그들은 e6e1d02로 문질러, 그래서 그들의 기본 항목은 더 이상 일치하지 않습니다 unguarded endpoint 및 ****************는 stale에 실패합니다 라인. 제거를 요구하는 것은 실제로 떨어질 것입니다 조용히 성장하는 파일 stale - 368 항목에 359...
고객 중지 *********** 모든 열의 행을 읽는 권리
OR-alternative 로의 VIEW OWN *를 허용하는 모든 엔드포인트 혼자 1 차적인 열쇠에 의해 기록해, 그것에 속한 누구를 검사하지 마십시오: getSubscription, getSubscription주문, getSubscriptionEvents, getInvoice, ge...
Org 참조는 proxy.ts에 속하며, 두 번째 미들웨어 파일이 아닙니다
다음 16은 프록시를 가진 미들웨어를 대체하고, 이 저장소는 이미 proxy.ts를 가지고 있었다 — 그래서 추가 middleware.ts는 빌드를 실패: "Both Middleware file and proxy file are 감지". 내 실수; 나는 이미 일을 한 것을 확인하지 않고...
테마 자산은 해결하는 호스트에서 온다
로그인 화면은 테마에서 조직의 브랜딩을 페인트합니다.<its own domain>. 그 도메인 해결되지 않을 수 있습니다 : org는 존재하고 DNS가 구성되기 전에 서명 할 수 있으므로 브라우저는 존재하지 않는 호스트를 요청하고 화면이 플랫폼에 다시 떨어졌다 로고와 색깔. MinIO...
하나의 탭, 하나의 테넌트 - 공유 쿠키에서 org를 해결 중지
첫 번째 탭과 다른 조직에서 KamoCRM을 열고 첫 번째를 새로 고침하고, 두 번째로 렌더링됩니다. 탭을 닫고 다시 새로 고침하고 돌아 왔습니다. 세션 탭 사이 데이터 출혈, 그것이 무엇인지. 세션 ID는 sessionStorage에 per-tab이지만, 루트 레이아웃은 10 년을 ...
해결하고 배경을 삭제하는 호스트의 열렬한 자산을 Serve
새로운 org가 로고와 색상을 열지 않은 이유를 작동하면서 두 가지 결함이 발견되었습니다. THEME 배송. Assets는 테마에서 요청되었습니다.<org's own domain>. org는 만들 수 있습니다 그리고 그 도메인이 이제 해결하기 전에 입력했습니다. — 고객 유형 delt...
브라우저 탭을 번쩍이는 것을 중지
TabAttention fed navGrandTotal는 1100ms 제목 플래너로. 그것의 4 8개의 addends는 회원이 없을 때 0에 도달하지 않는 수심입니다 뭔가를 읽으십시오: support.tickets (나에게 할당된 양) 서버 측 "읽지 않은 메시지"- SupportPen...
철사 markSmsRead/markAiRead/social 표 독서는 창에
최종 검토 발견 마크SmsRead 및 markAiRead 했다 0 통화, 과 SocialChatWindow는 MarkAsRead/beginViewing을 전혀 호출하지 않습니다. 5개의 대화 표면은 단지 갈 수 있던 읽지 않은 카운터를 발송했습니다 맨 위로 이 디자인은 ChatTool의...
VIEW VOICEMAIL에 voicemail nav 카운트를 엽니 다
**************** 어떤 정통 회원에게 회원 보유VoipConfig는 인스턴스 전체 읽지 않은-voicemail 카운트를 행합니다. VoipVoicemailController는 전혀 권한이 없습니다. 견적 요청 VIEW VOICEMAIL은 이 번호 배지를 매우 행합니다. 할 ...
Route getChatSessions'읽지 않은 주변을 통해 OwnAuthorshipAmbiguity
MediaController.getChatSessions 의 사전 추출 버전 "그 사람이 쓴거야?" 규칙 (rowVisitor != null && callerId **************** 공개를 덮은 것 웹 채팅 케이스. SOCIAL 세션의 방문자 메시지는 아래에 저장됩니다 같은 ...
웹 미디어 경로 TURN 릴레이
브라우저 SIP 경로는 한 번의 하드 코딩 된 공공 STUN과의 연결을 구축 /api/voip/turn/credentials for as a long as a endpoint has presented — TurnController의 자체 javadoc 노트 SIP credential 페...
The app tree's rails 의 scrollbar 에 the viewport
/settings/account?tab=apps는 빈 공간으로 전체 창을 스크롤했습니다. 아래 쉘, 앱 컬럼이 그대로 스크롤하는 동안 자체가 있었습니다. scrollbar와 잘 맞습니다. culprit는 키가 큰 2개의 화소입니다. 아이 앱은 짧은 커넥터를 그립니다. indent와 그...
롤업에서 한 번 호출을 표시하고, unworked 리드에서 500을 중지
두 개의 수정 계정 롤업이 볼 수 있습니다. 전화 번호는 동시에 1개 이상 주인에 접촉 점일 수 있습니다, 그리고 하나의 계정 공유에 두 개의 리드는 ORDINARY 케이스입니다 - 그들은 같은 사람이 두 번 요구, 이는 왜 그들은 하나의 계정에. 더 매치 소유자 당 행을 delibe...
Webhook idempotency gap BL0의 최종 리뷰 닫기
Finding 1 (Critical): 적색한 줄무늬 사건에 잃는 주장 행을 증명, 사전 시도가 완료되지 않습니다. 견적 요청 일시적인 실패 (Yugabyte 40001, Hikari timeout, 독특한-constraint 경주)는 정품과 동일 중복, 그래서 redelivery 대답...
KamoDesktop SSO 링크를 한 번 정확하게 만들 수 있습니다
링크는 URL로 전달되므로 브라우저의 역사와 reopen-closed-tab list, 세션을 오래 살았는지. 이제까지 전체 토큰 창에 대한 적성을 유지하고, 나는 더 넓은했다 5 분에서 8 시간까지 창은 다시 연결 절벽을 고정합니다. 결과, 라이브 게이트웨이에 대한 설명 : 마무리 ...
계정 롤업은 독자가 볼 수있는 것을 넓힐 필요가 없습니다
계정 타임라인은 마지막 커밋이 읽는 방식이었습니다. 문. 회원은 리드를 지명하는 페이지의 리드 메시지가 거부되었습니다. 계정을 열고 그들을 읽습니다. 그것은 여기에 고정, 그리고 시험은 mutation-proven입니다 : 게이트를 우회하면 세 가지가 실패합니다. 규칙 자체가 Lead...
계정 롤업으로 할당, LEFT 가입
리드의 통신을 읽는 것은 할당 된 사람에 문질러. 롤업 그 반환 uids 혼자는 그 문을 적용 할 수 없었다, 그래서 계정 타임 라인 계정을 열 수 있는 모든 리드 메시지에 내장 - 리드 페이지 자체를 포함한 거부. 프로젝트 문이 결정하는 무언가가 있기 때문에 할당서를 운반합니다. 할...
첫 번째 실제 메시지를 목마, 단지 두 번째
shouldThump(undefined, n)는 "첫 번째 렌더링"를 의미하지만, 스팸 헤드의 읽지 않은 진정한 정의를 시작하고, applyUnreadToHeads의 자체 undefined-vs-0 가드를 적용합니다 절대로 정의된 0에 아이들 헤드를 홍보한다. 그래서 첫 번째 진짜 메시...
서버에서 모든 클라이언트 구성 요소를 안전하게 만드십시오
다음 서버 렌더링 클라이언트 구성 요소, 그래서 `window`, `document`, `localStorage`, `sessionStorage`와 `navigator`는 HTML을 생성하는 렌더링 중에 존재하지 않습니다. 구성 요소 몸에서 하나가 ReferenceError를 서버에서 ...
