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 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...
Add email alias and shared mailbox UI support
Composer "From:" dropdown for switching between primary, alias, and shared mailbox addresses. New "Mailboxes" 6th tab in email settings for org-wide admin manag...
PRE TICKET DB 제약 + 재설계 작성 양식
- ordinal 14을 허용하기 위해 support ticket.status에 고정된 CHECK 제약 - 현대 카드 기반 UI를 가진 Redesigned TicketCreationForm: - "어떻게 도와드릴까요?" - "Chat with Support" 카드 (기본, 강조) - 사...
Add PRE_TICKET status with Start Chat option
- TicketCreationForm: two buttons — "Start Chat" (pre-ticket, no title required, just topic) and "Submit Ticket" (full ticket with title) - TicketHeader: "Con...
{ 화제: [...]에서 주제 배열 추출 API 응답
GET /api/support/topics endpoint 반환 { 주제: [...] }, 아니 원료 배열. 모든 소비자는 이제 배열을 사용하기 전에 data.topics를 추출합니다.
오류 및 404 페이지의 지원 도구 창 열기
이전 /help/ticket/new 탐색을 도구로 바꾸기:Open CustomEvent 지원 팝업 창을 직접 엽니 다.
과립 역할 편집, 라벨 스왑 및 팀 구성원 지원
- add isAllowEditTitle 과 isAllowEditSecurity 에 SecurityRole 인터페이스 - 회원/팀 회원 역할에 보안 설정을 편집할 수 있습니다 (이전 완전히 잠겨) - "Members"와 "Team 회원"모직 org 행동 라벨과 제목을 교환 - 보호된 역...
TopicManager에서 부서 로딩
X-***-Token 헤더(matching DepartmentManager pattern) 및 data.departments 응답 모양에서 부를 추출하십시오.
.map 오류를 방지하기 위해 API 응답에 Array.isArray 가드 추가
API는 backend table 대신 배열 대신 오류 객체를 반환할 수 있습니다. 아직 없습니다. Array.isArray 체크와 모든 배열 작업을 감시합니다.
Add Support section to settings page
Adds Topics, Notifications, and Status & Response Times cards that link to /support?tab=settings.
Allow 6 settings cards per row on xl screens and hide Club House nav item
Settings page grids now scale to 6 columns at xl breakpoint. Club House menu item commented out in NavPri.
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.
Remove old help system, add support nav items
Delete app/help/ and app/components/help/ directories. Add SupportButton to NavTop toolbar and Support menu item to NavPri sidebar navigation.
Add frontend types and API proxy routes
TypeScript interfaces for all support DTOs and 13 API proxy routes forwarding to MediaService for topics, tickets, and reporting endpoints.
Redesign AI processing toggle as labeled switch with Assistant icon
Replace icon button with a toggle switch using the MUI Assistant icon, labeled "Train AI With This Note". Moved to the left of the save button. Renamed "Create"...
Add deep-linking support to notes page via query param
Support /notes?id={noteId} URL pattern so AI chat source links can navigate directly to a specific note. Opens the note in edit view when the page loads with an...
Add AI processing toggle to notes UI
Add aiProcessingEnabled field to Note types and toggle button in NoteEditor toolbar. Members can enable/disable AI processing per note, which controls whether n...
Add filter toggle button to notes header
The sidebar collapse button was hidden behind the app's left nav bar. Replaced it with a filter icon toggle in the NotesHeader that is always accessible regardl...
Use sized avatar variants — medium for profiles/emails, small for nav/lists
Add size parameter to fetchMemberAvatar (defaults to 'sm'). Email signatures, email sending, profile headers, posts, comments, and hex heads now request the med...
Extract plain text from Lexical JSON for note card previews
The note content is now Lexical JSON, not HTML. The preview function was falling back to stripHtml which dumped raw JSON as the preview. Now parses Lexical JSON...
Add photo crop tool with react-easy-crop and multi-size avatar storage
Replace the old PhotoCropDialog with an interactive crop tool using react-easy-crop. When uploading or editing a photo, users now select a square crop area (wit...
Forward raw JSON responses in notes API routes to preserve ID precision
CockroachDB unique_rowid() IDs exceed JavaScript's MAX_SAFE_INTEGER. The previous response.json() + NextResponse.json() round-trip caused JSON.parse to convert ...
Improve notes save flow — keep editor open, show actual errors
- Don't close the editor after saving an existing note (only close after creating a new one) - Fix fetchWithAuth to read error.error instead of error.message ...
Open notes directly on click, derive categories from data, remove encryption
- Click a note to open it directly in the editor instead of making a separate API call that was failing - Derive categories and tags from loaded notes data in...
Load countries from CountryType enum, add flag icons to geo-blocking
Countries route now proxies to /api/security/countries (CountryType enum) instead of **************** (empty GeoLite table). Adds react-world-flags for country ...
Rewrite Access Blocks help tips for clarity
Explains all four sections (whitelist, blacklist, temp blocks, geo-blocking) in plain language. Adds a CIDR range guide with examples showing /32, /24, /16, /8 ...
Resolve notes page load failure and replace Quill editor with Lexical
Add missing runtime/dynamic exports to all notes API routes to enable proper OTK authentication. Replace React Quill WYSIWYG editor with the same Lexical-based ...
Forward visitor IP/User-Agent to backend, add duration unit picker
apiProxy: Now forwards X-Forwarded-For and User-Agent from the original visitor so backend logs the real client info instead of the Next.js server. AccessBlock...
Restore permission gate on AccessBlockManager
Re-adds the MANAGE_ACCESS_RULES permission check that was incorrectly removed. The underlying issue (admin roles missing new rights) is fixed by KamoInitializer...
Remove full-component permission gate from AccessBlockManager
New rights aren't assigned to any role yet, blocking all users. Other security settings tabs (API Access, OAuth2, System Debug) don't have permission gates — fo...
Initialize god mode state synchronously from localStorage
isGodMode was initialized as false and only loaded from localStorage in a useEffect (after first render), so checkRight() returned false on initial render even ...
Allow god-mode-active users to bypass right checks in checkRight
New security rights aren't assigned to any role yet, causing all users to be denied. God-mode-active users now pass all checkRight() calls.
Add access security system frontend
13 API proxy routes, access check module with CIDR matching, proxy.ts enforcement integration. Reworks AccessBlockManager (real API + geo-blocking), creates Sys...
Add Create Document button with rich dropdown on /doc/manager
Adds a styled dropdown menu with document type options (Document, Spreadsheet, Presentation, Drawing) each with descriptive text. Removes the NewDocumentButton ...
Show KB nav item unconditionally in sidebar
Removed the isKnowledgeBase feature gate so KB always displays, matching the previous NavTop behavior.
Replace broken Anthropic, OpenRouter, and xAI logo SVGs
The original files were 404 placeholders (14 bytes). Replaced with proper SVG logos from Simple Icons.
Update internal entity ID types from number to string for UUID migration
Updates TypeScript types, hooks, and components to use string IDs for entities converted to UUID on the backend. User-facing entity IDs (User, Organization, Mem...