Skip to main content

· One min read
moonrailgun

Feature updates

Add message search function

Searching for chat information in a session is now supported. Because of the search is directly request to database, there will be a timeout for performance reasons. That is, if the database does not return search results within 5 seconds, it will be considered a timeout.

Other updates

  • HTTP requests add static caching to object storage and public files
  • Add the environment variable REQUEST_TIMEOUT to customize the rpc request timeout, the default is 10 * 1000, in milliseconds
  • AI assistant adds more tips
  • Add telemetry information collection (can be turned off through environment variables)
  • Fix issue with iam plugin not fitting light theme in login view
  • Add defer tag to tianji script

· 2 min read
moonrailgun

Feature updates

Added support for sharing screen on desktop version

Now, you can click on screen sharing on the electron and select the window you want to share.

Add desktop version and native browser rendering

Supports opening web pages that cannot be opened due to restrictions in the web version

For example, the following is a web page that cannot be nested due to website policies and will not be embedded due to web security restrictions.

But you can turn on native rendering of web pages and use built-in native browser rendering instead of embedding web pages.

In this way, you can break through the security restrictions of the other party's website and embed it into any page freely, just like using a browser

If the switch does not take effect immediately, you can press the shortcut key cmd + r to reload tailchat

Other updates

  • Increase file access count record
  • Add message search interface
  • admin: Support deleting private messages
  • fix problem which ai assistant will be transparent in popover in light mode
  • fixed the bug where # would appear when typing without rich text plugin being loaded
  • Fixed a bug that would cause the database to record files repeatedly when uploading the same file

· One min read
moonrailgun

Feature updates

Add panel view permissions

In order to better control the poanel display, panel view permissions have been added in this update. You can control the user display method in the group level or panel level permission control.

You can control the display and hiding properties of the panel through a combination of permissions.

It should be noted that the group-level permissions and panel-level permissions are merged rather than overwritten. This means that if the group permissions are turned on, the user will have relevant permissions regardless of whether the panel permissions are turned on or not.

info

After this update, the default group permissions will be lost. This is because new permissions have been added and the previous groups were not granted this permission. For specific repair methods, you can read this blog to learn more: Group view panel permission problem

Other updates

  • Added clipboard processing tools
    • Added url processing tool by default
  • admin: Added all file size statistics
  • Fixed linkmeta plugin support for bilibili video links
  • Fixed the problem that the linkmeta plugin does not match the bbcode address

· One min read
moonrailgun

Because of new version of group permission, all group user which create group before cannot view panel because of lost view panel permission.

To batch update all group permission, you may need this script below.

Go into mongodb bash, you can use script in bash like its operation: docker exec -it <your-mongodb-container-name> mongo

switch to tailchat db

use tailchat

update all group and append core.viewPanel permission to all group

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

· 3 min read
moonrailgun

Feature updates

Add panel-level permission control management

A panel field has been added to the permission registration. When this field is set and matched to a certain panel type, the permission will be displayed in the advanced permission control.

Permission design is based on whitelist form. This means that he will inherit the group's permissions.

Example one:

  • This role in the group has the [Send Message] permission
  • This role does not have the [Send Message] permission in the panel
  • Finally, this character has the [Send Message] permission in all text panels

Example two:

  • This role in the group does not have the [Send Message] permission
  • This role has the [Send Message] permission in the panel
  • In the end, this role only has the [Send Message] permission in the panels with permissions set above, and does not have the permission to send messages in other panels.

Q: Why does tailchat use the union of panel permissions and group permissions instead of permission override?

A: Because compared to many fixed-design applications, Tailchat needs to consider the design of the plug-in. The plug-in can register customized permissions, and these permissions are uncontrolled. Only by allowing users to develop the habit of whitelisting permission management during their operations and actual use will the permissions not be out of control when new plug-ins are added. In addition, the behavior of overwriting is more unpredictable because it will overwrite each other.

An example is, if we want users to have no permissions in a certain panel, but have permissions in other panels, then the most convenient way is to set the group scope to have permissions, but the panels have no permissions. The lack of permissions on the panel will override the permission design of the group. But there is a difference here. We don’t know whether the user expects to have permissions by default or not by default. But currently he has permissions except for a certain panel. The difference between the two is that when a new panel is added, whether he expects to have permissions or not. permission denied. Tailchat wants to eliminate the mental coverage and understanding costs that the difference between the two situations brings to users, so it chose the most conservative way to design the permission system.

Other updates

  • Fixed a possible xss attack because we allowed iframes to pass in srcdom, which could inject inline style code.