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.
跳过 DB 成员查找信件认证检查
提取从 Redis 读取成员ID 的 JemberIdFrom Request( ) 会话不点击 DB 。 用于获取Messages( ) 而不是 获得Current Member()——该成员实体只在那里被注销, 从来没有使用过。 在每个聊天历史载荷上保存一通DB回转. 将当前成员( ) 调用为请求( ) 内部用于...
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 ...
取消每个请求的日志管理费和同步 TTL 刷新
- k8s 配置( 实际生产配置): 安全/ hikari 从INFO/DEBUG到WARN的日志,添加 HikariCP 池配置(最多20个) - 会议服务:脱去-60系统。 每个请求,包括128 Char会话密钥的字符串连接; 让 TTL 重新刷新 ASync 使其不再阻断 请求路径 - 在应用程序上启用 @ En...
减少日志噪音和调谐连接池
- 从TRACE到WARN的下春安保和从DEBUG到HARICP的下春安保 WARN — 每个请求消除数十个同步日志写入 - 增加明确的HikariCP池配置(最大20个,5分),以防止 在同时负载下的连接已耗尽 - 从当前成员( ) 中删除14个每个请求的系统. out. println的电话
在同一查询中获取父信件以删除回复 N+1
异名 m.msg 和 LEFT JOIN FETCH msg. parent 这样,线性回复 信件在初始查询中加载了父信件而不是 触发单独的 SELECT 每一份回复
改进聊天消息加载性能
- 缓存获取CurrentMemberId () 生成一个可避免重复/ api/ user- info 的校对 调用每个 WebSocket 信件和打字指示器 - 将信息历史获取和用户信息获取与承诺并行。 减少初始负载延迟 - 在.map()内去掉每个消息控制台.log(每次发射100次) - 从代理路由日志中删除全部...
删除聊天信件端点的每个信件记录
删除信件流图中的System.out.println通话 每个消息发射一次(每个请求100个一/O操作),最后 日志,将所有信件再次流出,只是为了收集记录成员身份
修复 N+1 查询并添加聊天信件加载的复合索引
- 将LEFT JOIN FETCH m.msg添加到两个寄存器查询中,以便急于加载 同一查询中的 MediaObjMsg, 最多取消100个额外的 SQL 查询 每个聊天窗口打开 - 增加综合指数(SESSION ID、IS REMOVED、DATE CREATED)以涵盖 以单个有效的索引扫描方式获取查询模式
强制灯光模式来覆盖外部暗模式 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解析器在安放后作为安全网通过.
使用 Callback 添加解析度
探测到头到头和头到脚的Window空间违规情况 然后把头移到最近的干净位置 螺旋搜索器。 必须通过双RAF调用以避免读取 中动能动能动能动能动能动能动能动能动能动能动能动能动能动能动能动能动能动能动能动能动能动能动能动能动能动能动能动能动能动能动能动能动能动能动能动能动能动能动能动能动能动能动能动能动能动能动能动能动能...
添加 MIN GAP 常数和螺旋搜索助手
添加 5px 最小间隙的变异常数和螺旋搜索 函数查找最近的无相撞像素位置 一个六分头,检查 头对头和头对工具 Window 清除.
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...
Add kamo.commerce.enabled=true to k8s configmap
This is the file the CI pipeline actually applies (k8s/configmap.yaml). Required for CommerceService and EngagementLifecycle to load under the new @ConditionalO...
Add KAMO_COMMERCE_ENABLED=true to k8s configmap
Required for CommerceService and EngagementLifecycle to load now that they use @ConditionalOnProperty instead of @ConditionalOnBean.
添加匹配( If Missing = false) 到商业豆类的有条件财产
明确商业服务和参与周期 当 kamo. commerce. 启用未设置时, 默认禁用 。 任何不配置地产的服务都会跳过这些豆子.