SWITCH Model을 사용하여 세션을 자동 재설정할 수 있습니다
handleSwitchModel 항상 UUID-parsed modelId 및 null에 오류, 그래서 세션 자동 모형 선택 mid-chat에 결코 되돌릴 수 있었습니다. Parse 모델 a string: null/empty/"auto" 세션 모델을 삭제합니다 (setModel(null)...
OTKPreAuthFilter에서 모바일 클라이언트를위한 X- *** 토큰을 수락
x-***-Token (마칭 *********** 현재 (X-OTK 없음)이 아닌 세션을 해결하고 설정 같은 요청 속성; 잘못된 토큰은 아무것도 설정, 그래서 컨트롤러 여전히 401로 거부합니다. 세션 데이터 보호는 변경되지 않습니다.
Api 호스트를 통한 Route /api/email + /api/support
(EmailService) 및 지원 (MediaService, /api/media와 같은 상류)는 루트 → 404. 이메일 발송 및 수정 localhost에서 service.url 클러스터 서비스에 기본값. 앞으로() 콜러의 세션만 전달 헤더 (X- *** - 토큰) - X-Intern...
Steward-triggered 대행사-AUS 실행 프록시
POST 추가 *********** — 스튜어드 "Run AUS" read-only underwriting 콘솔이 부족합니다. 연산자 (GD);에 Gated 조직Id 및 행동 회원은 세션에서 SERVER-STAMPED입니다. MLOSUnderwritingService에서 신뢰할 수 있는...
Explicit 우선 순위 그래서 OTA 업데이트 경로는 일반 테마 경로에 승리
Traefik는 규칙 문자열 길이에 의해 순위; 일반 /public / 테마 경로는 더 길다, 그래서 expo-updates 헤더 주입 결코 ran. 우선 순위:100000 승리.
Self-hosted expo-updates headers for Mobile Copilot OTA
expo-protocol-version:1 + expo-sfv-version:0 응답 헤더 그 expo-updates 클라이언트는 필요로 하고 정체되는 MinIO는 방출할 수 없습니다. 더 긴 경로 prefix는 일반 /public / 테마 경로에 승리합니다.
VendorOrder + VendorOrderEvent entities for WS3 공급 업체 주문 척추
그린 필드 3rd-party order-of-record *********** SCRA). VendorOrder = 부분 WORM 동기화 순서 (ClosingArtifact idiom: opaque 납품업자Key/externalRef, 언 정체성, 상태/result 전진; 재주문 새로운...
스탬프 문서는 신선도 시계 (WS1 활성화)
비전 추출 후, 문서의 효과적인 날짜를 propagate (asset.statementPeriodEnd 은행/부동/부동, 고용.payPeriodEnd paystubs) 에 memberDocument.freshnessAsOf. 이것은 MLOS를 만듭니다. 요구 사항 - satisfier ...
Consume @kamo/* 공유 libs, 중복 웹 복사 삭제
kamo-internal now imports shared TS 패키지 그 원래씨 (one - avatarUrlTransform → 재 수출 @kamo/media-core (getAvatarSized) 우르, transformAvatarUrl); ~12 호출 사이트 변경 - 이메일For...
MortgageAmortization — 월별 P&I 대출 조건 (WS6 지원)
대출에 저장되지 않는 한 PITI 구성 요소. 표준 완전히 amortizing 공식 P·r·(1+r)^n/((1+r)^n−1); 직선에 0 비율 degrade; 비독성 주/term는 0.00에 안전하지 않습니다 (제 0에 의해 던지는/divides). Feeds PitiDtiCalcul...
ClosingReadinessEvaluator - 대출 수준 명확한 닫는 문
대출의 의무는 대출의 의무를 대출에 대한 질문에 대한 끝 - 대출 격차 분석 제기 ("서비스 대출 모든 방법 자금 지원"): 명확 하 게 iff Zero advancement-blocking (prior-to-close/fund) 조건은 열려 있습니다; 비 차단을 해제 (prior-to...
QualifyingRatioEngine - 재현 가능한 디티 스톤 (WS6)
4개의 핵심(income, liabilities, PITI/DTI, Reserves)을 ONE으로 계산합니다. QualifyingSnapshot : 수입, 월 채무, 조립 PITIA, front/back DTI, 자격이 된 예비, 예비 달. 이것은 단일 AUS 'dti' 사실의 단독 생...
ReservesCalculator - 자격이 된 모발 컷 → 피티아 달 (WS6)
Derives는 표준 기관으로 실제 자산에서 달을 예비 — 액체 예금 100%년, 중개인 70%의 vested 은퇴 60%의 선물/보석 별도 — 월별 PITIA로 나뉩니다. 순수한 자격을 갖춘 스위트 (income + liabilities + PITI/DTI + 예비) 과감한 최소한은 ...
PitiDtiCalculator - PITI 집합 + 정면/뒤 DTI (WS6)
LiabilityReconciler +를 가진 DTI trio를 완료하는 순수한 비율 핵심 소득 핵심: PITIA = P&I + 세금 + HOI + HOA + MI + 홍수; 정면 = PITIA / 소득; 백 = (PITIA + 부채) / 소득, 비율로. 제로 소득 → undefined...
QualifyingIncomeCalculator - 기본 + 가변 코어 (WS5)
Pure/deterministic 소득 핵심: 기본 급여 = 가장 낮은 보존 가능한 증거 (paystub / W-2 / VOE); 변수 = 2-yr 평균 declining-income 감시 (더 낮은 현재 달리기 비율을 때 아래로 점화하십시오); 총 75 %에서 대여. 각 선은 그것의 ...
책임 Reconciler - 기관 지불 포함 규칙 (WS6 핵심)
Pure/stateless 컴퓨터는 매달 지불에 각 책임을 돌립니다 DTI에 대한 계산, 인용 된 합리적: omitted/paid-off 제외, 항상 포함 된 임대, 설치 ≤10 개월, 회전없이 균형의 5%에 지불은, 그렇지 않으면 말했습니다. 현명한 기초 back-end DTI ('d...
Delta Successors를 위한 Explicit-period 양 spec
RequirementQuantity는 명시된 기간 목록을 얻습니다 (+ deltaJson builder); 현재 필요한 세트가 될 때, 따라서 승계는 범위 될 수있다 "단 8 월을 보내" PeriodCoverageEvaluator는 그것을 존중하고 노출합니다. 필수키(). 순수한/add...
*********** 단일 기간 키 소스로
PeriodKeyFor (date)를 추가하므로 write-path (satisfier 스탬핑) 및 적용 증발기 열쇠 기간 동일하게; 증발기 지금 그것을 대표합니다. Pure/additive, 행동 변화 없음.
Period-coverage primitives for period-aware 문서 수집
기간 인식 컬렉션의 순수, 첨가제 기초 (doc 06 §4) — 은행의 첫 번째 슬라이스 "달 만 수집하지 않은" 수정. Zero 행동 변화, 소비자 유선 없음. - RequirementQuantity: immutable spec {count, periodMonths, cadence,...
호스팅 된 <kamo-chat>로 포크 된 채팅을 대체하십시오. 레거시 프록시 위젯 삭제
Forked AI/live-support React 채팅 교환 (PublicChatWidget + AiChatPanel + LiveSupportPanel + /api/chat/** 서버 프록시 경로) 호스팅, self-theming <kamo-chat> 사용자 정의 요소에서 제공 ***...
My-networks + all-networks에서 X-***-Token 헤더를 허용
getMyNetworks/getAllNetworks는 OTK request-attr 또는 *** 쿠키만 읽습니다. — 장치 교환 한 초를 초과하지 않고 활성 org는 이름/로고. 이제 CallerSessionResolver (OTK attr / X-***-Token을 통해 해결 head...
I18n 다음 intl을 통해 LabelManager 소프트웨어 ID 라벨
리터럴 문자열을 대체하십시오. **************** 지원하다 (번역 사전에 추가). English fallback은 로컬 번역을 포함합니다.
Setup Mobile App 탭에 install-QR (self-hosted APK) 추가
Install/Sign-in toggle: "Install"는 서명된 릴리스 APK에 QR을 보여줍니다 새로운 전화는 download+sideload 할 수 있습니다; "Sign in"는 암호 gated OTK 흐름을 유지합니다.
웹 채팅 통합 디자인 사용자 정의 + 라이브 미리보기
웹 채팅 통합 탭에 사용자 지정 대화 상자를 추가: 편집기 양식 (색상, 복사, 레이아웃, 행동, AI 프롬프트) 왼쪽 및 왼쪽 즉시, 오른쪽에 위젯의 비동기적인 조, 구동 모두 같은 in-memory config에서 모든 편집은 즉시 반영됩니다. -********** 위젯의 cano...
웹 채팅 통합 탭 - 목록, 생성, 스니펫 (BFF + UI)
웹 채팅 통합 설정 탭의 단계 2 코어: BFF 경로 프록시 Phase-1a MediaService CRUD, 유형 클라이언트 및 /settings/features/chat 탭 org 목록 통합, 하나 만들기 (이름 + 필수 웹 사이트 원산지 + AI / 지원 모드), 그리고 원료를 가...
Kamo-register 명예 소프트웨어 auth 로고 + 이름
- DynamicMetaLoader: config.json에서 소프트웨어 정체성 + auth selectors를 읽어, 해결 tab title, persist auth 로고/이름 state to sessionStorage - brand.ts + ThemeLogo : auth-logo i...
Kamo-login 명예 소프트웨어 auth 로고 + 탭 제목
- DynamicMetaLoader: config.json, 설정 탭에서 소프트웨어 정체 + auth selectors를 읽으십시오 해결 된 이름 (authNameBrandSource)의 제목, 세션 저장에 대한 persist auth-logo 상태 - Brand.ts + ThemeLo...
LabelManager 소프트웨어 ID UI + 내부 탭 제목
- 회사 정보 : 소프트웨어 이름 / 짧은 이름 + 로그인 / 등록 이름 + 탭 제목 선택 - 브랜딩: 소프트웨어 전체/간단한 로고 업로드, override toggles, per-surface ID 선택기 (워터마크, navpri, login/register 로고) - 항상 회사 (d...
3-stage org onboarding 지도 (create → 완료 DNS → 입력)
하나의 단계 인식 지침 패널으로 first-org 영웅을 일반화 회원의 소유주 수 + DNS 상태 ( /api/security/org/my-networks에서): create — no child org → 첫 번째 화이트 라벨 org 출시 (/network/create) dns - 1...
이중 회사/software 결심자 + 납품 + 소비
- Organization.ts: OrgContext를 통해 소프트웨어 ID + per-surface selectors 제공 - 브랜드 : **************** (+ vitest, 8건) - ThemeLogo : 로고소프트웨어 / 로고FullSoftware 변형 - NavPri...
소프트웨어 로고 업로드 유형 + config.json bake
- uploadLogo: 명시된 객체 키 스위치 *********** 소프트웨어 업로드를 거부하면 회사 로고를 복제할 수 없습니다.svg - copyFolder: 템플릿 복사에 업로드된 소프트웨어 로고 보존 - config.json: 로그인/등록을 위한 bake 소프트웨어 정체성 + a...
플랫폼 org의 회원을위한 First-org CTA 영웅
홈 출시패드의 상단에 온보드 영웅을 보여주세요. KamoCRM-platform 회원 (팀 회원이 아닙니다) 아직 생성되지 않은 아이 org는 첫 번째 흰색 라벨 조직을 회전. 인기 있는 CTA 버튼과 인라인 'click here' 는 /network/create 의 경로를 모두 연결, ...
TURN-REST credentials 모바일 소프트 폰의 엔드 포인트
GET /api/voip/turn/credentials 민트 ephemeral coturn creds (HMAC-SHA1 이상) "<expiry>:<memberId>" 와 공유된 정적-auth-secret) 그래서 native/cellular WebRTC는 47.181.8.84:3478...
/my-networks에 per-org primaryColor + 로고 URL 노출
각 org 행은 이제 기본 색상 (Organization.colors.colorPri, '#'-prefixed config.json과 파생된 LogoUrl/logoSimpleUrl (theme.<domain>/public/ 로고 및 per-org hex-head 국경 색상.
Snapshot web-chat 통합 지원 방문자 + 티켓
CreateKeyHash (enabled-filtered)에 의해 WebChatIntegration를 해결 부트 스트랩()/AI-prompt resolution)에 한 번 연속 createSupportSession과 스탬프 모두 PublicChatVisitor 웹 사이트 attribut...
FindByKeyHashAndEnabledTrue와 통합 프롬프트 해결 (disabled integration = absent, match bootstrap)
통합 공개 AI 신속한 + 세션 attribution
Per-org에서 public-chat system-prompt 폭포 업그레이드 per-integration: PublicAiChatController 지금 읽기 X-Public-Chat-Key-Hash 헤더 (nullable) APIService에 의해 전달 그것을 전달 *******...
GET /api/public-chat/bootstrap 게이트웨이 경로
기존 proxyWithAuth 파이프라인을 재사용하는 bootstrap 엔드포인트 추가 (key validation + opt-in Origin + PUBLIC CHAT 범위 + 속도 제한 + X-Public-Chat-Key-Hash) 및 MediaService 부츠 스트랩 엔드포인트에...
Public-chat 부트 스트랩 구성 해결자
내부 GET 추가 *********** 해결 WebChatX-Public-Chat-Key-Hash의 통합 및 해결 design/behavior config (WebChatDefaultConfig.merge를 통해 기본 충전 그래서 통합 행이있는 열쇠는 오늘날의 위젯과 같은 여전히 렌더링...
FCM/APNs credentials를 위한 철사 선택적인 mediaservice-push 비밀
선택 `mediaservice-push`에서 FCM 서비스 계정 JSON + APNs .p8 마운트 /etc/kamo/push에 비밀은 동일한 비밀에서 APNs 열쇠 ID/team ID를 놓습니다. 선택 사항이므로 팟은 비밀이 제공 될 때까지 변경되지 않습니다. 둘 다 senders는 ...
꽉 cropped Copilot 아이콘 + 베어 NavPri 항목
Trimmed icon.png (glyph는 프레임의 ~82%를 채우고 집을 지적했습니다) pill, NavPri Entry, Interaction Center 탭 및 QR 센터가 있습니다. 스트립 스 NavPri Entry's pill box 그래서 다른 사람과 같은 벌거 벗은 나방 ...
WebChatIntegration CRUD (최소 키 + 통합, org-scoped)
Org-facing 관리 API for the Phase-2 웹 채팅 설정 탭. 으로 create, mints the underlying PublicChatApiKey (사임 키겐 접근 방식) WebChatIntegration 행과 함께 PublicChatKeyController로 원시...
홈 + NavPri에 "Access Copilot Mobile App"입력 포인트 추가
두 표면은 NavTop이 듣는 ‘open-interaction-center’ 이벤트를 파견합니다. Setup Mobile App 탭의 Interaction Center를 엽니다. 홈 쇼 벽지 컨트롤 아래 라벨 pill; NavPri는 아래의 로고 아이콘을 보여줍니다 시험 pill (확장...
QR, 단선 탭, 로고 왼쪽 헤더, 10분 코드
- 회원은 비밀번호(server-verified via /api/mobile-access-otk, QR이 공개되기 전에 OTK를 채굴합니다. 이미 위탁된 컴퓨터에서 그것을 잡아. - QR/OTK는 지금 10 분 (600s); 카운트 다운 후 다시 잠금. - 1개의 선에 강제되는 탭 상표...