Releases: asimons04/tesseract
1.4.41
Note: This is the final release of Tesseract, and the repo will be archived after this build is completed.
Bugfixes
1.4.40
1.4.40
Bugfixes
- Don't add comment text to conversation line button tooltip if comment is hidden.
- Check if comment_view.comment.content is undefined before setting the text to it. Only shows up in console log as an error, so it's non-breaking but still annoying
- Remove gap in post heading button bar where the "Moderation" button would be if the user is not a mod
- Fixed "Hide Deleted Posts" filter. It's a holdover from the 0.18.x days and recently, you can only see your own deleted posts. The filter was hitting the safety check to not hide your own content before this rule fired, so there's now an exception above the "post is from self" check.
- Inspect alt text for keywords in post filtering
- Fix feed not returning to correct post when return back from clicking into it (if open in modal/new tab is not enabled)
- Community icon in post view modal no longer scrunches with long post titles
- Post view modal was not wrapping the community icon with the proxy URL
Changes
- When collapsing a comment thread, if the top portion of the thread that's being collapsed is outside the viewport, scroll it into view. If that part of the thread is already in the viwport, don't scroll and leave it where it is.
Private Instance Support
If "Private Instance" is enabled, all API-based routes will only show a banner informing the user that the instance is private. This has links to both login and signup pages.
Filtering
- Refactored post keyword filtering to be a bit more efficient
- Add ability to filter NSFW posts (works in addition to NSFW blur)
- Add ability to filter posts from bot accounts (without blocking them entirely)
- This is mutually exclusive with the "Collapse Bot Comments" filter option. They can both work at the same time, but it's a lot of redundant clicking to reveal the content or even see who it is.
- Add time to expiry date when showing temp bans in modlog
- Reduce padding in modal contents on smaller viewport screens
1.4.39
1.4.39
Bugfixes
- Fix bug where expanding/collapsing the post image would trigger unwanted reactivity causing the comment section to refresh.
- Comments now respond to the "lockPost" event in order to disable/enable the reply button appropriately.
- If an inbox item is expanded, switching accounts or refreshing the list as a new item arrives would keep the text from the previous comment while updating the heading info correctly. Caused the wrong comment/reply to be displayed.
- Same as above but for moderation reports
- Don't invalidate/refresh Reports page when resolving a report (not needed).
- When removing a post/comment, if you enabled the option to send a reply message and left it blank, it would throw a toast message informing you as such but not reset the "loading" variable and kept the "submit" button disabled.
- When distinghishing a mod comment, only push top-level comments to the top of the tree. e.g. if you need to distinguish a comment that is a reply to another comment, that would previously push a copy of that distinguished reply up as a top-level comment.
- Fixed unhandled error when an admin enters the community settings when there are no moderators.
- Fixed "Local Community" toggle not reflecting API state after reload.
- Fix truncation in post headings to account for community display names where the community creator thinks "Display Name" and "Community Long Description" are the same picture :sigh:
- Note: Backported to 1.4.38
- Svelte was URI-encoding ampersands when rendering links
- The absolute time displayed in the tooltip of the RelativeTime component was not updating correctly when re-rendering due to a reacctive event.
- If you linked an image in markdown, the image would render but without the link. Now, the link will be below the image.
- e.g.
[](https://example.com/article/page.htm)
- The cause is that zoomable image takes precedence over the hyperlink.
- Known "bug": Badges (e.g. img.shields.io are still kind of ugly and don't really fit the model. Working on some exceptions for things like those, but that didn't make it into this release.
- e.g.
Changes
Filtering Revamp
The filtering subsystem has been refactored and enhanced. Prior to this release, anything that was filtered was simply discarded before being rendered.
Now, filtered objects will show a placeholder that indicates which filter was triggered (or which keywords triggered the filter). Clicking the "eye" button on the placeholder will show the hidden content.
This is the case for both posts and comments that are hidden by your filter preferences.
Notes on Filtering
There are a few safety checks in place that will disable the filters under certain conditions. The first two are to prevent moderation blind spots, and the rest are just sanity checks/compromises to keep from over-complicating things.
- If you are a moderator, the filters will not apply to content posted to any community you moderate. This includes viewing reports.
- If you are an instance admin, the filters will not apply to content posted to any local communities.
- The filters will not apply when viewing your own content anywhere in the app.
- Filters are not applied when viewing someone's profile.
- If you have a community filtered, going to its
/c/
page or browsing it in a modal will show the community's content, though any other filters are still applied (keywords, user filters, etc). Reason being, you went to the commmunity, so the content shouldn't be filtered out by default.
Finally, filters are global and apply to all accounts in use in the app. You cannot have different filters on one account than on another. I may change my mind at some point, but it made much more sense to have one set than one set per profile. It also eliminates the need to have extra management tools to copy them or sync them between profiles and other things like that.
Keyword Filters Now Apply to Comments
Keyword filters now apply to comments! I had always meant to apply them there, but until the work done to the comment section in this release, I didn't have a way to apply them that wouldn't nuke the rest of the thread. Now, just the offending comments will be hidden with the rest of the chain remaining intact.
Filtered comments will hide the score and creator as well. Unless manually revealed, the "creator" will be Tesseract@your-instance.xyz
with the Tesseract logo as the avatar. Revealing the comment will replace that with the actual creator. This is to both further hide/mask content you don't want to see as well as keep the formatting/rendering consistent.
Additional Filtering Options
There are a few new filters available as of this release:
Hide Content from Blank Profiles
A "blank profile" is one that lacks both a bio and an avatar. Why? Sometimes you might want to filter out "faceless opinions" for a while and/or only deal with the people who are more likely to be here for the community rather than anonymous opinion shouting.
Filter Users (Soft Blocking)
You can now filter users rather than blocking them. This is especially helpful for those who moderate large communities. Think of filtering out a user like a "soft block".
Why would you want to filter a user rather than block them?
Lemmy's blocking has a couple of glaring issues:
-
Content from blocked accounts does not show up in communities you moderate. This leaves a huge blind spot when you don't want to see content from certain users but it is not warranted to ban them from your communities.
-
When you block a user, not only are their comments not visible in the comment section, you will not see any replies to them, either. Depending on who you block, this could cause you to miss out on quite a bit of discussion.
If you filter those users instead, both of those are addressed:
-
Filters are automatically disabled on communities you moderate, so you will still see content from the filtered users there but you won't anywhere else.
-
Only the filtered user's comment will be masked; all the replies will be visible.
How to Use:
To filter (or un-filter) a user, click their username to bring up the User Profile Modal. From there, use the "Filter User..." (or Un-Filter User...) button in the modal. When a user is filtered, all of their content in the current area will collapse to a placeholder (or un-collapse if you're un-filtering them).
You can also manage the filtered users direclty from Settings->Filters->User Filters
. Be aware that is pretty low-level, and you're basically editing a list of actor IDs. It's best to only use that to remove items, though you can add them there as well. It will also accept a comma-delimited list of actor IDs, so you can add them in bulk:
e.g.
https://instance.xyz/u/jerk1, https://instance.xyz/u/jerk2, https://other-instance.abc/u/AnotherJerk
Again, the users you enter directly must be in the actor ID format as that is what's compared when running the filters. An incorrectly formatted entry will not break anything, but it won't work, either.
Filter Communities (Soft Block Communities)
Similar to users, you can also filter/soft block communities.
Why would you want to do this instead of block the community?
Think of it like a soft unsubscribe. Need a break from a community but don't want to unsubscribe completely? Filter it! You'll see a placeholder stub in the feed for it, and you can reveal if you want to. Otherwise, it's out of sight, out of mind. When you're ready to get back into the community, just un-filter it.
Comment Section
-
Added color-coded conversation lines to comment threads.
- The conversaton lines are clickable buttons and can be used to collapse/expand threads.
- The user avatars in the comment header have ring borders corresponding to the thread color
- Avatars are now de-coupled from the user links; clicking them will expand/collapse the thread
- Are color-coded by default but can change to monochrome if you prefer.
- Setting is in
Settings -> Posts and Comments -> Color Coded Conversation Lines
-
Tweaked comment renderers / layout
- Removed "card" effect
- Distinguished comments now render fancier.
-
Comment text height can be limited to 120px and be expanded/collapsed (similar to post bodies in the feed).
- Disabled by default
- Can enable via
Settings -> Posts and Comments -> Limit Comment Height
Moderation
-
When removing a post/comment and opting to reply with a reason via comment, automatically distinguish the comment.
-
In the Community Profile Modal -> Ban/Unban User panel, you can now search for a user as well as enter the actor ID, @user@instance.xyz, or https://lemmyverse.link/u/user@instance.xyz format.
-
Added a quick shortcut to "Moderator View" in the sidebar. Will not show unless the current account is moderating at least one community (e.g. if you're an admin that isn't explicitly a moderator of any community, it will be hidden).
-
Added a button on reports that will copy the report text to the clipboard if you want to use it in the removal reason.
User and Community Profile Modals
-
Added button to view user's modlog history in the full modlog (without having to open the embededded, mini-modlog first.
-
Both can be middle-clicked to open the full modlog in a new tab on desktop
-
Added "View in Full Modlog" button to User
Profile Modal -> User Modlog
panel (Thought I already had this, but it was in the moderation modal) -
Added button to filter (or un-filter) users or communities.
Inline Comment Removal Reasons
- Clicking the "hand" icon will now load the modlog details for the comment even if you have the setting disabled. If the setting is enabled, ...
1.4.38
1.4.38
This release brings bugfixes, a user-requested feature, enhancements to reactivity when performing mod actions, various UI polish, additions to status indicators, and a special little something-something for mods and admins to make their lives MUCH easier.
Bugfixes
-
Now that most instances are on 0.19.4 and above which natively support alt text, remove the post title as a fallback alt text.
-
Check if the first 150 characters of a post body contains an image since the lazy loading was sometimes preventing the "does the post body scroll" check from returning true. This caused the "expand" button to not appear unless you toggled the post to compact/card and back.
-
Un-distinguishing a comment did not reactivly change the background back from green.
-
Bug 47: Selected sort state was not preserved after navigating away from
/c/{community}
As a result of this bugfix, community URLs can now specify the desired sort method (e.g./c/community@instance/{sort}
-->/c/tesseract@dubvee.org/TopMonth
). If no sort paramater is supplied (e.g./c/tesseract@dubvee.org
), it will use your default sort type. -
Disable create post button if community is local and current profile is not local to that instance.
-
The post body would not reactivly update if the body content was cleared out (e.g. responding to purge post event or if you edited the post body and removed the text). The content was correctly saved, but it only re-rendered on refresh. Now accounts for empty or undefined values in post body when triggering a re-render.
-
Fixed several glitches with the Crosspost list:
- Opening it no longer triggers unwanted reactivity which caused certain elements to re-render. Most notable was expanding the list would cause the comment tree to reload (still no idea why) and/or cause the page to re-jump to the specific comment if you originally linked to it.
- Performing mod actions from the crosspost list now correctly updates the xpost count and will clear the xpost component if all crossposts have been removed.
-
Re-added a hack to partially patch a memory-leak. I had removed this previously to resolve another issue, but I think that no longer applies after other changes. Svelte(/kit) swears there's no memory leak, but there definitely is. Not sure if this is fixed in Svelte 5, but we'll see when I get around to porting it. Ugh.
Changes
-
Per user request, add alt text-as-caption for image posts (similar to markdown images). Controlled by the same "Show alt text as caption" user setting. Only shows in "card" view since there's no room in compact view, and it would be confusing to mix it in with the body text.
-
Finally added the option to set community visibility when creating or editing a community.
-
Add missing indicators to Community Card
- Posting Restricted to Mods (Yellow 'Mods only' Badge)
- Local Only (Orange "Local" Badge)
-
UserLink component now responsive to ban user events. When banning a user from areas not attached to a post/comment (e.g from search or modlog), the banned indicator will change to reflect the state rather than relying on the post/comment handlers.
-
When purging a post with the post opened (e.g. when the comment section is loaded), the comments will update to show "Purged" as well since the API also removes the comments from purged posts.
-
Disable scroll to top of post when expanding post body in card view (still does for compact since the fixed height allows the whole post to be visible.
-
Flairs are now scoped to the community if you are in a community feed (vs main feed). If you click a post flair, it will search for other posts with that in the title. Now, if you are browsing inside a community, the search will scope itself to the community you're in when you click on a flair tag.
-
Made the inline removal reasons for comments prettier.
- Now shows when the mod action was taken
- For admins and mods, will show the moderator who performed the action
- The "hand raised" icon is a button which links to the modlog for that item.
-
Add indicator badge row to comments; move deleted/removed indicators to this row. The 'removed', 'baned site', and 'banned community' badges are clickable button links to relevant modlog entries.
- Deleted by Creator
- Removed by Mod
- Banned from Site
- Banned from Community
New Features
Local Communities
Can now set the community visibility to "local" when creating or editing a community.
ModQueue v0.1
Select Multiple Comments and Perform a Single Mod Action for them All
Added a nice little something-something for the mods this release. It's the initial version of a new set of mod tools which I plan to expand upon.
Ever have to break up a slapfight or nuke an entire comment thread that has gone completely toxic and off the rails? I have, and it's tedious work.
Not anymore.
There are two new buttons available to mods/admins in the comment section:
- Bulk Actions button (badge) at the top of the comment section
- "Check" button on comment items
Clicking the "check" on a comment will select it and add it to a queue. Select as many as you need, and then click the "Bulk Actions" button at the top of the comment section. From there, you can remove (or restore) all of the selected comments at once. The same reason/action will be used for all selected items.
Note: While it would be nice to have a "select all chlid comments" button on the topmost thread comment, due to API limitations and having no guarantee all of the parent comment's children have been loaded, you have to select each comment manually. Still, it's a huge improvement over performing an individual removal for each. I may look into doing a very deep fetch with the selected comment as the root, which should cover most cases, but there's still no guarantee from the API that all of the child comments are loaded.
Future Goals
At present, you can only remove or restore comments from the comment section with this feature, but the plan is to build upon this. Under the hood, there is support for posts and users, but that hasn't been fully integrated yet.
Roadmap and use-cases include:
- Add option to ban/unban the creators of the selected items
- Preview and edit the list of action items prior to issuing the action
- Allow selecting posts from the feed to perform a bulk action
- Allow selecting posts, comments, and/or users from the search results to mod in bulk.
The mod queue is currently scoped only to the current post and clears upon reloading/refreshing. This was intentional to avoid accidental actions for items that may have been selected from another entry. Once the UI for this feature matures, I'm going to make this persistent so that it is a proper mod queue that can work across posts, communities, pages, etc.
Suggestions for this are welcome. I have only my own experience to draw from, so there may be cases I haven't considered or use-cases that haven't (yet) applied to me.
1.4.37
1.4.37
Minor update with bugfixes, UI polish and, at least for now, the removal of a few rarely-used post views.
Bugfixes
- Issue 35: Preview length setting counts markup and trims before applying it resulting in short previews and broken links.
- Annoyance: When an
<hr>
element was used toward the top of the post body, it would wrap below the thumbnail image in compact view. Changedwidth
tomax-width
in the markdown post CSS.
Changes
Post Action Buttons
On desktop post action buttons are now in a single row. On mobile and smaller-width desktop, the actiom buttons reflow to two rows as they were in the previous release. This makes better use of the available space as well as making the post header slightly more compact.
Post Body Previews in Feed
The post body has been re-implemented in the feed. This fixes issue 35 as well as provides a better-looking post preview.
Instead of a dumb substring from 0 to postBodyPreviewLength
of the pre-rendered post body text, it now renders the body in full and conditionally limits the height of the container. This ensures the content is rendered correctly when collapsed as well as being cleaner, better looking, and more responsive.
Removed Unused View Modes
Due to the architectural change of the post body component (as well as lack of use), the "Reader", "Ultra-Compact", "More-Compact", and "Compacter" view modes have been removed. They would have required re-implementation from scratch anyway, so I just got rid of them. If there is demand, I can eventually re-introduce them later.
If your view was set to any of those, it will now migrate it to "wide-compact" which is the closest remaining view.
Removed Settings:
- Post Body Preview Length
- Post View Mode options:
- Compacter
- More Compact
- Ultra-Compact
- Reader
1.4.36
1.4.36
Bugfixes
-
When zooming an image, it was using the thumbnail image rather than the actual image (when present). Apparently my local instance's thumbnails are close enough to the original quality that I just never noticed.
-
Fixed truncation in site card for long instance names and domains.
New Features and Changes
Compatibility Layer: Supports Local /post/{post_id}/{comment_id} Route Format
Note: This only works for your home instance. It does not work for remotely fetched posts. Additionally, this is not a "supported" way to share Tesseract links; it's just there for convenience if you want to turn a local Lemmy UI link into a valid Tesseract link.
If you're in Lemmy UI and want to view a post in Tesseract, you can just change the domain and the post and/or comment params should translate transparently.
e.g. Where 123456
is the post ID and 98765
is the comment id:
Change https://lemmy.world/post/12345/98765
to https://t.lemmy.world/post/12345/98765
which then automatically redirects you to https://t.lemmy.world/post/lemmy.world/post/12345?thread=0.4567.98765
Got Rid of Post State Badges (Featured, Locked, Removed, Deleted, Hidden, Saved)
"Hidden" and "Saved" are now indicated via toggle action buttons on the post itself. The rest of the states now appear in the post title like flairs (though with unique icons and fixed colors).
If a post is removed, the "Removed by Mod" flair is linked to the modlog entry for the post.
Color Coded Post Cards
Deleted, removed, and featured posts now have colored cards to distinguish them.
- Removed or Deleted: Post has a red background and border
- Featured Local/Community: Post has a green background and border
New Post Action Buttons
Added a second row of post action buttons and tweaked some indicators
Save Post Button
Can now quickly save/unsave a post. Also indicates the post's saved state (got rid of badge which used to be the indicator). Also removed "Save post" from post action menu.
Hide/Unhide Post Button
Can now quickly hide/unhide a post. Hiding (intentionally) does not automatically clear it from the feed. This give you a chance to undo it without having to go through a confirmation dialog every time. Unless "show hidden posts" is enabled in the feed options, the next feed refresh will not show that post.
The "hide post" button was removed from the post actions menu.
Report Post Button
Quick button to report a post. The "report post" button was removed from the post action menu.
Share Menu
Added a dedicated share dropdown to share links to the post and removed "Share" link from post action menu. Available share links include:
- Canonical (ActivityPub) Link: Basicaly, to the post on the home instance of its creator
- Local Post Link: A link to the post on your home instance / default UI
- Tesseract Link: A link to the post relative to the instance of Tesseract you're using
- Lemmyverse, Threadiverse, and LemShare Links: Instance-agnostic links which can rediect to the user's own home instance
Some options are only available if viewing the post on your home instance; local post link and Tesseract post link will be hidden if you are viewing a post via a remote API fetch.
1.4.35
1.4.35
This is a bugfix / fine tune release building upon 1.4.34. No new features, just optimizing a few things based on feedback.
Bugfixes / Changes
-
[0a4fea7] Decrease opacity from 90% to 80% when fading read post titles since 90% wasn't really perceptible
-
[5c47bf9] Got rid of "Removed Comment" spoiler on removed comments for mods and now show the text in-place like it used to be in 0.19.3. Still requires the automatic modlog lookup feature to be enabled and finding an entry for the comment in the modlog. The logic is the same, just the presentation a bit more streamlined to match what admins see (and what mods used to see).
-
[ec94483] Fixed an errant comma causing the keyboard shortcut for inserting a hyperlink to not wrap the selected text correctly like the toolbar button does.
-
[de6e069] Additional Spotify CDN detection for their thumbnails (when did it become "good" practice to stop using file extensions?! >:O )
-
[cce48a2] Disable inline images in removed comments. If a comment is removed and contains inline images, disable inline images when showing the comment content for mods and admins. Will show a link instead which can be previewed in a modal without leaving the current item. Local (home instance) custom emojis still show inline per the bugfix in 1.4.33.
-
[003bf7c] Add a temporary exception regex to not localize off-site
/u/
links such as Reddit and YouTube. This is a temporary fix for an immediate bug while I work on the infrastructure changes needed to check if the target is to a Fediverse instance. -
[5fd84f6] Re-add badge-ify step for post/comment links only if they're a "bare" link. e.g.
https://instance.xyz/post/12345
will become a badge while[See this post](https://instance.xyz/post/12345)
will be a regular link. Both still have the same "open in modal" behavior like with the badge buttons, but this should account for people linking entire sentences/paragraphs that were problematic when converting all post/comment links into badges.
1.4.34
1.4.34
Bugfixes
-
[a84bc5d] Add community-banned indicator to vote view if
banned_from_community
is present in the API response. -
[1e5bfea] Disable actions if banned from community (all actions the API forbids if user is community banned):
- Post/comment vote buttons
- Edit post/comment
- Delete/Restore post/comment
- Report post/comment
- Moderation buttons (if a mod is banned but not removed from mod team, they'll still see mod action buttons but be unable to perform any)
- Create post, subscribe, and "community settings" buttons in /c/community and community modal
-
[0216bc2] Don't cache
getCommunity
lookup results. While nice in theory, it prevents being aware you've been banned or any changes to the community during the cache validity window with no way to automatically invalidate beyond a fixed TTL. -
[d4df7d0] Don't badge-ify post and comment links. That worked well until people would link entire paragraphs. :sigh: So they're regular links now, but they still open up in modals.
-
[ac8db3d] Bring community mod team management section up to current API spec
- "Top Mod" can now transfer community
- Added confirmation dialogs when removing a mod or transferring a community.
- Made "transfer community" button icon less ambiguous
-
[564980d] Selecting "browse communities" from the
/instances
list was still using the old URL param for the instance rather than the new route param.
New Features
User Purge [Admin]
Admins can now ues the user profile menus/modals to purge users.
Inline Comment Removal Reason
Notes:
- This only works if you are viewing a post on your home instance. Otherwise, the "Removed by Mod" text won't be linked to the modlog, and the removal reason will not be present.
- This feature is disabled by default. To enable, go to
Settings -> Posts and Comments -> Show Inline Comment Removal Reasons
If a comment has been removed by a mod, it is now linked to the modlog. Additionally, Tesseract can attempt to lookup the comment in the modlog and display the removal reason.
Additionally, if you are a mod, it will show you the comment content that was removed. Have to pull this from the modlog along with the reason (so if that lookup fails, this won't work either). Hiding removed comments from mods is yet another big-brain move by the Lemmy devs that I have to cleanup client-side.
Changes
User Profile Share Button + Support for LemShare
The "Share" button on user profiles is now a menu, and I got rid of the separate buttons for "Lemmyverse Link" and "Actor ID". Added support for Lemshare. Now, clicking "Share" button in user profiles will open a menu with the following options:
- Lemmyverse Link
- Lemshare Link
- Threadiverse Link
- Actor ID
- Local Link (Local to your instance)
Misc
- On main feed, when expanding "Site Info" or "Legal" panels in the sidebar, add a mini site card (logo + name) at the top.
- Limit post flairs to 25 characters before truncating; add title tooltip with full flair text
- Removed the +/- quick (un)subscribe buttons from post/comment community icons since the community modal makes subscribing/unsubscribing easy and these are no longer necessary.
- Removed red background on removed comments. Looks okay on a single comment, but once you have to break up a slapfight, it's just too much.
1.4.33
1.4.33
Bugfixes
- Piefed links are identical to Lemmy but not API compatible; fixed bug when loading a Piefed link in a modal. Now has button similar to
/post
to load the outside pos/comment link in a new tab/window. - PeerTube seems to have a new video ID format. Added that to the detection regexes so those will embed.
- Fix typo in "Check for Notifications" label
- Fixed / accounted-for Spotify thumbanils (they don't have extensions and weren't being detected as images)
- Home-instance custom emojis exempted from inline media disable setting
- Fixed broken semver comparisons on 0.19.10+ (any features requiring greater than API 0.19.3 were being disabled).
- Removed mobile OS "share" integration as it was more trouble than it was worth. Now all 'share' and 'copy link' buttons just write the item to the clipboard.
- Add slight right margin to comment action bar so buttons aren't smooshed against the side (especially when "reverse action bars" is enabled)
Minor Changes
- Site card hidden in sidebar when Site Info or Legal accordions are expanded (to make it easier to view those)
- Increase top margin on heading elements in markdown to better space out sections
1.4.32
1.4.32
This is purely a hotfix release to add some security/privacy in the face of the "Nicole" spam wave; attempting to address de-anonymization concerns related to inline media in private messages.
Instance admins on 0.19.6 and above can now manage the blocked URL list in the admin panel.
Changes
- Updated JS client to 0.19.9 version to add support for newer API features.
Bugfixes
- Disable reply button in Inbox if creator is banned
Admin Panel
- Renamed "Slur Filters" section to "Filters"
- [0.19.6+] Can now edit blocked URLs in the Admin->Filters section.
Private Messages
Inline images are now disabled by default in private messages. If an embed media item (image, video, or audio) is detected in the DM content, a toggle action will appear above the message where you can opt to load the inline media if you trust the source of the DM (similar to how Thunderbird and other email clients treat inline images if you have them disabled).