Use inline style for icon colors to prevent CSS specificity override
sx-generated color classes were being overridden by Tab card context styles. Switching color to inline style prop ensures icons always render with the correct c...
Add kamo.commerce.enabled=true to k8s configmap
This is the file the CI pipeline actually applies (k8s/configmap.yaml). Required for CommerceService and EngagementLifecycle to load under the new @ConditionalO...
Add KAMO_COMMERCE_ENABLED=true to k8s configmap
Required for CommerceService and EngagementLifecycle to load now that they use @ConditionalOnProperty instead of @ConditionalOnBean.
MatchIfMissing=false 의 상업 콩에 대한 ConditionalOnProperty 추가
CommerceService 및 EngagementLifecycle이 명시되어 있습니다. kamo.commerce.enabled가 설정되지 않을 때 기본적으로 비활성화됩니다. 속성을 구성하지 않는 모든 서비스는이 콩을 건너 뛸 것입니다.
Enable commerce beans via kamo.commerce.enabled property
CommerceService and EngagementLifecycle now use @ConditionalOnProperty instead of @ConditionalOnBean. Set kamo.commerce.enabled=true so they load in SecuritySer...
ConditionalOnBean 을 대체하십시오
***********는 봄의 앞에 평가됩니다 Data JPA는 사용자 정의 저장소 콩을 등록하여 신뢰할 수 있습니다. ***********로 교체하십시오. 재산 해결책 단계에 평가되고 항상 믿을 수 있습니다. commerce (SecurityService)가 application.ym...
Prevent overflow:hidden on tab card from clipping status widget
Move overflow:hidden from the Card to the Tabs wrapper Box so scrollable tabs are contained but the right-aligned status/substatus widget remains fully visible.
Correct hexhead geometry, z-index layering, and viewport clamping
- Fix axialToPixel to use flat-top hex formula (was pointy-top) so honeycomb aligns flat-edge to flat-edge as the hex SVG shape requires - Fix generateRing to...
Use Next.js client-side navigation for all MUI Link components
MUI Link without component={NextLink} renders as a plain <a> tag, causing full page reloads that reset all React state including tool windows. Added component={...
Replace window.location hard navigations with router.push/refresh
All window.location.href, window.location.assign(), and window.location.reload() calls in page components caused full page reloads, wiping all React state inclu...
Move ToolDock above auth gate to prevent tool window wipe on navigation
PresenceWrapper switches its component tree structure when auth resolves (Fragment > children → ChatWebSocketProvider > PresenceProvider > children). This unmou...
임베디드 채팅 모드로 도구 모음 및 검색 변경 적용
ChatBox는 항상 ChatTool를 통해 임베디드 모드에서 렌더링됩니다. 이동하기 검색 필드와 스크롤-to-bottom 버튼으로 도구 모음을 호출 임베디드 섹션으로 변경은 도구 창에서 볼 수 있습니다.
Data-chatbox-root에서 HexHeadGroup selectors를 data-tool-window로 업데이트하십시오
도구 창 시스템은 ToolWindowShell에 data-tool-window를 사용하지만, HexHeadGroup은 여전히 풋프린트 검출을 위해 data-chatbox-root를 쿼리했습니다. 이것은 hexheads가 벌집을 끊는 어떤 열린 공구 창을 볼 수 없습니다 정렬, 랩 - 라...
채팅 UI 폴란드어 - 입력 내부의 기본 색상, 이모티콘, 라운드 보내 btn, hex 상태 색상
- 부서 탭 및 chatbox 헤더 사용 --컬러-primary 대신 hardcoded 녹색 - Emoji Picker 버튼은 채팅 입력 필드가 오른쪽 정렬 - 보내기 버튼은 flexShrink를 얻게됩니다.0은 타원형으로 스징을 방지하기 위해 - HexHead 국경: 온라인으로 녹색,...
채팅 시스템 개선 - 편집 스핀, hex 마스크 교체, 색상, 최대 분화
- 편집(backspace/delete) 대 입력을 감지하여 HexHead spin을 트리거합니다. - 태핑 / 편집 중 경계와 함께 돌진 헥스 클립 마스크 (아바타는 강직히 유지) - 변경 부서 제목 헤더 및 chatbox 제목 바에 #22c55e (온라인 녹색) - 극대화된 상태로 ...
새로운 OTK 세션과 일치할 때 *** 세션이 유효하지 않습니다
유효 경로는 Redis에서 기존 *** 세션을 삭제했습니다. OTK를 찾고 하기 전에. OTK가 같은 세션에 점유 할 때, 검색은 "찾지 못하거나 만료되지 않습니다." 현재 위치 ID가 새것과 다릅니다.
Cross-subdomain WebSocket auth를 위한 질의 param에서 ***
읽기 *** ID 에서 ? *** = 쿼리 매개 변수 먼저, 다시 떨어지기 제품정보 이것은 internal.kamocrm.com에 프론트엔드를 허용한다. 웹소켓은 크로스 도메인 쿠키없이 media.kamocrm.com에 연결됩니다. Interceptor는 Redis에 직접 세션을 검증합...
패스 *** Cross-subdomain WebSocket auth에 대한 쿼리 파라마운트로 ID
Cross-domain 쿠키에 의존하지 않는 대신 subdomains), *** 쿠키 클라이언트 측을 읽고 쿼리로 전달 media.kamocrm.com 웹소켓에 연결할 때 매개 변수.
.kamocrm.com 으로 설정 *** 쿠키 도메인 .kamocrm.com 을 cross-subdomain sharing
쿠키는 명시되지 않은 도메인없이 설정되었습니다. WebSocket 인증에 대한 media.kamocrm.com에.
.kamocrm.com 으로 설정 *** 쿠키 도메인 .kamocrm.com 을 cross-subdomain sharing
*** 쿠키는 명시된 도메인없이 설정되었습니다. 기본적으로 내부.kamocrm.com. 이 쿠키를 방지하여 전송 webSocket handhake 도중 media.kamocrm.com, 모든 WS 연결을 일으키는 원인이 되는 "No valid *** Cookies found"로 거부됩니...
독특한 소비자 retry와 결합된 stale NATS 소비자
- createNatsMessageHandler() 메소드로 메시지 핸들러 추출 - "Consumer already bound"일 때 고유한 소비자 이름과 재량 논리 추가 서버 재시작 후 오류 발생 - 동서 debug 로깅 청소
채팅 메시징, 존재 추적 및 자동 오픈 문제 해결
- 고유의 NATS 구독을 retrying하여 수신되지 않는 메시지 수정 "Consumer already bound" 오류가 발생했을 때 소비자 이름 - STOMP 연결에 즉각적인 심박수를 전송하여 오프라인 상태를 수정 re-fetching 연결 후에 대량 존재 - 직접 sessionG...
MUI 아이콘 유형 오류를 해결하고 단일 STOMP WebSocket 연결을 공유
- @mui/icons-material에 대한 tsconfig 경로 override를 추가하여 깨진 ESM을 우회합니다. v7.3.1에 있는 수출은 non-existent에 점 ./esm/index.d.ts - ChatWebSocketContext를 작성하여 앱을 통해 단일 STOMP ...
MemberPanelOpen에서 ref를 사용하여 stale 폐쇄를 방지하려면
사용자가 회원 패널을 열 때, 회원을 채팅하고 닫습니다. async session API 호출 반환 전에 패널, 채팅 창이었다 패널이 여전히 열려있을 경우 500px 오프셋으로 위치. 으로 openChat 캡처 된 memberPanelOpen 전화에서 마감을 통해 일어난 시간. ref를...
Remove forced WebSocket headers from media middleware
Traefik v3 handles WebSocket Upgrade/Connection headers natively. Remove forced headers that broke non-WebSocket API requests.
포트 443에 Traefik을 통해 루트 미디어 서비스 트래픽
- 클러스터 내부 서비스 액세스를 위한 MEDIASERVICE URL env var 추가 - Fix getMediaServiceBaseUrl 9 API 경로에서 env var first 사용 - WebSocket 걸이는 Traefik을 통해 media.kamocrm.com:443에 연결...
포트 443에 Traefik을 통해 웹소켓
- service.yaml: 포트 80→8443을 수정하여 pod의 실제 청취 포트와 일치 - ingressroute.yaml : 사용 계획 https + 포트 8443 백엔드 - servertransport.yaml : 백엔드 TLS cert에 insecureSkipVerify 추가 ...
Repository 가용성에 상업적인 콩 조건부를 만드십시오
추가 *********** 참여 생활주기 and CommerceService 그래서 그들은 상업 저장소 때만 로드 스캔. unsatisfiedDependencyException 을 방지 com.kamo를 스캔하는 MediaService는 아니지만 commerce repos를 사용할 수 ...
Add system account to all NATS configs
Add $SYS account with admin credentials to k0m1, k1m1, and k2m1 NATS configs. Enables nats CLI cluster management operations (peer removal, step-down, etc.) for...
NATS 연결을 위한 클러스터 내부 DNS 사용
WireGuard IPs에서 기본 NATS URL 변경 (100.64.x.x) nats.kamo.svc.cluster.local 서버. 원격 노드 (k0m1, k2m1)는 WireGuard IP에 남아 있습니다.
NATS가 사용할 수없는 경우 앱 시작 허용
JetStream()에서 @ConditionalOnBean을 제거하고 @Nullable을 추가하십시오. 연결 모수. natsConnection()가 null을 반환할 때 (NATS) unachable), 더 이상 UnsatisfiedDependencyException과 충돌하지 마십시오...
Layout.tsx 제거, docCount/historyCount 유형 오류 수정
- incorrectly 추가 된 layout.tsx 삭제 (전체 사이트에 영향을 미쳤습니다) - Revert page.tsx 래퍼 div (필수) - Gradient 배경을 LeadViewClient 루트 컨테이너로 이동 - 수정 유형 오류 : docCount 및 historyCoun...
Update PipelineOrdersTab 공급 업체 필드 이름 백엔드 DTOs와 일치
V.uid → v.id, v.name → v.companyName 및 selectVendorId 유형 변경 CommerceMarketVendor DTO와 일치하기 위해 숫자에서 문자열로.
Align TypeScript 유형과 백엔드 DTOs for commerce 시장
CommerceMarket, CommerceMarketVendor 및 VendorCategory 유형 스크립트 인터페이스 사용 잘못된 필드 이름 (uid/name vs id/title, name vs companyName, websiteUrl 대 웹 사이트, 설명 대 노트). 견적 요청...
Pipeline 시장 적재 및 시장 관리자 레이아웃 간격
Pipeline은 getPOSConfig() 때문에 "No commerce 시장 형성"을 보여주었습니다. 결코 시장 영역을 반환. 지금 commerceMarketApi 거래소의 fetches 마켓 직접. 또한 Market & Fields 설정 탭에 고정 간격/패딩 제품 카탈로그 디자인과...
Resolve 'u.map은 POS 설정과 상업 nav 업데이트에 대한 함수가 아닙니다
- commerceMarketApi (getMarkets, getVendorCategories, getMarketVendors, SeedVendorCategories)에 분산 된 배열 추출을 추가하여 API 응답을 처리하십시오. - 모든 6 POS 탭을 포함하는 SettingsStatu...
