Chat UI 抛光 - 主色调主题, 内部输入的 emoji, 回合发送 btn, 六进制状态颜色
- 部门标签和聊天箱头使用 -- -- 彩色主页而不是硬码绿色 - Emoji 拾取器按钮移动到聊天输入字段内对齐右侧 - 发送按钮得到弹性收缩:0 防止挤入椭圆形 - Hexhead边框:绿色用于在线,深灰色用于下线
聊天系统改进 - 编辑自旋,六面罩旋转,颜色,最大化-最小化
- 检测编辑( 回放/删除) vs 输入以触发回放的 Hexhead 旋转 - 在打字/编辑时与边框一起旋转六分针口罩(运动员保持直立) - 将部门标题标题和聊天箱标题栏改为# 22c55e(在线绿色) - 在最大限度减少状态时恢复六头蛇的能见度
当与新的 OTK 会话匹配时, 不要取消 *** 会话
验证路由正在从 Redis 中删除现有的 *** 会话 在查了那个OTK之前 当OTK指向同一会议时, 如果“ 找不到会议或会议已过期 ” , 则搜索会失败 。 现在只有 如果旧会话的ID与新会话不同,则该会话无效.
接受 *** 从查询参数获取跨子域 WebSocket 认证
先从 ? QQ 查询参数读取 *** ID, 返回到 饼干 这样可以让内部.kamocrm.com的前端认证 WebSocket连接到media.kamocrm.com 没有跨域饼干. 截取器直接对Redis验证会话.
将 *** ID 作为跨子域WebSocket 认证的查询参数
而不是依赖跨域的饼干(不能跨域) ,读取 *** cookie 客户端并将其作为查询通过 链接到 media.kamocrm.com WebSocket时参数.
将 *** cookie 域设置为.kamocrm.com 用于跨子域共享
Cookie 设定时没有明确的域名, 无法发送 用于 WebSocket 认证.
将 *** cookie 域设置为.kamocrm.com 用于跨子域共享
*** cookie 设定时没有明确的域名, 默认为 (原始内容存档于2017-10-29). Internal.kamocrm.com. 这阻止了饼干被送到 媒体.kamocrm.com WebSocket握手期间,导致所有WS连接 以“找不到有效的 *** cookie ” 拒绝.
处理Stale NATS 消费者与独特的消费者重试
- 提取信件处理器到创建 NatsMessageHandler () 方法 - 在“消费者已经绑定”时, 添加带有独有消费名称的重试逻辑 服务器重新启动后发生错误 - 清理动词调试记录
解决聊天信息、存在跟踪和自动开放问题
- 通过以独特的方式重试NATS订阅来修复无法接收的信息 “ 消费者已绑定” 错误发生时的消费名称 - 通过在STOMP连接上发送即时心跳来修正离线状态。 连接后重置批量存在 - 通过会话直接修复聊天自动打开,以避免冗余 会话创建, 并正确处理 Aync 开放流程 - 从 WebSocket 订阅监视器中删除最小状态,...
解析 MUI 图标类型错误并共享单一的 STOMP WebSocket 连接
- 为@mui/icons-material添加tsconfig路径覆盖以绕过破碎的无害环境管理 v7.3.1中的出口表明不存在./esm/index.d.ts - 创建 ChatWebSocketContext 以共享整个应用程序的单一STOMP客户端 而不是建立单独的连接 在存在Wrapper, ChatDock,...
为成员Panel在开放聊天中打开使用参考, 以防止 Stale 关闭
当用户打开成员面板时,单击成员聊天,然后关闭 在ASync会话 API 调用返回前的面板,聊天窗口是 位置为500px相抵,仿佛面板尚未打开。 这个 之所以发生,是因为 OpenChat 捕获了成员Panel Open 通过呼叫关闭 时间。 使用一个参考器可以确保当前面板状态在等待后被读取 .
Remove forced WebSocket headers from media middleware
Traefik v3 handles WebSocket Upgrade/Connection headers natively. Remove forced headers that broke non-WebSocket API requests.
途经Traefik港口的媒体服务交通 443
- 增加MEDIASERVICE-URL env var用于集群-内部服务访问 - 修复9条API线路中的MediaServiceBaseUrl,首先使用env var - WebSocket悬钩连接媒体.kamocrm.com:443通过Traefik - 为内部HTTPS呼叫添加 NODE TLS REJECT U...
端口443处通过Traefik的WebSocket路线
- service.yaml: 固定端口 80–8443 以匹配 pock 的实际收听端口 - ingressroute.yaml: 后端使用方案 https + 端口 8443 - 服务器 transport.yaml: 为后端 TLS 证书添加不安全的SkipVify - 删除NodePort服务-websocke...
使商业豆以储存库的供应为条件
将 QQ 添加到约定 生命周期 和商务服务,所以他们只装载 当商务储存库 扫描 防止服务中的不满意依赖性例外 MediaService可以扫描com.kamo,但不能允许商业重置.
Add system account to all NATS configs
Add $SYS account with admin credentials to k0m1, k1m1, and k2m1 NATS configs. Enables nats CLI cluster management operations (peer removal, step-down, etc.) for...
为 NATS 连接使用集群- 内部 DNS
将默认 NATS URL 从 WireGuard IPs (100. 64.x.x) 更改为 nats.kamo.svc. cluster. 本地服务器的本地化. 远程节点 (k0m1,k2m1)仍然保留在有线卫视IP上.
NATS 不可用时允许启动应用程序
从喷气式Stream( ) 中删除 @ Contentional On Bean, 并添加 @ Nullable 到 连接参数 。 当 natsConnection () 返回无效时( NATS) 不可通达),"春天"不再以"不满意"依赖外出相撞.
删除布局.tsx, 修补 DocCount/ History 类型错误
- 删除错误添加的布局.tsx(将影响整个网站) - 还原页.tsx 包装 div(不需要) - 将梯度背景移回铅维尤克连根容器中 校正类型错误: 博士和历史 校正中不存在铅洞 使用“ -” 占位符代替
更新管道命令Tab 供应商字段名称以匹配后端 DTO
已更改 v.uid → v.id, v. name → v.companyName,并选定 VendorId 类型 从数字到字符串与CommerceMarketVendor DTO对齐.
为商业市场对 TypeScript 类型和后端 DTO 进行对齐
商务市场、商务市场、销售商类别 界面使用错误的字段名( uid/name vs id/ title, name vs) 公司名称,网站Url vs网站,描述对s笔记). 这导致 显示标题、错误图标、损坏的 URL 和“ 新建” 的管道标签 在快动作中未定义的应用程序". 对所有类型和消费者进行更新 以匹配实际 Java...
不装入的管道市场和市场管理器布局
管道显示“ 没有配置商业市场 ” , 因为 getPOSConfig () 从未返回市场。 现在从商业中获取市场MarketApi 直接说 市场和字段设置标签上的固定间隔/铺设 匹配产品目录设计 .
解析 POS 设置上的 “ u. map” 不是一个函数, 并更新 Commerce 导航
- 在商务中添加防御阵列提取 MarketApi(getMarkets, getVendorCateors, getMarketVendors, 种子VendorCatetors),处理包裹的API响应 - 更新设置现状Window商业分专题,包括所有6个POS标签:业务类型、产品目录、库存、租赁资产、供应商、订阅计划...
解决 Next.j 动态路由 sattle 冲突( “ id' vs” 市场) 我会的
将[marketId]目录合并为[id]用于商业-市场API线路. Next.js 需要在同一路径级别上的所有动态段使用 相同的参数名称。 从 marketId 重命名为 id 有分解化名的参数 .
解决企业管道标签中的类型脚本错误
- 使 ToCSV 列参数具有从对象键自动衍生的可选性 - 在“采购Tab”中修复下载Blob呼叫(错误的参数计数,缺失的 Blob 包装) - 将MUI Grid v1 API(项目/xs/sm/md道具)转换为v2 API(大小道具),跨越10个管道标签文件
Remove duplicate session timeout fields from session types
Aligns with SecurityService change that removes createdAt/expiresIn from Redis session records and tokenExpiration from session info responses. - user-info/rou...
Remove duplicate session timeout system from Redis records
Session expiry is now managed solely by the Redis key TTL. The internal createdAt/expiresIn fields stored inside the Redis value have been removed — they formed...
Update internal layout and styles
- Make main wrapper background transparent so home page fixed background is not covered - Include latest adjustments to automation, security access, and account...
Handle optional effectiveDate and processedAt in DateTimeDisplay
Type error: string | undefined not assignable to string | number | Date. Add null checks before passing to DateTimeDisplay, show em-dash when absent.
Align Commerce submenu with actual Commerce page tabs
- Rename Domain Configuration to Engagement Types - Add Rental Assets, Vendors, Subscription Plans - Update tab param to engagement-types for consistency - Labe...
Advanced datagrids fill 100% of content area
- SettingsView: tab content wrapper overflow hidden, motion.div flex chain so tab content gets bounded height and grids can expand. - PipelineRentalAssetsTab:...
Resilient probes so cluster stays up when one node is offline
- Liveness: tcpSocket on 4222 (do not depend on JetStream meta leader) - Readiness: initialDelay 90s, period 15s, failureThreshold 10 so k0m1+k1m1 can form qu...