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 标签字段
安全服务更新之前的缓存数据 (原始内容存档于2018-03-21). ITTER NONPLAL Field. 检测这个并重调新数据 自定义成员/团队标签显示正确 .
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 通过 Next.js 调用以避免 CORS
添加了所有/api/security/[.路径]代理路由并更新 主题配置、 窗体账户恢复、 窗体PassportID、 窗体PersonalInfo、 使用本地代理而不是直接代理 api.kamocrm.com电话.
通过 Next.js 并禁用测试模式的代理国家 API
直接获取到 api.kamocrm.com 由于 CORS 失败 。 已添加/api/国家 代理路由(与/api/org相同)并被禁用 USE TESTING MODE.
使用完整的 GitHub URL 在 Forgejo 工作流程中的动作引用
短手回执( 如动作/ 检查出@ v4) 可能无法解决 福吉乔跑者. 与卡莫内部的工作形式相配合.
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...
当文本归属模式激活时隐藏 re*** 徽章
固定的过于具体的 CSS 选择器,瞄准内部的徽章 {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}再装一个集装箱 Google 将徽章直接注入"body", 所以规则就跟不上了 改为.gre***-badge 可见度:隐藏以保持...
强制灯光模式来覆盖外部暗模式 CSS
- 将 Tailwind 暗模式设置为“ 类” , 防止操作系统偏好触发暗公用设施 添加 ! 在 Global.cs 中锁定光模式变量的重要覆盖 - 在DynamicMetaLoader的外部CSS负载后注入内线样式,以防止外部暗模式规则生效
解决水平重叠、 跟踪盲点和计时错误
- fly ToHomeRow:计算每个跟踪器的实际dx范围以获得右缓冲/左缓冲 独立地放置锚,以防止环形追随者与 相邻的家排头( 仅留下 19px 间隙对 77px 需要) - 解析组合:包括被取消的团体追随者作为只读障碍,这样可以自由头 而其他单位则不能再被安排在跟随者位置之上 - 在Make Room / 在Wr...
无论OS 色彩方案偏好如何, 强制灯光模式
删除了偏好- color- scheme 暗媒体查询, 因此网站总是以光线模式制作 .
Bake 大小滑动器通过视图框裁剪放大为已保存的 SVG
阿凡达造物主的内部尺度 放大了SVG内部的阿凡达体 帆布,但效果在小显示尺寸(例如a)时是无法察觉的。 140x140 Avatar组件). 预览使用冗余 CSS 变换: 缩放( ) 以显示缩放, 但 CSS 绝不是其中的一部分 保存了 SVG,所以预览和保存总是看起来不同. 新方法: - 从可选变形器中去除缩放( ...
从 Avatar 预览中删除冗余 CSS 缩放转换
Avatar 创建器的缩放选项已经作为 SVG 组应用了缩放( N/ 100) 变相体上. 预览容器也在应用中 CSS变换:分级(N/100),复合效应(2.5×2.5=6.25x) (以250%计) 这让预览看起来与 保存了 SVG, 特别是在滑动器最大值被提升到250后特别显著 。 删除 CSS 变换使预览准确匹...
执行 make Room 和后碰撞分辨率
以真正的处理器替换无操作的六角头: make Room listener 在新工具窗口的 DOM 矩形后运行解析度 稳定。 修复收听者泄露(匿名,从未清理). 包装后还要运行解析度 。 最终在停靠的窗户后面被重新定位.
Fly ToHomeRow 中的组意识槽宽度
组现在保留与其跟踪者成比例的横向槽 环范围(使用正确的平顶轴公式),防止群 来自入侵相邻锚地空间的追随者. 还添加a 双RAF解析器在安放后作为安全网通过.
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...
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...
