Apply toolbar and search changes to embedded chat mode
The ChatBox is always rendered in embedded mode via ChatTool. Move the call controls toolbar with search field and scroll-to-bottom button into the embedded sec...
Add chat toolbar with call controls, live search, and smart auto-scroll
Move call buttons from header to dedicated toolbar row with 50% lighter background. Add live search field that highlights matches and auto-scrolls to most recen...
Softphone dial pad shorter, chat call controls, hexhead avatars, calc light theme
- Reduce softphone dialpad button padding from 12px to 9px (6px shorter) - Add call controls toolbar (audio, video, screen share) to ChatBox in embedded mode ...
Update HexHeadGroup selectors from data-chatbox-root to data-tool-window
The tool window system uses data-tool-window on ToolWindowShell, but HexHeadGroup was still querying data-chatbox-root for footprint detection. This caused hexh...
Unify tool window dimensions and refine UI
- All tools now share uniform 320x650 size (softphone 25% taller, others match) - Remove programmer and graphing calculator modes from UI (components retained) ...
Add ScientificMode calculator component
Expression-based scientific calculator with live result preview. Supports trig (sin/cos/tan + inverses), log/ln, powers (x², x³, x^y, eˣ, 10ˣ), roots (√, ∛), fa...
Replace AuthenticatedChatWrapper with AuthenticatedToolWrapper, remove ChatDock
Register chat as a tool
Register the chat tool definition with id 'chat', using ChatTool as the component, ChatBubbleIcon, indigo gradient hex head style, 320x360 default size, and unl...
Add ChatTool adapter with embedded mode for ChatBox
- Create ChatTool adapter that wraps ChatBox for the tool system - ChatTool handles avatar fetching and session creation (previously done by ChatDock) - Add emb...
Fix plan review issues - chat dedup, message-received handler
Add userId deduplication in openTool to prevent duplicate chat windows. Add chat:message-received listener in ChatNotificationListener for minimized chat auto-r...
Add implementation plan for tool window system
Addresses review findings: hexchat:open migration, call-initiation listener, SVG gradient foreignObject approach, variable-width dock positioning, embedded Chat...
Fix contradictory migration language in spec table
Remove "(or kept as thin wrapper)" hedge from the existing files table to align with the committed full-replacement migration strategy.
Address spec review findings for tool window system
Add ToolComponentProps interface, event detail types, chat migration strategy, HexHead click behavior, softphone width sourcing, calculator keyboard focus manag...
Add tool window system design spec
Spec for refactoring chat windows into a generic plugin-based tool window system with ToolRegistry, calculator tool, and softphone extraction.
Distinguish typing vs editing in chat indicators and HexHead spin
- Extend WebSocket typing protocol to include isEditing flag - HexHead spins clockwise when other user is typing, counter-clockwise when editing - Chat indicato...
Chat UI polish - primary color theming, emoji inside input, round send btn, hex status colors
- Department tabs and chatbox header use --color-primary instead of hardcoded green - Emoji picker button moved inside chat input field aligned right - Send but...
Chat system improvements - editing spin, hex mask rotation, colors, maximize-minimize
- Detect editing (backspace/delete) vs typing in input to trigger backwards HexHead spin - Rotate hex clip mask along with border during typing/editing (avatar ...
Enhance chat system with persistent minimized chats, emoji picker, and UI improvements
- Keep ChatBox mounted when minimized to hexhead so messages don't reload on restore - Connect typing/editing indicators to HexHead spinning animations with 2s ...
Don't invalidate *** session when it matches the new OTK session
The validate route was deleting the existing *** session from Redis before looking up the OTK. When the OTK pointed to the same session, the lookup would fail w...
Pass *** ID as query param for cross-subdomain WebSocket auth
Instead of relying on cross-domain cookies (which don't work across subdomains), read the *** cookie client-side and pass it as a query parameter when connectin...
Revert "fix: set *** cookie domain to .kamocrm.com for cross-subdomain sharing"
This reverts commit ****************
Set *** cookie domain to .kamocrm.com for cross-subdomain sharing
The *** cookie was set without an explicit domain, defaulting to internal.kamocrm.com. This prevented the cookie from being sent to media.kamocrm.com during Web...
Resolve chat messaging, presence tracking, and auto-open issues
- Fix messages not being received by retrying NATS subscription with unique consumer name when "Consumer already bound" error occurs - Fix offline status by s...
เหมือนที่คุณเห็นการขนส่ง?
ทุก คน ที่ ได้ รับ การ ปรับ ปรุง เหล่า นี้ จะ ลง ไป ใน ที่ ทํา งาน ของ คุณ โดย อัตโนมัติ. เริ่มให้อิสระและดูมันเติบโตสัปดาห์แล้วสัปดาห์เล่า.