跳到主要内容

· 阅读需 1 分钟
moonrailgun

特性更新

增加消息搜索功能

现在支持在会话中对聊天信息进行搜索,因为是直接在数据库中搜索,考虑到性能原因会有一个超时时间,即5s内数据库没有返回搜索结果即视为超时。

其他更新

  • http请求对对象存储与公共文件增加静态缓存
  • 增加环境变量 REQUEST_TIMEOUT 用于自定义rpc请求超时时间,默认10 * 1000, 单位毫秒
  • AI助手增加更多提示
  • 增加遥测信息收集(可以通过环境变量关闭)
  • 修复 iam 插件不适合登录视图中的浅色主题的问题
  • 为tianji脚本增加defer标记

· 阅读需 2 分钟
moonrailgun

特性更新

增加桌面版分享屏幕的支持

现在,可以在electron上点开屏幕分享并选中想要分享的窗口了

增加桌面版增加原生浏览器渲染

支持打开因受到网页版限制而无法打开的网页

例如,如下是一个因为网站策略无法被嵌套显示的网页,受限于网页安全限制不会被嵌入

但是你可以打开网页原生渲染,使用内置的原生浏览器渲染替代嵌入网页

这样你就能突破对方网站的安全限制,自由嵌入任何页面,就像是在使用浏览器一样

如果切换后没有立即生效,可以按下快捷键 cmd + r 重新加载 tailchat

其他更新

  • 增加文件访问次数记录
  • 增加消息搜索接口
  • admin: 支持删除私人消息
  • 修复浅色模式下AI助手在popover中透明的问题
  • 修复了在未加载富文本插件的情况下键入时出现 # 的错误
  • 修复了文件上传同一文件时会导致数据库会重复记录文件的bug

· 阅读需 2 分钟
moonrailgun

特性更新

增加面板展示权限

为了更好的控制展示内容,在本次更新中新增了面板展示权限,你可以在群组级别或者面板级别的权限控制中控制用户展示方式

你可以通过权限的组合来控制面板的显示与隐藏属性。

需要注意的是,群组级别的权限与面板级别的权限合并方式是合并而不是覆盖,这意味着如果开启了群组的权限,那么不论面板权限是否开启权限该用户都是有相关权限的

信息

在本次更新后默认的群组权限将会丢失,这是因为增加了新的权限而过去的群组是没有授予该权限的,具体的修复方式可以阅读这篇博客了解更多: 群组面板可见性权限问题

其他更新

  • 增加剪切板处理工具
    • 默认增加url处理工具
  • admin: 增加全部文件大小统计功能
  • 修复linkmeta插件对bilibili视频链接的支持
  • 修复linkmeta插件不匹配bbcode地址的问题

· 阅读需 1 分钟
moonrailgun

由于新版本的群组权限,所有之前创建群组的群组用户都无法查看面板,因为失去了查看面板权限。

要批量更新所有群组权限,您可能需要下面的脚本。

进入 mongodb bash,您可以在bash中使用脚本,如下操作:docker exec -it <your-mongodb-container-name> mongo

切换到 tailchat 数据库

use tailchat

更新所有组并向所有组附加 core.viewPanel 权限

db.groups.updateMany({}, { $addToSet: {fallbackPermissions: "core.viewPanel" } })

· 阅读需 4 分钟
moonrailgun

特性更新

增加面板级别的权限控制管理

在权限注册中增加了panel字段,当这个字段被设定并匹配到某一面板类型时,权限将会在高级权限控制中显示

权限设计基于白名单形式。这意味着他会继承群组的权限。

示例一:

  • 群组中该角色拥有【发送消息】权限
  • 在面板中该角色没有【发送消息】权限
  • 最终该角色拥有在所有文本面板的【发送消息】权限

示例二:

  • 群组中该角色没有【发送消息】权限
  • 在面板中该角色拥有【发送消息】权限
  • 最终该角色仅在上述设定拥有权限的面板拥有【发送消息】权限,其他面板没有发送消息权限

Q: 为什么tailchat会采用面板权限与群组权限取并集的形式而不是权限覆盖的形式?

A: 因为相比于很多固定设计的应用来说,Tailchat需要考虑到插件的设计,插件可以注册自定义的权限,而这些权限是不受控的。只有在用户的操作中与实际使用中让用户养成白名单的权限管理习惯,才会让当新的插件加入时不会出现权限失控的情况。另外覆盖的行为是更加不可捉摸的行为,因为他会相互覆盖。

一个例子是,如果我们想要让用户在某个面板没有权限,但是其他的面板有权限,那么最方便的做法是设定群组范围有权限,而面板没有权限。面板的没有权限会覆盖群组的权限设计。但是这里有一个分歧在于我们并不知道用户期望的是默认有权限还是默认没有权限但是目前除某个面板以外都有权限,这两者的差异在于当新的面板被添加时期望是有权限还是没有权限。tailchat想要消除这两种情况的差异对用户带来的心智覆盖和理解成本,因此选择了最保守的方式设计权限系统。

其他更新

  • 修复了一处可能的xss攻击,因为我们允许iframe传入srcdom,而这是可以注入行内样式代码的。