UseMeeting を OTK を生成し、ミーティングウィンドウを直接開く
バックエンドミーティング API エンドポイントはまだ存在しません - ミーティングレコードをスキップ 今作ってみる すべてのクリックハンドラにエラー処理を追加して防止 クライアント側のクラッシュ.
Add MEET に FeaturesManager アイコン/カテゴリマップとガード ChatBox ミート ボタン with isMeet check
Janus ベースの WebRTC 統合 (useWebRTC, VideoCallPanel, コール API ルート) を削除します
古いJanus WebRTCボイス/ビデオ/スクリーン共有コードを削除 KamoMeet(Meet-based)の交換。 useWebRTC ホック、VideoCallPanel を削除します。 CallInitiationListener と /api/webrtc/ の全てのルート。 ChatBox コールをクリー...
可視性チェックボックスと列車AIが独立制御をトグルする
記事にアクセスできる可視性(メンバー、チームメンバー、パブリック)制御 KB UI では トレインAIは、RAGインデックスの親ではなく、別のトグルです 可視性チェックボックス.
リアルタイムの未読メッセージインジケーターでチャットメンバーのカウントを置換
- NavTopバッジは、オンラインメンバーカウントではなく、完全に未読メッセージを表示します - --color-primaryテーマ変数から得られるチャットボタンのアイコン色 - インタラクションセンターのメンバー項目は、未読メッセージカウントバッジを1人表示 - UnreadContext は、WebSocket...
トレーナーAIのトグルとオーディエンスの可視性チェックボックスをKB記事エディタに追加
AiEnabled マスター toggle をメンバーの可逆可視性チェックボックスに追加します。 チームメンバー、および行動標識の設定からorgのカスタマイズされたラベルを使用して公開します.
内部のK8s URLを使用して、非KamoCRMのorgsのavatarアップロードを修正
API プロキシは、すべての org に対して、外部 URL (https://api.{domain}) を計算していました。 これはKamoCRMのために解決しました. API SERVICE URL env var を直接使用 内部ルーティング。 また、APIServiceで上流X-Forwarded-Hostを...
Re-fetch notes after create/update to show decrypted content in preview
The backend returns encrypted content/contentPlain in POST/PUT responses, causing NoteCard previews to display ciphertext until page refresh. Now re-fetches via...
Disable all auto-link behaviors in KB editor to prevent paste-as-hyperlink bug
The linkExtension singleton from @lexkit/editor retains internal paste handler state across component remounts. Disabling autoLinkUrls, autoLinkText, and linkSe...
Prevent KB editor link extension state leaking between article creates
Move Lexical extensions from module-level singletons into a factory function called via useMemo per component mount, so each new article gets fresh extension in...
Add infinite scroll pagination to classic email view
Classic mode only loaded the first 50 messages with no way to see older ones. Wire up the existing VirtualMessageList onLoadMore/hasMore/loadingMore props so pa...
Accept large CockroachDB IDs in org Zod schema
The org ID from unique_rowid() exceeds JS MAX_SAFE_INTEGER, causing z.coerce.number().int() to fail with "too_big". Now accepts number, bigint, or string to han...
Accept UUID strings for feature IDs in org Zod schema
The OrgFeature schema required id to be a coercible integer, but the backend returns UUIDs. This caused a ZodError on every layout fetch, falling back to the ha...
Always refresh org context after any app toggle, not just completed-stage
POS and other non-completed apps also affect the UI (e.g. Pipeline in NavPri). The stage check was preventing the refresh for these apps.
Update all fallback feature lists and gate Pipeline/Chat/LeadStatus
Root cause: layout.tsx and org API route had hardcoded fallback feature lists with only 6 old apps (missing VOIP, AI_SUPPORT, SUPPORT, KB, NOTES, DOCS). When th...
Show CC and BCC in sent item email previews
Add bcc field to EmailMessage type. ThreadDetailView now displays BCC recipients when present (typically in sent folder copies).
Remove legacy /email iframe page
This page only embedded mail.kamocrm.com in an iframe. The built-in email client at /messages replaces it entirely.
Email nav icon now links to /messages instead of legacy /email iframe
The /email page embeds mail.kamocrm.com in an iframe (legacy webmail). The actual built-in email client is at /messages. Updated NavPri to point to the correct ...
Surface actual backend error message on feature toggle failure
Enable/disable now parses the error response body and shows the real error in the toast instead of a generic message. Helps diagnose what's actually failing on ...
Restore org context refresh after toggling completed-stage apps
Without router.refresh(), the org context stayed stale after enabling apps — NavPri, homepage, and settings never showed the newly enabled features. Now refresh...
Gate all feature cards and settings sections by org feature flags
Homepage: Documents card now uses isDocs (not deprecated isStorage/isDocManager), Calendar gated by isEmail, Notes gated by isNotes. Settings page: Commerce se...
Remove router.refresh() from feature toggle to prevent page reset
router.refresh() was causing the page to re-render and reset the active tab back to "Available" on every toggle. The cache invalidation and loadFeatures() call ...
Invalidate org cache after feature toggle to reflect changes immediately
The org API route caches organization data in Redis for 24h. After enabling or disabling an app, the stale cache caused feature flags to remain false, making se...
Add settings pages for HRS, Docs, Support, KB, Notes, and Chat
Create ComingSoonTab shared component and 6 new feature settings pages with coming soon placeholders, feature flag guards, and help tips. Links from FeaturesMan...
Auto-refresh UI after feature toggle and role changes
FeaturesManager and SecurityRoleManager now call router.refresh() after mutations to re-fetch org context and user session data, reflecting permission and app c...
Gate all nav links and settings pages by org feature flags
NavTop: hide AI chat, softphone, SMS, credits, notes, calendar, and contacts links when their corresponding app is disabled. Settings pages for CRM, Email, Phon...
Implement app management UI with backend integration and dynamic permissions
Rewrite FeaturesManager to use backend API for app enable/disable with root-org gating for in-dev apps. Update NavPri to gate all nav items by org feature flags...
Sync settings nav with actual tab definitions across all pages
Add missing Mailboxes and CalDav/CardDav entries to email section in both the settings main page and the NavPri slide-out drawer. Fix Account section card linki...
Split mailboxes tab into sub-tabs for primary, aliases, shared
Primary Mailboxes, Email Aliases, and Shared Mailboxes are now each under their own sub-tab within the Mailboxes settings page, matching the existing sub-tab pa...