[Performance/Records] Improved performance when loading a large number of records per page (e.g. API). There were some inefficiencies in sorting keys within dictionaries to discover key expansion paths.
[Performance/Records] Improved performance when loading a large number of record dictionaries. Previously, dictionaries returned deep keys as hints for expansion (e.g.
ticket_latest_message_sender_org_id). This was originally useful for creating placeholder menus in bot behaviors and snippets; but as more functionality has taken advantage of dictionaries the performance cost of crawling for deep keys has increased. Outside of placeholder menus, dictionaries now only return the next level of keys (e.g.
ticket_latest_message_sender_). Key expansion still works to an infinite depth, and in data queries or API requests it is assumed that desired keys are known in advance.
[Records/Dictionaries] Fixed an issue where null context dictionaries weren’t distinguishing between an empty string and NULL. This affected the returned label prefixes.
[API/Records/Search/Performance] Significantly improved the performance of the
/rest/records/<type>/search.jsonAPI endpoint. The results now only include the next level of key expansion hints (e.g. ticket -> ticket_group_). Key expansion to any depth is still with the
[API/Records/Search/Performance] In the API, the
/records/<type>/search.jsonendpoint may now return a maximum of 500 results per page.
[Records/Profiles/Widgets] Added a
type:filter to profile widget worklists.
[Import/Export] Added a
/install/extras/impex/. This tool is used to do distributed imports of packages from the command line.
[Mail/UX] In plaintext email and comments, updated the auto-hyperlinking filter to convert Markdown-formatted links to a more readable format. This also avoids “catastrophic backtracking” issues in the “GruberV2” regular expression.
[Mail/UX] In plaintext email and comments, the auto-hyperlinking filter no longer creates links for text like