Add abstract title labels and dynamic parent branch titles
Add memberTitleAbstract and teamMemberTitleAbstract label fields with sync support. Replace hardcoded "Company" references with dynamic parentBranchTitleNonPlur...
Split ageReqType into member and team member fields
Update Organization type, PublicProvider, route schema, and BranchSetupManager with separate member/team member age requirement sections.
Rename Employee to TeamMember and wire up dynamic label overrides
Rename all Employee/Employment references to TeamMember/TeamMembership. Replace hardcoded Member/Team Member display text with dynamic label getters from useUse...
Add Child Organization Security Models mock UI to Branch Setup tab
Adds a datagrid with inline edit/add panel for managing child org security models, including org visibility toggles, age range selection, identity provider and ...
Resolve session timeout maintenance system not running
Root cause: sessionMonitor.start() called stop() after setting this.config, which nullified the config before the 3-second startup timer fired. As a result, the...
Add branch setup implementation plan
12-task sequential plan covering kamo-shared-library, SecurityService, and kamo-internal changes end-to-end.
Add branch setup design spec
Covers the full feature from kamo-shared-library schema changes through SecurityService session/endpoint changes to kamo-internal UI and API proxy.
Eliminate OTK Redis overhead and proxy log noise for message fetches
- Bypass OTK generation in the MediaService proxy route: forward the *** cookie directly instead of generating a one-time key, removing 4 Redis round-trips ...
Improve chat message loading performance
- Cache getCurrentMemberId() result in a ref to avoid repeated /api/user-info calls on every WebSocket message and typing indicator - Parallelize message hist...
Resolve horizontal overlap, follower blind spot, and timing bugs
- flyToHomeRow: compute per-follower actual dx extents to derive rightBuffer/leftBuffer independently, placing anchor correctly to prevent ring followers from...
Bake Size slider zoom into saved SVG via viewBox crop
Avatar Creator's internal scale transform zooms the avatar body within the SVG canvas, but the effect is imperceptible at small display sizes (e.g. a 140x140 Av...
Remove redundant CSS scale transform from avatar preview
Avatar Creator's scale option already applies scale(N/100) as an SVG group transform on the avatar body. The preview container was also applying CSS transform: ...
Implement makeRoom and post-dock collision resolution
Replaces the no-op hexheads:makeRoom listener with a real handler that runs resolveCollisions after the new tool window's DOM rect is stable. Fixes the listener...
Resolve collisions after non-snap drop and swarm
Non-snap drops now run resolveCollisions before saving positions, preventing stacking at the bottom-right corner. Swarm drops also run resolveCollisions and now...
Group-aware slot widths in flyToHomeRow
Groups now reserve horizontal slots proportional to their follower ring extent (using correct flat-top axial formula), preventing group followers from invading ...
Add resolveCollisions useCallback
Detects head-to-head and head-to-toolWindow spatial violations and moves offending heads to the nearest clean position via spiralSearch. Must be called via doub...
Add MIN_GAP constant and spiralSearch helper
Adds the 5px minimum gap invariant constant and a spiral-search function that finds the nearest collision-free pixel position for a hexhead, checking head-to-he...
Add hexhead collision fixes implementation plan
5-task plan covering: spiralSearch helper, resolveCollisions useCallback, group-aware flyToHomeRow, onUp non-snap/swarm wiring, and makeRoom/ wrapAroundDock eve...
Remove z-index DOM sort to prevent click events being dropped on focus
Sorting windows by zIndex in ToolDock caused DOM node reordering on every focus event (mousedown). Browsers drop the click event when its target element moves b...
Add hexhead collision fixes design spec
Spec covers three hexhead UX bugs: horizontal bottom-row vertex overlap, bottom-right stacking when dropping without snap, and hexheads ending up behind tool wi...
Bake background color/gradient into saved Avatar Creator avatar SVG
Avatar Creator generates transparent-background SVGs by default. The background was only applied as a CSS wrapper on the preview container, so the stored MinIO ...
Dispatch member-panel-toggle via useEffect to avoid stale Framer Motion closure
onAnimationStart/Complete hold the last rendered props, so the exit animation always saw isOpen=true and windows never relayed to the right on close. Using a us...
Correct member-panel-toggle event property so tool windows respect panel offset
The event was dispatching `{ isOpen }` but ToolWindowsContext read `detail.open`, causing memberPanelOpenRef to always be falsy and the 500px panel offset to ne...
Eliminate hexhead spawn overlap by computing unique column positions
Each head now initialises its MotionValue at its own home-row column X and below the viewport (h + SIZE), then springs up to its final slot. Previously all head...
Use inline style for icon colors to prevent CSS specificity override
sx-generated color classes were being overridden by Tab card context styles. Switching color to inline style prop ensures icons always render with the correct c...
Prevent overflow:hidden on tab card from clipping status widget
Move overflow:hidden from the Card to the Tabs wrapper Box so scrollable tabs are contained but the right-aligned status/substatus widget remains fully visible.
Correct hexhead geometry, z-index layering, and viewport clamping
- Fix axialToPixel to use flat-top hex formula (was pointy-top) so honeycomb aligns flat-edge to flat-edge as the hex SVG shape requires - Fix generateRing to...
Add status/substatus widget to lead view tab bar
- Extract LEAD_STATUS_TYPES, getStatusIcon, getSubStatusIcon to shared app/lib/leadStatuses.tsx utility; update LeadManager to import from it - Add inline sta...
Rewrite HexHead system with framer-motion physics
Replace the broken 1800-line HexHeadGroup with a clean physics-based implementation using framer-motion springs and motion values. Key changes: - Remove wiggle...
Use Next.js client-side navigation for all MUI Link components
MUI Link without component={NextLink} renders as a plain <a> tag, causing full page reloads that reset all React state including tool windows. Added component={...
Replace window.location hard navigations with router.push/refresh
All window.location.href, window.location.assign(), and window.location.reload() calls in page components caused full page reloads, wiping all React state inclu...
Flat-top honeycomb layout, 5px gaps, cluster-aware groups, tool window relayout
HexHeadGroup: - Switch to flat-top hex geometry (HEX_INRADIUS/HEX_STEP) — hexes now share flat top/bottom edges with adjacent group members, giving a proper h...
Move ToolDock above auth gate to prevent tool window wipe on navigation
PresenceWrapper switches its component tree structure when auth resolves (Fragment > children → ChatWebSocketProvider > PresenceProvider > children). This unmou...
Persist tool windows across navigation — Layer 1 guard + ToolProviders wiring
เหมือนที่คุณเห็นการขนส่ง?
ทุก คน ที่ ได้ รับ การ ปรับ ปรุง เหล่า นี้ จะ ลง ไป ใน ที่ ทํา งาน ของ คุณ โดย อัตโนมัติ. เริ่มให้อิสระและดูมันเติบโตสัปดาห์แล้วสัปดาห์เล่า.