60s OTK TTL 用于交会窗口, 独立的聊天/电子邮件邀请, 不屏蔽后端
OTK有一个10秒TTL。 当卡莫 -米特的页面 装入了所有资产和品牌/管理。 在Redis 中已经过期 ^ 401 → 无会话 → 无名称 → 无 JWT ——"等待主持人". 修补 : - 满足OTKs 现在得到60s TTL 通过目的= meet参数 - 独立运行聊天邀请(不是在后端会议创建后) - 电子邮件邀...
通过配置覆盖 + DOM 变异观察器正确锁定显示名称
三级方法,以确保名称被锁定给经认证的用户: 1. 在OTK-JWT改道后,当地Storage旗"kamo-meet-aurented"存活下来. 2. 重定向后, 覆盖窗口. config. read OnlyName= true 通过投票 间隔( 遇上配置对象时捕获) 3. 变异观察员发现,#会前地名输入和设定只读作...
通过现有的聊天会话 API 发送聊天邀请, 通过多部分发送电子邮件邀请到 EmailService
聊天邀请: 通过 POST /api/media/会话/聊天创建/获得聊天会话 然后将会议邀请为会议短信。 使用 与ChatTool/ChatBox完全相同的API模式. 电子邮件邀请:新的/api/meet/invite-email路由发送多段形式数据 到电子邮件Service的/api/email/send en...
Use getServerName() instead of getHeader(Host) for original host resolution
ForwardedHeaderFilter consumes X-Forwarded-Host and adapts getServerName() accordingly, while getHeader(Host) returns the raw HTTP Host which may be a K8s inter...
通过 Meet 本地读取锁定显示名称 认证用户的名称配置
- Sidecar config.js 现在只读了 Name: true when user has *** cookie 。 或 JWT 在页面 URL (通过引用者/cookie 标题被检测) - nginx通过 Cookie 和 参考器头到侧式车厢进行配置。js 请求 - 这使用Meet的内置输入读取 仅是道具,...
Send chat invites to correct WebSocket topic /topic/chat/incoming/{memberId}
Was publishing to /topic/chat/member/{id} but kamo-internal subscribes to /topic/chat/incoming/{id}. Also fixed Member entity field access **************** inst...
转发全部会场( sendChatInvite, 发送电子邮件Invite, 自定义Message, 房间Alias, 加入Url) 到后端
Next.js API的路线是剥去发送ChatInvite,发送电子邮件Invite, 自定义Message, 和Alias室—— 只有转发室Name 并邀请 Meneillids. 后端没有收到邀请旗,没有Alias室(导致400人),也没有 自定义消息。 现在前进所有田地.
从OTK会话生成Prosody JWT, 并用 ?jwt= 重定向给合适的主持人验证
现在的OTK流: 1. 通过侧车校验OTK → 获得会话(成员身份、显示Name等) 2. 将显示名称保存到本地Storage 3. 呼叫/api/auth/jwt,以生成由主持人=real的签名的Prosody JWT 4. 从?otk=xxx到?jwt=Token (Meet的原生JWT支持). 5. 在重定向的页...
将 org 导航颜色应用到整个会前左列, 而不仅仅是工具栏条
目标.会前屏幕(全重容器)及其内容 面板孩子而不是生成类名。 也涵盖会议期间 工具箱和电影夹.
将访问者 IP 和 User- Agent 转发到后端, 以便准确记录账户活动
Next.js API线路没有转发X-Forwarded-For,X-Real-IP,或 用户代理头到 Java 后端, 导致账户活动登录 Next.js spoot 的内部IP和默认获取用户代理而不是实际 网络访客客户端信息.
在端口 80 上使用 HTTP 来匹配其他服务
8443上的 HTTPS 端点在路由时造成 SSL 证书不匹配 通过 K8s 内部 DNS. 所有其他服务在80号口使用HTTP.
显示每个成员会议的会议对话框,而不是直接绕过
成员项目(互动中心)和ChatBox(聊天工具窗口) 与目标成员预选的“对话”打开“对话” 用户可以在 开始开会.
路由通过APIService而不是直接MediaService满足配置 API
现有的会话/创建路由使用extraToApi( APIService), 该路由 代理媒体服务。 新的配置/背景路线必须遵循 与现有基础设施的工作模式相同.
在连接前屏幕上锁定已认证用户的显示名称输入
经认证的成员(通过OTK抵达)事先填写其姓名,并 锁定 —— 输入设置为只读已禁用指针事件 。 变异观察员确保锁在“满足”制作后仍然适用 预接屏幕充满活力 匿名/嘉宾用户仍然可以编辑 他们的名字自由。 成员必须改用卡莫-内部名称.
在配置中使用相对的 BOSH/ WS URL, 添加 OTK auth 并带有名称预填, 负载 org CSS 表示导航颜色
三个修正: 1. config.js BOSH URL由集群内部地址改为相对地址. /http-bind (nginx 代理给Prosody). WebSocket使用主机头. 2. 品牌/覆盖.js现在通过URL参数验证OTK,得到会话 在本地Storage中显示预填充Name 屏幕自动显示成员的名字。 3. 装入包...
Add dnsPolicy ClusterFirstWithHostNet to JVB StatefulSets so hostNetwork pods can resolve cluster DNS
将 Chat Now 后的新标签按钮仅作为图标移动, 删除重复的 Notes 链接
新 Tab 现在是一个图标按钮(没有标签),放在Chat Now右侧. 从NavTop删除的笔记,因为它已经在NavPri了.
启用 nginx SSI并复制缺失的 HTML 包括文件(head.html, base.html,字体.html,body.html,插件.head.html)
Meet Meet 使用 nginx 服务器侧面包含来作曲索引.html from 多个部分 HTML 文件. 没有启用 SSI 和包含的文件 目前,此页面作为空白的暗屏幕.
在 KbArticle AI 可见字段中添加明显的 @ JsonProperty 注释
确保杰克逊的序列化/去序列化aiEnabled,aivisible To Public, ai 可视化成员, 具有正确字段名的可视化成员.
防止因默认道具数组引用而导致在 MeetingDialog 中无限重递循环
使用效果已经预先选定成员(不履行)作为附属成员, 在每次渲染时创建新阵列并触发无限设定状态 循环。 通过使用 ref 来跟踪开放状态过渡来固定, 删除 不稳定的解析器,并将刷新按钮移出文本字段 避免重起扳机的插槽Props.
使 Chat Now 图标为白色, 将邮件徽章与信件列表同步, 对主题颜色使用 CSS 颜色混合
- NavTop: 将论坛Icon颜色改为白色以匹配Chat Now标签 - 信件浏览器/邮件按钮:通过自定义事件协调 WebSocket电子邮件刷新,所以徽章计数与信件列表保持同步 - FeatureCard/page:用 CSS 彩色混合插件取代硬编码的彩色六角插件,用于适当的主题支持
Reference *** instead of non-existent turn-secret in Prosody deployment
简化使用会议直接生成OTK和开放会话窗口
后端会话 API 端点尚不存在 - 跳过会话记录 创建现在。 将错误处理添加到所有点击处理器中以防止 客户端崩溃 .
使用 make 构建系统并添加 .dockerignore 用于满足 Docker 构建
满足用途 make/webpack, 不是 npm 运行构建 。 已添加 -- legacy- peer- deps 用于对等依赖冲突,以及 .dockerignore 排除节点 模块 从建设背景.
制作能见度复选框和列车AI来切换独立控件
能够访问文章的能见度(成员、小组成员、公众)控制 在KB UI中。 Train AI是用于RAG索引的单独切换工具,不是父程序 可见的复选框.
保存上游 X 前置 Host 而不是用自己的主机覆盖
当上游代理( Next.js) 设置 X- Forwarded- Host 到浏览器时 原主机, APIService 现在保存它而不是用它覆盖 拥有主机头. 当请求通过 内部 K8s 服务 URL.
使用内部 K8s URL 用于 API 路由, 为非 KamoCRM orgs 修复可视化上传
API 代理正在计算每个矿石的外部 URL (https://api.{domain}), 它只解决了 KamoCRM。 现在直接使用 API SERVICE URL env var 内部出行. 并在APIService 和 APIService 中保留了上层的 X-Forwarded-Host 传播实际后端错误而不是...
Re-fetch notes after create/update to show decrypted content in preview
The backend returns encrypted content/contentPlain in POST/PUT responses, causing NoteCard previews to display ciphertext until page refresh. Now re-fetches via...
Disable all auto-link behaviors in KB editor to prevent paste-as-hyperlink bug
The linkExtension singleton from @lexkit/editor retains internal paste handler state across component remounts. Disabling autoLinkUrls, autoLinkText, and linkSe...
Prevent KB editor link extension state leaking between article creates
Move Lexical extensions from module-level singletons into a factory function called via useMemo per component mount, so each new article gets fresh extension in...