Use StringRedisTemplate to read OTK/session values stored as plain strings
The Next.js app stores OTK and *** values as plain strings in Redis. The default RedisTemplate uses JSON serializer which fails to parse them.
Resolve TypeScript errors in useEmailWebSocket hook
- Remove non-existent connectHeaders property from Client options - Replace client.active with client.connected for @stomp/stompjs compatibility
Add missing jakarta.mail.event imports and catch IOException in NATS handler
Match create button styling to existing global.css pattern
Use component={Link} with href, var(--color-primary) colors, and consistent sizing to match the existing Orders and Applications buttons.
Move create buttons to right side of pipeline tab toolbars
Remove duplicate left-side buttons where right-side ones already existed, and reposition newly added buttons to the right after other toolbar controls.
Give pipeline datagrid columns explicit widths with one flex column
Replace minWidth/maxWidth ranges with explicit width values so columns are properly sized for their data. Each grid has exactly one descriptive column with flex...
Remove toolbar margin gap between sub-tab row and datagrid
Remove mb:1 from toolbar wrapper in Commitments and Orders tabs, and add py:3px to the sub-tab panel for breathing room.
Remove padding from pipeline tab wrappers so datagrid matches sub-tab width
Seamless sub-tab and datagrid panel styling on pipeline market tabs
Remove the content Card wrapper for market tabs so there's no unnecessary panel behind the datagrid. Style the sub-tab row with rounded top / square bottom corn...
Remove sticky positioning from MemberHeader so form scrolls with header
The MemberHeader was pinned to the top of the scroll container with position: sticky, causing the form content to scroll underneath it. Now the header and form ...
Prevent pipeline detail pages from extending past viewport
Root Box changed from minHeight: 100vh to height: 100% with minHeight: 0 to match the leads view pattern. Content scrolls within the card, not the page itself. ...
Address review issues
- Validate intermediate steps when jumping forward via stepper - Pass warnings as query params instead of losing them on navigation - Revoke previous AI-generat...
Add auth check and sanitize input on POST /org
- Return 401 if no authenticated user (prevents orphan orgs) - Build Organization from allowed fields only (prevents mass-assignment) - Fix colors field name (w...
Restore full step component implementations
Replace stub step components with the complete implementations that include all form fields, validation, and UI logic for each wizard step.
Add proactive session extension to prevent timeout while user is active
The session monitor only extended the Redis session when TTL dropped to ≤5 minutes, and at that point silently auto-extended without showing the warning popup. ...
Swap My Account and My Branch buttons and reduce NavTop gaps
Swapped positions of "My Account" and "My {branch title}" buttons in the top nav, and halved all container-level gaps for tighter spacing.
잘못된 stale Redis 캐시가없는 org 레이블 필드
SecurityService 업데이트 전에 org 데이터가 부족합니다. memberTitleNonPlural 필드. 이 검색 및 재-fetch 신선한 자료 그래서 사용자 정의 회원 / 팀 라벨 디스플레이 올바르게.
Include member title labels and shortTitle in org domain response
The /org/domain/{domain} endpoint was missing memberTitlePlural, memberTitleNonPlural, teamMemberTitlePlural, teamMemberTitleNonPlural, and shortTitle fields fr...
다음을 통해 모든 외부 API 호출 프록시.js는 CORS를 피하기 위해
Catch-all /api/security/[...path] 프록시 경로 및 업데이트 추가 ThemeConfig, FormAccountRecovery, FormPassportID, FormPersonalInfo, FormRecoveryEnforcement는 직접 대신 로컬 프록시를 사용...
다음을 통해 프록시 국가 API.js 및 비활성화 테스트 모드
Api.kamocrm.com에 직접 fetch는 CORS로 인해 실패했습니다. 추가 /api/countries 프록시 경로(same pattern as /api/org) 및 비활성화 USE TESTING MODE.
Forgejo 워크플로우에 대한 전체 GitHub URL 사용
Shorthand ref(e.g. action/checkout@v4)는 수정할 수 없습니다. Forgejo 런너. kamo-internal의 작업 형식으로 정렬.
Use JdkClientHttpRequestFactory to support PATCH method forwarding
The default RestTemplate uses SimpleClientHttpRequestFactory (HttpURLConnection) which doesn't support the PATCH HTTP method, causing branch-titles save to fail...
Move loginOrgOpt declaration outside try block to fix scope error
The variable was declared inside the first try block but referenced in the second try block for parent branch title resolution.
Move useUserInfo hook into OrgStep component to fix build error
getParentBranchTitleNonPlural was referenced in OrgStep but only destructured in the parent CreateNetworkPage component.
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...
Hide re *** 텍스트 attribution 모드가 활성화되면 배지
내부 배지를 대상으로 한 overly-specific CSS selector 수정 #re***-컨테이너. Google은 <body>에 직접 배지를 주사합니다. 그래서 규칙은 일치하지 않습니다. .gre***-badge로 변경 가시성: 존재하는 DOM 요소 유지 (Google에 의해 필요...
외부 어두운 형태 CSS를 override하는 힘 빛 형태
- 어두운 유틸리티를 방아쇠에서 OS 선호도를 방지하기 위해 Tailwind DarkMode 설정 - !important overrides in globals.css to lock light mode 변수 - 외부 CSS가 DynamicMetaLoader에 로드한 후 인라인 스타일을 주...
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...
OS 색깔 계획 선호도에 관계없이 힘 빛 형태
Removed prefers-color-scheme 다크 미디어 쿼리 그래서 사이트는 항상 빛 모드에서 렌더링합니다.
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...
Avatar 미리보기에서 중복 CSS 스케일 변환 제거
Avatar Creator의 스케일 옵션은 이미 SVG 그룹으로 스케일(N/100)을 적용합니다. avatar 몸에 변환. 미리보기 컨테이너도 적용 CSS 변환: 스케일 (N/100), 효과를 합성 (2.5 × 2.5 = 6.25x 250 %에서. 이것은 미리보기가 drastically...
MakeRoom 및 post-dock 충돌 해결
No-op hexheads를 대체하십시오: 진짜 핸들러를 가진 회의실 청취자 그것은 새로운 도구 창의 DOM rect 후 해결 충돌을 실행 안정되어 있습니다. 청취자 누출을 수정합니다 ( 익명, 결코 정리되지 않음). 또한 실행 resolveCollisions 후 포장 중Dock 그래서...
비-snap drop 및 swarm 후 충돌 해결
Non-snap drops now run resolveCollisions before save 위치, 아래쪽 모서리에 겹쳐 쌓이는 방지. Swarm 방울도 resolveCollisions 를 실행하고 이제 제대로 persist 포지션을 실행합니다.
FlyToHomeRow의 그룹웨어 슬롯 폭
그룹은 이제 수평 슬롯을 그들의 추종자에 비례 반지 범위 (정확한 편평한 정상 축 공식을 사용하여), 예방 그룹 invading 이웃 앵커의 공간에서 추종자. 또한 추가 double-rAF는 배치 후에 안전 그물로 충돌합니다.
Z-index DOM 정렬을 제거하여 이벤트를 떨어뜨릴 수 있습니다
ToolDock의 zIndex에 의해 정렬 창은 DOM 노드가 모든 것을 주문하는 데 발생했습니다. 초점 이벤트 (mousedown). Browsers 드롭 클릭 이벤트 때 대상 요소 마우스 다운과 마우스 업 사이 이동, 두 번째 클릭을 필요로 버튼 활성화. CSS z-index는 DO...
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...
