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...
Thêm ràng buộc độc nhất trên (org id, tính năng kiểu) để ngăn chặn tính năng sao chép
Auto-provision completed-stage app features in org domain endpoint
Moves auto-provisioning from the FeatureController (only hit from the apps settings page) to the SecurityController org domain endpoint (hit on every page load ...
Auto-provision missing completed-stage app features for existing orgs
When listing features, the controller now checks for missing OrgFeature rows for COMPLETED-stage apps and creates them. This ensures orgs created before new app...
Auto-enable all completed-stage apps for new orgs instead of hardcoded list
Replaces hardcoded feature list (which had duplicates and deprecated types) with a loop over all COMPLETED-stage, non-core, non-deprecated ServiceTypes. New app...
Catch all exceptions in FeatureController enable/disable endpoints
Prevents uncaught RuntimeExceptions from becoming opaque 500 errors. Now returns structured error messages for any failure.
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).
Extract BCC recipients from IMAP messages
BCC header is retained on sent folder copies. Now extracted alongside To and CC so the frontend can display it in sent item previews.
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...
Gỡ bỏ trò chuyện từ NavP — Trò chuyện mở qua Trung tâm Giao tiếp, không phải nav
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 ...
Prevent duplicate apps in features list by excluding all existing types
The available list was only excluding features with enabled=true, so a disabled feature (isActive=false) appeared in both the features array AND the available a...
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...
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...
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...
Provider save field name and mailboxes tab member list endpoint
Provider save for non-configurable types now sends correct field name. Mailboxes tab now uses **************** endpoint which actually exists, instead of non-ex...
Provider GET returns both type and providerType, PUT accepts both
GET /api/email/provider now includes both 'type' and 'providerType' fields in the response for frontend compatibility. PUT now accepts 'type' as a fallback when...
Quyết tâm nhớ Tôi không kiên trì tên người dùng qua các phiên chạy đăng nhập
Cuộc gọi trở lại đã bắt được một màn biểu diễn cũ kỹ ở đó Hãy nhớ rằng tôi luôn luôn sai (tình trạng thời ban đầu). Dùng trọng tài để đọc Giá trị hộp đánh dấu s...
Provider save for non-configurable types and mailbox member email mapping
**************** selections now immediately persist via saveProvider API instead of only updating local state. Mailboxes tab now correctly extracts emailAddress...
Sửa đổi dạng tạo mới
- Kiểm tra đã cố định về hỗ trợ ổ cắm . - Mô hình kiểm tra đã thiết kế lại với UI: - "Làm thế nào chúng tôi có thể giúp đỡ?" hạ cánh với chủ đề chọn lựa - "Chươ...
Xuất các chủ đề từ [...] Comment
Điểm kết thúc [...], không phải là một hàng thô. Tất cả người tiêu dùng bây giờ lấy dữ liệu. đối tượng trước khi sử dụng các mảng.
Mở cửa sổ hỗ trợ công cụ từ lỗi và 404 trang
Thay thế mục cũ /help/tocket/ mới bằng công cụ: open Do not translate the keyword between brackets mở cửa sổ hỗ trợ bật lên trực tiếp.
Use settings timezone in revenue chart date range
The revenue chart was using the browser's local timezone instead of the timezone configured in analytics settings. This caused the chart to show different time ...
Gán vai trò mặc định cho các thành viên khi được tạo ra
♪ Giờ đây anh đã chỉ định bộ phim "Mores" (Tất cả) Vai trò từ tổ chức.roleMemID. ♪ Giờ đây cả hai đều được chỉ định ♪ "Các thành viên" (tất cả) vai trò và vai ...
Recalculate member_rights_applied after role create/update/delete
The member_rights_applied table was never recalculated when roles were modified, causing all members to have 0 applied rights. Now calls **************** after ...
Thêm lỗi hiển thị khi tạo đối tượng thất bại
Hiển thị thông điệp lỗi AI trong hộp thoại thay vì bị lỗi yên lặng.
Bộ phận sửa chữa đang tải lên bộ quản lý đặc biệt
Gửi bộ đầu X- ***- Token (kiểu bộ quản lý) và bộ phận chiết xuất từ dữ liệu. Phân chia hình phản ứng.
Thêm Array.isArray bảo vệ trên trả lời API để ngăn chặn lỗi.map
ARI có thể trả lại các đối tượng lỗi thay vì các dãy khi bảng hậu phương chưa tồn tại. Bảo vệ mọi hoạt động với kiểm tra Array.
Enable redirect following for MaxMind download
MaxMind returns 302 redirect to the actual file. HttpClient wasn't following it, causing the sync to fail with HTTP 302.
Add SecurityConfig to permit daemon trigger and actuator endpoints
Spring Security defaults blocked all endpoints with 401. Added explicit config to permit /api/daemon/** and /actuator/** without authentication.
Update ticket popup tool window to use light theme matching chatColors
Replace dark theme (dark backgrounds, white text, amber accents) with the light color scheme used by all other popup tool windows in the app.
Remove MANAGE_SUPPORT conditional from settings/analytics tabs, enable NavPri slide-out
All tabs now always visible. Removed disablePanel from NavPri Support entry so the slide-out panel works on hover.
Make description textarea fill remaining popup window height
Removed minRows/maxRows constraints and set flex layout on the input root so the textarea expands to fill all available vertical space.
Sửa MediaObjmg Download FK để sử dụng MediaObjIg UUID
Các cột FK tổng hợp (OBJ ID, IMG ID) được tham khảo không-PK gây ra một loại Không trùng (uuid vt). Thay đổi sang chỉ một FK trên OBJ IMG ID MediaObjImg.ID (UUI...
Dùng yêu cầu bản quyền để có thời gian giải quyết avg để tránh khả năng hạn chế khả năng sử dụng EBragnaT (EPOCH)
Chữ thường 6 không thể áp dụng được cho dấu trừ thời gian (Tiếng kéo dài thời gian) Đã chuyển sang một yêu cầu đáp ứng tự nhiên rằng CockroachDB xử lý bản xứ.
Như những gì anh thấy vận chuyển?
Mỗi một bản cập nhật này đều được tự động cập nhật trong không gian làm việc của bạn. Bắt đầu tự do và xem nó lớn lên tuần này qua tuần khác.