Disable Docker BuildKit cache so every pipeline run does a full rebuild
Sets no-cache on both image build steps so npm ci and npm run build always run, even when the source tree is unchanged.
Bust Docker BuildKit cache per commit so npm run build runs every push
Identical checkout trees (e.g. empty commits) reused cached layers and skipped a real Next build. Pass GIT_COMMIT from the workflow and label the image revision...
CockroachDB 분쟁을 방지하기 위해 회원 보안 및 회원 PUT 통화를 직렬화
2개의 동시는 동일한 `members` 행에 serializable 씁니다 isolation 분쟁 - 구성원은 회원이 읽는 동안 행을 읽습니다. endpoint는 (DateUpdated를 통해 통로), 한 트랜잭션을 aborting 오류 40001. 순차적인 호출은 overlap를 삭제...
백엔드 응답 envelope에서 Unwrap 카탈로그 및 계산
getSubscriptionCatalog는 { 카탈로그를 반환합니다 : {...} } 그러나 직접 던지기 으로 SubscriptionCatalog, 카탈로그를 떠나.예정과 계획 선택 단계 공백. countSubscription에 대한 동일한 문제 가격 그의 { 계산: {...} } 래퍼...
Fuser 대신에 ss를 사용하여 stale port-forward를 죽이십시오 (k0m1)에 fuser
fuser와 lsof는 주자 주인에 설치되지 않습니다. 사용 ss -tlnp 와 PID 보유 포트 18080을 추출하고 직접 죽일 수 있습니다. 기타 SIGKILL (-KILL)에 pkill를 전환하므로 stale 공정에 의존하지 않습니다. 우아한 신호를 수여합니다.
청소 stale 포트-forward 그래서 취소 번역 작업은 다음 실행을 차단하지 않습니다
Bash는 배경 처리에 신호를 전달하지 않습니다, 그래서 kubectl port-forward outlived 취소 작업 흐름 실행 및 개최 포트 18080, 모든 후속 번역 and rebuild 작업 차단. 수정: 바인딩하기 전에 18080에 기존 포트 포워드를 죽이십시오 (pkil...
페이지의 모든 깨진 위주 값 복원
Salvage-keys 스크립트는 CSS classNames, 인라인 스타일 및 JS를 잡아 114 메시지에 대한 원래 영어 텍스트 대신 템플릿 리터럴 열쇠 spanning 주, kb, 상거래, 계정, 보고, 지도, 조정, 그리고 대시보드 페이지.
계정이없는 org 소유자를위한 빌링 버튼을 설정
Org 소유자가 계획 청구 탭을 열고 청구 계정 없음 존재, 대신 부트 스트랩 프롬프트를 표시 "contact your org 소유자" 메시지. 버튼 호출 POST /api/security/account/ bootstrap-billing (idempotent) 다음 성공에 계정을 다시로...
Restore 리드 페이지 영웅 제목 및 제목 git 역사
heroTitle was 'Hero Title' (주), heroSubtitle was 'flex gap-2' (salvage-keys 실수로 인접한 CSS 클래스 이름을 잡아). 정확한 값은 커밋 10f4e4b에서 회복됩니다.
StatusWindow 레이블 네임스페이스를 추가하고 모든 설정을 수정합니다
- 추가 *********** (50 키) 그래서 설정 nav sidebar는 키 경로 대신 실제 텍스트를 보여줍니다 - 분기별 타입Label ICU 형식 수정: \${branchLabel} → {branch} - 고침 tr() fallback 가드: next-intl는 키 경로 문자열...
Wave 3 변환, 낙하 수정 및 자동 번역 CI
- 파 3을 가로지르는 t()의 모든 하드코딩 영어 문자열을 대체합니다. 구성 요소 (채팅, 클럽 하우스, 지원, 메모, 파이프라인, 리드, 나브 등) - 메시지/en.json (+19 키)로 3개의 파편 - en.json (welcome, tagline, footer 텍스트, acco...
다른 공구 창의 크기 + 색깔 계획 일치
- defaultSize 및 minSize 지금 320x650, 재시동할 수 있는: false (매체 소프트폰, 채팅, 계산기, SMS, AI 채팅) - SoftphonePanel에 의해 사용되는 표준 가벼운 기온 (#fafbfc -> #f5f7fa)에 어두운 슬레이트 기온변화도에서 전...
Locale 근원으로 member.language를 가진 철사 next-intl
URL없이 kamo-internal에서 다음 기반 국제화 추가 로컬 접두사. Active locale는 kamo-locale 쿠키에서 읽습니다. Authenticated member's `language` preference (을 통해 설정 지역 설정 카드 *********** 인프라...
Forward Range header so audio playback can scrub
Without this the VOIPService recording-streaming endpoint always returns the full file (Range header is dropped by buildForwardHeaders), which works for play-fr...
드롭 죽은 masterAccountHolder/isMaster UI, 새로 고침 stale 코멘트
계정 schema 더 이상 masterAccountHolder 또는 per-member isMaster를 운반 flags — 그는 account-as-billing-main과 함께 제거되었습니다. 관련 기사 AccountViewClient는 항상 정의된 "Master 홀더/이메일” 행 ...
Split member APIs; subs' target org; billing-owner add UI 추가
billingApi 분할 회원으로 accountMembers (canManageBilling, isAccountManager) 및 구독회원 (isLicensee, canManageSubscription) 아래 *************** AccountSubscription 이득 Targ...
계정 그룹 -> accountTier; 고객 그룹 노선 -> 고객 층
프론트엔드 및 API 호출은 shared-lib + service와 일치하도록 업데이트되었습니다. AccountGroup의 이름을 AccountTier로 변경합니다. "그룹" naming이 유출되었습니다. 고객 서비스 영역 (가치 가격 계층) 그리고 leftover billing-gro...
AccountBillingMember -> AccountMember; isGroupPlanManager -> isAccountManager
청구 클라이언트와 PlansBillingTab의 유형 수준 이름: - AccountBillingMember 타입 -> 계정회원 - isGroupPlanManager 플래그 -> isAccountManager - 그룹PlanManagerCount 필드 -> accountManagerCou...
언어 추가 + 지역 설정 카드에 기본 통화
회원 프로필의 지역 설정 카드는 이제 편집 가능한 언어 노출 (마케팅 사이트 미러링 22 지원) 및 기본 통화 (searchable Autocomplete) 시간대에. 모든 3 득점을 통해 PUT /api / 보안 / 회원 / {id}. 보기 모드는 네이티브 언어 이름을 보여줍니다 괄호...
Account-based endpoints에 billingApi 클라이언트를 씁니다
billingApi는 이제 **************** 대신에 이야기합니다. /groups/{groupId} 경로. 최고 수준의 유형 이름: - 빌링그룹 -> 계정Billing - 빌링그룹멤버 -> 계정Billing 이름 * - 빌링그룹 구독 -> 계정등록 - 빌링그룹라이센스 -> 계...
Mirror live/snapshot address shape in CartItem2 and DraftOrderItem types
CartItem2 gains **************** and shippingAddress/billingAddress fields populated from the customer's primary shipping/billing AccountAddress profile. DraftO...
/account/new copy-from-lead UX, 전체 이름 필드, 듀얼 폰, 주소; 계정 수준 주소 관리
이메일: - /account/new: per-section "Copy from Lead" 버튼 + 헤더 "Copy all from Lead" 버튼 (When LeadId param) - 이름 단면도: 접두사, 첫번째, 중간, 마지막, suffix - 듀얼 폰 (인용 + 작업) 확장 및 ...
Production-grade History + 음성 메일 탭 미디어 플레이어 도구
역사 탭 (SoftphoneHistoryTab.tsx): - 패널의 스크롤 컨테이너 내부 IntersectionObserver를 통해 무한 스크롤 - 필터 칩: 모든 / 인바운드 / 아웃바운드 / Missed / 녹음 - 화상 진찰 측이 기록 행이 있을 때 기록적인 아이콘 - Per-r...
역사 패널에서 중복 필드 역사 제목 제거
탭 라벨은 이미 컨텍스트를 전달한다 — 제목과 자막은 화면 공간을 낭비했다. 다시로드 버튼은 도구 모음으로 인라인으로 이동.
이메일 body bouncing을 일으키는 layout prop 제거
외부 모션. div's `layout` prop fought 와 내부 AnimatePresence height: 'auto' 애니메이션, 이메일에 FLIP 피드백 루프를 생성 불쾌한 높이 (images, table)는 무한하게.
History 탭 추가 - 검색 및 필터로 paginated Audit timeline
- LeadHistoryPanel : debounced search, *********** filter, MUI table with pagination, color-coded event chip, 할당/account 필드에 대한 회원 이름 해상도 - leadApi: getLeadHist...
내 계정 페이지 제목의 동적 회원 유형 라벨
제목은 org-configured를 사용하여 "내 {Member|Team Member} 계정"을 읽습니다. 행동 라벨, 회원 유형이 로드되면 자동으로 전환.
문서 버튼을 DocManager 도구 모음으로 이동
버튼은 동작 prop을 통해 /doc/manager에서만 사용할 수 있었습니다. DocManager로 모든 논리 (state, handler, DOC TYPES, menu)를 이동 모든 임베디드 인스턴스에 나타납니다. 단순 페이지.tsx 그냥 DocManager를 사용하지 않는 작업 p...
항상 doc manager 페이지에 문서 버튼 만들기
GetMemberId() 제거 > 0 버튼을 숨겨져 있는 가드 useUserInfo 로딩 창. 페이지는 이미 뒤에 auth 그래서 아니 고객 측 회원 확인이 필요합니다.
Restore 조직은 실수로 제거
organization.id는 handleCreateDocument 요청에 여전히 필요합니다. 몸; isDocsEditor 상태만 제거되어야 합니다.
Create Document button to all 로그인 회원
Org 기능 플래그 체크 (isDocsEditor → isDocs → hasFeature DOCS) org 기능 사용 deprecated 키 유형 때문에 false를 반환했다. 단추는 유효한 memberId를 가진 어떤 일원든지에 지금 보입니다; 기능이 사용할 수 없는 경우 backen...
국제 지원 - CountrySelect, LanguageSelect, Subdivision 모든 형태의 필드
- 재사용 가능한 국가 선택 추가 (207 국가, 플래그 아이콘), 언어 선택 (26 언어, 플래그 아이콘), SubdivisionField (미국 국가 드롭다운 플래그; 다른 국가 표시 라벨 텍스트 필드) - 국가 상수 (countries.ts, languages.ts, usState...
Datagrid 필드 레벨 필터 및 플로팅 필터 행 제거
모든 열 필터와 부동 필터 입력 행을 해제 그리드는 열 헤더와 데이터 행만 보여줍니다. 필터를 제거 설정할 열 필터가 없기 때문에 sidebar의 도구 패널.
DocManager 도구 모음으로 업로드 버튼을 이동
업로드 트리거는 /doc/manager 페이지의 작업 프로에만 있었다, DocManager가 다른 페이지에 내장될 때 보이지 않는 것을 만들기. 지원하다 DocManager의 도구 모음에 직접 업로드 버튼은 항상 현재 상태에 상관없이. 현재 과다한 외부 제거 page.tsx의 버튼과 글...
임베디드 DocManager에서 스크롤 할 수있는 업로드 옵션을 허용
탭 컨테이너가 overflow:hidden, clipping per-file 옵션 (description, 폴더, doc 타입, 액세스 레벨) 임베디드 컨텍스트 overflowY로 변경 : 자동 및 추가 패딩 MultiFileUploader 루트 그래서 옵션은 항상 도달 할 수 있습니다...
수정 400 피드 오류 및 URL params와 통신 하위 태그 추가
두 배 수정? FeedEndpoint가 이미 포함된 쿼리 params 하지만 fetch appended ?page=... 대신 &page=..., 원인 백엔드가 400로 거부된 URL을 수정했습니다. 모든 기본 탭에 대한 URL 쿼리 params 추가 (?tab=) 및 통신 서브탭 *...
에이전트 필터의 아이콘을 가진 'All Leads'실제 메뉴 아이템
- placeholder를 ALL 로 비가치 아이템을 대체하십시오. 모든 리드가 선택될 때 공백을 결코 보여줍니다 - 모든 리드 및 PersonOff 아이콘을 추가하여 할당된 리드에 추가 - ALL 값에 할당된 배당을 올바르게 게이트에 필터 로직 수정