1
6
submitted 3 days ago* (last edited 3 days ago) by [email protected] to c/[email protected]

I don't know exactly what cadence you'd call this, but all the point releases that are divisible by 10 are basically "cleanup releases".

I usually try not to introduce anything new in these and rather focus on debugging, refactoring, and streamlining all the changes for the previous 9 releases.

So, don't expect anything groundbreaking from the next version.

That said, I am asking for feedback on things; what can be improved (without adding anything new), what's buggy, etc.

So far in 1.4.40, I've done the following. In addition to these, are there any particular areas that could be improved?

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 comment text value to it. Only shows up in console log as an error, so it's non-breaking, but it's still annoying
  • Fixed the gap where the moderation button would be in the post action toolbar if 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.

Filtering:

  • Add ability to filter NSFW posts (works in addition to NSFW blur)
  • Add ability to filter posts from bot accounts (without blocking them entirely)

Enhancements:

  • When collapsing a comment thread via the conversation line, if the topmost comment in the thread is outside the viewport, scroll it into view.
2
8
submitted 4 days ago* (last edited 4 days ago) by [email protected] to c/[email protected]

I guess it also depends on how many days you've configured an account to be considered "new".

Reason being, with lemm.ee shutting down at the end of this month, a lot of accounts are moving to other instances, so you'll probably be inadvertently filtering far more people than you intend.

When things are stable, it's a nice filter option to hide the whack-a-mole trolls who keep popping up, but when a major instance closes shop and/or there's some kind of mass-migration in progress, it can be detrimental.

3
4
1.4.39 Released (dubvee.org)
submitted 1 week ago* (last edited 1 week ago) by [email protected] to c/[email protected]

Highlights in 1.4.39

  • Enhanced the content filtering options
  • Revamped the comment section display
  • Tweaked some mod tool behavior
  • Spruced up the modlog
  • Quite a few bugfixes

Changelog

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. [![This is a linked image](https://foo.com/image.jpg)](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.

Content 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.

  1. If you are a moderator, the filters will not apply to content posted to any community you moderate. This includes viewing reports.
  2. If you are an instance admin, the filters will not apply to content posted to any local communities.
  3. The filters will not apply when viewing your own content anywhere in the app.
  4. Filters are not applied when viewing someone's profile.
  5. 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 [email protected] 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.

User Filtering (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:

  1. 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.

  2. 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:

  1. 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.

  2. Only the filtered user's comment will be masked; all the replies will be visible.

Community Filtering (Soft Blocking)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.

How-to Use User/Community FilteringTo 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).

Communities work the same way except from the community profile modals.

You can also manage the filtered users directly 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.

Comment Section Revamp

  • 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

Tweaks to Moderation Options

  • 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, @[email protected], or https://lemmyverse.link/u/[email protected] 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.

Tweaks to 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.

Tweaks to the 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, then it will take you to the full modlog for the entry.
  • Moved comment removal reason box above the comment text.

Enhancements to the Modlog

Gave the modlog a slight visual and functional refresh

  • Can now +/- quick filter by action type
  • More consistent and uniform layout
  • Removed redundant components
  • Moved filter options out of sub-navbar and into page proper
  • Cleaner mobile/desktop reflow
  • Can switch between relative timestamps (1 hr ago) and absolute timestamps for modlog events

Additionally, it can now lookup the moderatee on "remove post" action types. The API very stupidly doesn't include the person details on the "Remove Post" (or lock post) events, so Tesseract can optionally/automatically perform a lookup based on the post's creator ID if you have that option toggled on.

Note that an API-lookup is a "last resort". In the modlog loader, it will attempt to resolve the creator_id by looking at other entries in the batch of modlog entries it retrieves. If it finds a person object matching that id, it will add it transparently and not trigger an API-lookup. The API lookups are also cached for 5 minutes (too short, and they're not useful, too long, and ban indicators may not show when they should). Attempting to resolve those in the loader, synchronously, caused too much delay in loading the page, so they fill in dynamically/asynchronously after the modlog renders.

Get Tesseract

4
3
submitted 1 week ago* (last edited 1 week ago) by [email protected] to c/[email protected]

Getting closer!

Differences since Beta 1: The updated filtering capabilities have been merged in. I hadn't originally planned to spruce up the filtering in this release, but it was born out of necessity. That said, I'm quite happy with the refinements that have been made.

As before, I need the extra eyes on this to suss out any last minute bugs. Hopefully no more features creep into this release. This one was an exception as I just...needed it.

If you find any bugs, please let me know: Reply/post here, Github issue, report it in the Matrix rooms, wrap a note around a brick, you know the drill.

Change Notes for Filtering System

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.

  1. If you are a moderator, the filters will not apply to content posted to any community you moderate. This includes viewing reports.
  2. If you are an instance admin, the filters will not apply to content posted to any local communities.
  3. The filters will not apply when viewing your own content anywhere in the app.
  4. Filters are not applied when viewing someone's profile.
  5. 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 [email protected] 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:

  1. 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.

  2. 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:

  1. 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.

  2. 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.

The process is the same as with filtering a user, except it's accessed from the Community modal (click any community link in the app).

5
9
submitted 1 week ago* (last edited 1 week ago) by [email protected] to c/[email protected]

This release isn't quite ready yet mostly because I'm still tweaking small things here and there. Functionally, all of the major changes are stable (plus or minus any undiscovered bugs). The hosted instance (https://tesseract.dubvee.org/) has been updated to this beta to get some more eyes on things. If you hit any bugs, please let me know in whatever manner is easiest for you (reply here, Matrix rooms, Github, note wrapped around a brick, etc)

Highlights

  • Comment section has gotten an overhaul
  • Spruced up the modlog
  • Bugfixes and small UI tweaks

Change Log for 1.4.39

Bugfixes

Reactivity

  • 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.

Moderation

  • 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.

Community Settings Section

  • 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.

Misc

  • [Display] 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
  • [Annoyance] Svelte was URI-encoding ampersands when rendering links

  • [Time Display] The absolute time displayed in the tooltip of the RelativeTime component was not updating correctly when re-rendering due to a reacctive event.

Changes

Comments

  • 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, @[email protected], or https://lemmyverse.link/u/[email protected] 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)

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, then it will take you to the full modlog for the entry.

  • Move comment removal reason box above the comment text.

Enhancements to Modlog

Gave the modlog a slight visual and functional refresh

  • Can now +/- quick filter by action type
  • More consistent and uniform layout
  • Removed redundant components
  • Moved filter options out of sub-navbar and into page proper
  • Cleaner mobile/desktop reflow
  • Can switch between relative timestamps (1 hr ago) and absolute timestamps for modlog events

Additionally, it can now lookup the moderatee on "remove post" action types. The API very stupidly doesn't include the person details on the "Remove Post" (or lock post) events, so Tesseract can optionally/automatically perform a lookup based on the post's creator ID if you have that option toggled on.

Note that an API-lookup is a "last resort". In the modlog loader, it will attempt to resolve the creator_id by looking at other entries in the batch of modlog entries it retrieves. If it finds a person object matching that id, it will add it transparently and not trigger an API-lookup. The API lookups are also cached for 5 minutes (too short, and they're not useful, too long, and ban indicators may not show when they should). Attempting to resolve those in the loader, synchronously, caused too much delay in loading the page, so they fill in dynamically/asynchronously after the modlog renders.

6
2
submitted 2 weeks ago by [email protected] to c/[email protected]

I was asking for tips about working with markdown tables, and this was recommended

https://thisdavej.com/copy-table-in-excel-and-paste-as-a-markdown-table/

It says it does it all in javascript, so is that possibly something you can add to Tesseract? I don't know what technical challenges that would involve -- just seeing if it's possible and/or if it's something you might think about adding.

7
7
submitted 4 weeks ago* (last edited 4 weeks ago) by [email protected] to c/[email protected]

Lately I have had the need to clear browser cookies. What I noticed is that not only will I be logged out of my account (logical) but the settings I had set in Tesseract are also reset to their default state. Logging into the server where I have my account does not give me my settings back unfortunately.

Is there a way to save all my settings? And if there is no option to do so, can we have that in Tesseract?
Ideally it would be on my own storage location. I host Tesseract on my docker server and if the settings can be saved there automatically then that would be great.

8
1
submitted 1 month ago* (last edited 1 month ago) by [email protected] to c/[email protected]

Summary: Unless anyone speaks up, I'm leaning toward removing those two views.

I'm rewriting the component for the post body preview in the feed to address my own gripes as well as Issue 35 in Github.

TL;DR is that the "Ultra-Compact" and "Reader" views rely on the "Post Body Preview Length" setting and the old method of doing the previews which was just a dumb "show X characters of the post body" based on the un-rendered body markdown.

The new method uses the rendered output and controls the height of the body text for a similar effect. It's also MUCH more responsive and able to take the screen width into account. In short, it's much more flexible, looks much better, and is probably what I should have done the first time.

"Reader" and "Ultra-Compact" rely on a setting that I'm going to be removing. So, rather than re-implement those and complicate what is, finally, a clean/simple refactor, can I just get rid of them?

If you're using them, that's fine. It's no problem to re-implement. But if no one is using them, I'd just assume get rid of them.

9
2
submitted 1 month ago* (last edited 1 month ago) by [email protected] to c/[email protected]

I'm testing a feature in my current dev branch and would like some feedback.

When loading a removed comment in the comment section, it automatically fetches the removal reason from the modlog and appends it below 'Removed by Mod" on the comment. The "Removed by Mod" text is also linked to the modlog entry for the item.

Not shown here, but if you're a mod, it will also append, in a spoiler block, the original comment that was removed. Somewhere between 0.19.3 and 0.19.9, the Lemmy devs decided mods should no longer be able to see removed comments in their own communities, which I think is a huge regression (though thankfully admins can still see them).

Thoughts? Is this asking for drama, or would it be generally beneficial? Right now, in the dev branch, it just does it, but I can make it a user option.

10
8
submitted 2 months ago by [email protected] to c/[email protected]

This is a mainly bugfix release.

Important: If you are using Tesseract on 0.19.10, this fixes a feature regression that disabled all 0.19.4+ features.

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

Get Tesseract

Docker

  • ghcr.io/asimons04/tesseract:1.4.33
  • ghcr.io/asimons04/tesseract:v1.4.33
  • ghcr.io/asimons04/tesseract:1.4.33:latest

Resources

11
1
submitted 2 months ago* (last edited 1 month ago) by [email protected] to c/[email protected]

Note: I know it's probably a little early depending on your time zone, but I scheduled this to send at midnight UTC (8pm my time) because I wanted to release version 4.1 on 4/1 as I'm an absolute sucker for gimmicks (which will become very apparent as you read the release notes).

About

I've been working on this in a new repo for months, and I'm extremely excited about this release. In fact, this is such a major release and paradigm shift that I'm jumping 3 major and one minor versions (this was originally slated to be v2.0).

It's still AGPL, and I hope to make the source code public soon, but until I've done some cleanup, the repo is still private and is only released as pre-built Docker images. Unfortunately, only amd64 is supported at the moment since I'm having trouble with Github Actions and can't do arm64 builds locally. Hope to have that resolved by the next release. 🀞

What's New?

Absolutely everything!

I'm tired of being John Henry / "old man who yells at cloud", so I scrapped the crusty, old, human-written code and asked ChatGPT and CoPilot to rebuild it from the ground up. I've also completely integrated and embraced AI since that's apparently what everyone in the world wants in every piece of software and household appliance (according to the people making and selling the AI, anyway, and surely they wouldn't lie about that).

Without further ado, let me introduce you to TesseractGPT (aka Tesseract 4.1)!


Feature Highlights

Feed

I got rid of the feed completely. Since nobody wants to think anymore (who has time for that, amiriteβ€½), ChatGPT will now just summarize each page of posts for you. However, beta testing indicated that was still too much reading and thinking (what are we, a bunch of nerds?), so now it also summarizes recursively for the convenience of the unthinking majority (i.e. it summarizes the summaries and then summarizes that again).

Now, instead of the old way of having to scroll through a bunch of wordy posts (boring!), pictures with words on them, or worse, pictures of words, you'll get a nice two-word summary of the entire day's feed in big, block letters in the middle of the screen.

And, just like that, I'm all caught up and done scrolling for the day. Thanks TessGPT! Uh, I think?

Posts

Are you tired of feeling pressured to be creative all the time? Tired of being expected to actually have something to say when you want to say something online? Well, TesseractGPT's got your back!

Gone is the big, empty text field where you previously had to make your brain muscles do work. Now, you just tell it what you want the post to be about, and TessGPT will put it into internet words for you. And if you can't even think of something for that, no problemo! Just tell TessGPT to "make some shit up" by pressing the intuitively named "Make Some Shit Up" button.

Community Auto-Selection

You don't even have to select the community anymore. How cool is that?! Based on either the prompt you gave it or the shit it made up itself, TessGPT will take care of that for you by finding the 5 most appropriate communities and blasting it out to them all. If you're not subscribed to any communities appropriate for the generated post, no worries; it's hardcoded to fall back to c/Technology, c/News, c/Politics, and c/WorldNews because, hey, no one else reads the rules, so why should you? Reading is for nerds, and following the rules is for squares!

Comments

A lot of work has gone into modernizing the comment system.

Multi-Reply

First, there's also a new feature called "Multi-Reply". To use Multi-Reply, click the checkboxes on any number of posts and/or comments, and your single reply will go out to each of the selected items. It's hard to capture that functionality in a screenshot, so just picture this but with your own opinions.

Overhauled Comment Form

The second big upgrade is that there are now two, brand-new ways to comment on posts. Additionally, the old-timey text input has been removed from the comment section in favor of a more modern approach to online interactions. I think you'll find the two replacement methods quite convenient and way better than the old text input.

Comment Method 1: Just hit the button labeled "Whatever you think, ChatGPT".

GPT will analyze the post or comment and compose + submit a response on your behalf. No critical thinking or understanding the subject matter required!

Pro Version Only: If you upgrade to TessGPT Pro, you will be able to preview the GPT-response before committing to it. Standard plan is "take what it gives you".

One of my less-informed friends penned this wee testimonial and was kind enough to allow me to include it in the release notes:

Comment Method 2: Use the "You're a Nazi" button.

Godwin's Law has won, and I'm fully embracing that as of this release. Instead of having to spend precious time calling everyone on the internet who disagrees with you a Nazi, you can just hit a single button and move on with your day. Combine this with the new "Multi-Reply" feature, and everyone on the internet will quickly and conveniently know that you think they're a Nazi.

Pro Version Only: If you upgrade to Pro, it will automatically switch to an alt, reply "Yeah, that {account_name here} sure is a Nazi", and upvote you while also downvoting the person you slightly disagree with.

I'm confident this feature alone will triple the productivity of many here on the platform.

Homer Simpson's drinking bird repeatedly hitting 'Y' on the keyboard

Actually, you don't even have to hit the Nazi button if you don't want to. TessGPT studies your voting patterns and submission history. When it detects a post or comment that it thinks you slightly disagree with, it'll automatically and kindly inform the other person that you think they are, indeed, a Nazi.

Sorry, drinking bird, but you're out of a job.

Don't you mean extinct?

DMs

It's just Nicole now. The reply text field has been removed, and you can only enter your credit card and/or bank info.

All hail the Fediverse Queen.

Pro Version Only: Pro allows you to use a crypto wallet. We totally won't be skimming off of that, though πŸ€₯


Funding Model Change

Until now, I was happy to produce this client with no donations. Starting with this release, and in order to feed the AI companies it relies on, TesseractGPT now has a mandatory monthly minimum donation or else the software locks after a grace period of 4 minutes.

Additionally, there is a Pro version which can be unlocked by an optional mandatory monthly minimum donation of $40. The Pro version unlocks additional features.

It's not a subscription. I hate subscription models, so I would never release software that way. That said, I do find the mandatory monthly minimum donation of $20 more than fair. You can donate more, though, and we encourage that. For example, Bryan here donates $35 a month. Do you want to do the bare minimum or be like our superstar Bryan?


Known Bugs

  • Occasionally, the feed summary will just say "Go Outside". It's not necessarily wrong, so I may keep that as a feature. However, it doesn't take the weather into account, so might need to tie in a weather API for liability reasons.

  • The signup process hasn't been revamped yet, so there's still some brain cells required to come up with a username. Our engineers are hard at work and hope to make that process thought-free in the next release.

  • The "Whatever you think, ChatGPT" API response isn't cleaned up before submitting the comment. This leads to some comments containing fewer grammatical errors than would be expected of comments with so little thought put into them.

  • Occasionally the "You're a Nazi" button will erroneously and automatically reply to your own posts/comments. This bug is marked low priority because, hey, if you don't say it, someone else will.

Planned Features (Not Yet Implemented)

Sealion Button

Mom, can we stop and get some Hexbear?

No, we have Hexbear at home.

[Hexbear at home...]

Pressing the "Sealion" button will prompt TessGPT to relentlessly argue against the selected comment thread in 100% bad faith. Due to the computational overhead and expenses, this is limited to one thread at a time in Standard and 15 at a time in Pro.

Pro Version Only: Combine the "Sealion" button with the "Multi-Reply" feature to have your own mini troll farm. The limit of 15 still applies, but any beyond that will be added to a queue and processed in order.


Get Tesseract

  • Docker: ghcr.io/asimons04/tesseract:AprilFoolsEdition

SpoilerIf it's not glaringly obvious, this is an April Fool's Day post and should be read with the world's largest /s.

However, I should be releasing 1.4.33 with some small bugfixes soon.

Update: I'm sad no one noticed the Ghostwriter cameo :(

12
0
submitted 2 months ago* (last edited 2 months ago) by [email protected] to c/[email protected]

Late January, I had to step away from the project for a while to deal with some family stuff. That's resolved, but try as I might, I just cannot force myself to get back into development mode on this.

I've got other projects I want to work on, both hobby and home improvement. I need to focus on the latter, and really want to focus on the former. Like anyone else, my time is finite.

The Hard Truth

Tesseract was written for Lemmy, and I'm tired of porting it to Lemmy over and over again because the Lemmy devs keep breaking the API. Yes, yes, pre-1.0 technically means they can shred the API and break everything from release to release. But when a project is widely used, in perpetual beta, and has lots of other developers developing against it, it's disrespectful to them to constantly introduce so many breaking changes when it can be avoided. And it CAN be avoided; they just don't bother.

So where does that leave the project?

Well, potentially completely broken once instances start updating to Lemmy 1.0, and I don't know that I have it in me to continue. At least, not without help. So if you're fluent/proficient with Svelte, please drop me a line.

The original plan was to pivot to Sublinks, but development on that project has stalled. Piefed also has an API that also seems to be fairly stable. I may pivot there and leave Lemmy to its own devices. If there exists a somewhat painless way to convert a Lemmy database to Piefed, I am also looking to transition my instance to that.

Bottom Line

I've grown disillusioned with Lemmy as a platform and flat out despise its developers. I'm tired of the uphill climb just to keep the basic functionality working because the Lemmy devs don't care about anything except Lemmy UI. I've got other things I need to do, a finite amount of free time, and the Lemmy devs picked the worst time to pointlessly break the whole goddamned API. If you want Tesseract to continue, I'm going to need direct help in maintaining it.

13
1
submitted 10 months ago* (last edited 10 months ago) by [email protected] to c/[email protected]

This announcement covers both 1.4.5 and 1.4.6

(I really need to start disabling the UI debug button when I take screenshots lol)

1.4.6

Bugfixes

  • [Modlog] Fixed some filter selections not clearing from modlog when clicking "Reset Modlog Filters"

Changes/Enhancements

  • Post titles now render as markdown (merged from an old branch as I was unaware Lemmy-UI finally supports this)
  • If downvotes are disabled at the instance level, upvote buttons are now hearts

New Feature: Disable Downvotes

Users can now disable downvotes in the UI (regardless of instance settings).

When downvotes are disabled in the UI, the behavior is the same as if they were disabled on the server:

  • The "downvote" button is removed
  • Downvote counts are not shown (upvote counts are independent of downvote counts)
  • The "upvote" button becomes a "heart" icon (which acts like a "favorite" or "like" button on other platforms)

You can also combine this with the hide scores option. In that case, the button will just be a "heart" that's highlighted if you have upvoted/liked the post/comment and plain if you've not voted.

Note: If your instance already has downvotes disabled globally, then the UI option to disable them will be hidden since it would be useless.


1.4.5

Bugfixes

  • [Markdown Renderer] Fixed bug where trailing spaces on the end of a spoiler container would break the rendering

Enhancements

  • Add "Ground News" to the "Alternate Sources" dropdown
14
0
submitted 11 months ago* (last edited 11 months ago) by [email protected] to c/[email protected]

Changelog for 1.4.x Series (Intrepid)

1.4.0

This is the first release which completely drops "legacy" support for 0.18.x and below. The minimum required API level is now 0.19.3 (though it will work with any 0.19.x series, there will be broken features that require 0.19.3).

None of the 0.19.4 features are implemented yet. Updating my instance to 0.19.4 is not on my priority list at the moment, though I really wished the media listing was present when I added the new media handling stuff. :sigh:

I'll probably be working on the 0.19.4 features sometime soon as I would like to finish what I had in mind for the media handling, and 0.19.4 provides the missing piece.

Anyway, here's what's new and improved:

New Features

Zoomable ImagesMost images are now zoomable: post images, user/site/community avatars, images posted in comments, etc.

All the pan/zoom libraries I tried suuuuuuucked, so I ended up rolling my own from scratch. The pinch zoom isn't quite where I want it, but it's a start. If anyone wants to contribute some code for improving that, please let me know.

  • Support zoom, pan, and rotate
    • Mouse scroll to zoom
    • Click/grab to pan
    • Rotate via on-screen buttons
    • Double-click to quick zoom in/out by 2x
  • Gesture support
    • Pinch zoom in/out
    • Swipe up to zoom in
    • Swipe down to zoom out
    • Swipe left or right to close the zoom modal
    • Other gestures may be added once I figure out a clean way to differentiate them from conflicting mouse events

Basic Gesture SupportFirst, I should point out that I am not a fan of gesture navigation; absolutely hate it as a primary method of interaction. I'm old and hate having to guess whether my fingers need to do the Macarena or the Hokey-Pokey to perform what should be an intuitive action.

That said, I do like waving things (and people) away.

To that end, I've added some gesture recognition in a few places, mostly modals. Any modal can now be dismissed with a left or right swipe in an area not bound by other event handlers.

  • e.g. You can't swipe in the text field to dismiss an edit/report/ban/remove modal; you have to swipe outside of that.
  • Left/right swipe was chosen as to not interfere with scrolling so it could be used consistently across all modal types.

The only other place, currently, with gesture support is the image zoom modal (described above).

I may add some additional swipe actions where it's intuitive to do so. For now, I'm content with modals being easier to dismiss on mobile without having to reach up to the close button in the top corner.

User Profile ModalsClicking on usernames throughout the application will now load a modal with their user card and relevant action buttons. Old behavior was taking you to their profile directly.

Actions include:

  • Go to profile
  • Message in Lemmy / Matrix
  • Block User
  • Search for alts / simiarly-named accounts
  • Ban user from instance (admins only)
  • View user on their home instance
  • Copy Lemmyverse link for user

Image Management on Posts/Comments

  • Images can be pasted in the post's URL field as well as in the markdown editor.
  • Images can optionally be pre-processed to webP along with a user-selectable quality level. Especially useful if your instance limits the size of uploads
  • Can delete post images (only before you save the post; unfortunately there's no way to retrieve the delete token after that even though it is stored in the DB. Yet another API limitation :sigh:)
    • This is addressed in 0.19.4, but I don't have support for that yet.
  • Images pasted/uploaded into the markdown editor are tracked in a bar along the bottom of the editor. Individual images can be deleted as needed along with the corresponding markdown code for them.

Hide Posts/Comments From New UsersIn App Settings -> Filters, you can now opt to hide posts/comments made by new users. You can also set the number of days an account is considered new: 1 to 30 days. That setting also is applied to the new user badges (if you set the minimum age to 15 days, any account 15 days or younger will show the new user badge).

This setting behaves differently for mods and admins:

  • Mods: Filter will be applied to all posts/comments except in communities of which you are a moderator.
  • Admins: Filter will be applied to all posts/coments except those made to communities local to your instance or those made to remote communities of which you are a moderator.

Comments made by new users will be hidden, and that includes any replies (essentially behaves the same way as blocked users)

Federation State ViewerFrom the instances menu on a post, there's a new option called "Federation Stats" which will show you the stats from your instance to the target and from the target to your instance. Also included in that is an estimated cacluation of the number of activities each instance is behind (useful for troubleshooting federation delays).

This information has also been added to the instance items at /instances

Please note that the "Activities behind" counter is only an estimate. The value for newest_activity_id is not provided by the API (because that would be useful, so why would the Lemmy devs include it?), so it has to be estimated. The estimation is done by looking at the last_successful_id of all the linked instances and grabbing the highest number and subtracting the last_successful_id for the selected instance. Not all of those activities would necessarily be coming to your instance (votes/posts/comments to communities yours isn't subscribed to, etc), so it is merely an estimation. Just because it shows you are behind by X number doesn't necessarily mean it's behind by that many.

Instances PageRe-wrote this to do manual pagination, searching, and filtering. Much more responsive now that it is not rendering several thousand components each with actions items.

"Click to Play" Media EmbedsIf media is disabled in the feed, the thumbnail will now have an overlay button that will convert it to an embed on-the-fly.

When loading a video via click-to-play, I'm conditionally setting the "autoplay" flag where the embed API supports it, but it doesn't always seem to be honored. This is an attempt to not have to press "play" twice for a video. So far, the only video frontend that seems to honor it is YouTube. Invidious/Piped, so far, do not, and neither does PeerTube.

Ok, so autoplay works if muted (no idea how YouTube's player gets around this; probably some chicanery). I think that's worse because you still have to click twice on the videos, and the "unmute" button is harder to reach than "play". So I think I'm going to just settle on having to click play twice.

This seems to be be a Chrome/Chromium thing (and explains why YT gets to bypass this). In Firefox, the autoplay flag is respected without having to mute the video.

Re-Integrated Piped Support as an Embeddable Youtube FrontendNow that click to play has been added, Piped support has been added back. It was removed due to poor performance and rate limiting when used with feed embeds.

If media embeds are enabed in the feed, only YouTube frontend will show direct embeds. Piped/Invidious will always be click to play regardless of embed setting due to above mentioned rate limiting / performance.

Alternate Source Dropdown / Archive LinksRemoved the [Archive Link] next to the post URL and replacd it with a fancy menu to the left of it.

  • On posts with links, it currently has buttons to search for the article at Archive Today, Ghost Archive, and 12ft.io
  • On Youtube-like posts, can select alternalte links for YouTube, Invidious, or Piped
    • Invidious/Piped will open with your preferred instance (defined in settings)
    • Useful if someone posts a video to an Invidious instance that performs poorly for you and you would prefer to view it on your preferred Invidious/Piped instance or canonically on YouTube.

Quick Action MenusOn mobile, the navbar was getting cluttered, so most of the discrete dropdowns there have been moved into Quick Actions menus.

  • Main, Community, and User feed pages: Quick Actions has replaced all discrete menus
  • Search Page, Modlog, instances page, and Community Browser: All of the filtering options are in a quick action menu

Users Can Now Add Their Own Preferred Invidious/Piped InstancesPrior to this release, any Piped or Invidious instances needed to be added by the administrator via environment variables. In addition to that, users can now add any number of custom Invidious and/or Piped instances in the app settings.

These will be combined with the built-in list and the admin-extended list and be available for use as your preferred YT frontend and for detection of Piped/Invidious links in posts.

Be aware that those custom instances will only render as embeds for you; they will be thumbnails for anyone else who hasn't added them to Tesseract. If you feel that instance should be added to Tesseract's built-in list, please submit a Github issue with the details.

Tesseract is pre-populated with the official list of public instances for each, but it can get out of date easily.

Note: As of 6/20/2024, I've noticed a lot of Invidious/Piped instances are now requiring login, and embeds through them no longer work. I believe if you have an account with one, log in, and enable 3rd party cookies for that domain, the embeds should work. I have not tried that, but it does work with Spotify. This isn't a Tesseract bug, unfortunately, or I'd fix it.

Can Disable Infinite Scroll if you WantIf you're not a fan of the infinite scroll, you can go to App Settings -> Feed and disable infinite scroll.

TOTP 2FA SetupCan now enable and enroll in 2FA as well as disable it.

Account Icons Now Use Your Profile AvatarIcons in the account switcher and account screens now sync to your profile avatar, if defined.

New Placeholder User AvatarsInstead of the initials as used previously on accounts without avatars, now uses Dicebear Adventurer pseudorandom avatars. Initials are still used for placeholder community icons when the community mods haven't set one.

Passwords Can Now Be RevealedAll password elements will now allow you to toggle them to reveal. Should make a big improvement when logging-in on mobile.

Vote Viewer (Admins Only)Admins can now see votes like in Lemmy-UI. Uses infinite scroll and deduplication to compensate for the stupid API that returns multiple/duplicate votes on each page.


Bugfixes and Enhancements

Removed 0.18.x Backwards Compatibility

  • Or, more specifically, removed 0.18.x JS client and the extensions I wrote to make that compatible with 0.19.x. Now uses the 0.19.3 JS client.
  • Removed the image upload proxy which was needed in 0.18x due to CORS restrictions.

Various Enhancements to Auth Module.

  • Added safety check so that the auth token is only ever sent to the profile's associated instance and cannot accidentally send to non-home instance (e.g. when browsing communities on a remote instance).
  • Fixed a few chicken/egg situations where the profile store needed to be accessed before it was initialized
  • If your auth token is invalid, such as after changing your password on another device, you will get a toast message you can click to take you to the login screen.
  • If a profile exists for a username/instance combo, logging in will update the auth token for that existing profile rather than creating a new one.
  • User avatars are now fetched when logging in.

Grace Period Before Media Embeds are Destroyed When Scrolling out of Viewport

  • Embeds now have a short timeout when leaving the viewport before they're removed from the DOM and turn back into thumbnails. Fixes annoyance when resizing the window while a video is playing and the video temporarily leaves the viewport and is destroyed. Timeout is 2 seconds and will reset/disarm if the post returns to the viewport before it expires.

Community Creation / Editing

  • Uses new upload handler for banner/icon
  • Can pre-process the banner/icon to webP before uploading
  • Shows a live preview of how the community card will look

General

  • Slightly darkened background color in light mode cards (bg-white->bg-slate-100) for better contrast. Did similarly for some button colors
  • Added "OpenDyslexic" as a UI font option
  • Can now close modals with Escape key, close button, or by swiping left/right
  • Added button to reveal password fields
  • Some modals can be closed by clicking out of them.
    • I need to disable this or make it more consistent. Some workflows utilize nested modals, so I do need to be able to keep them open when interacting with a child modal.
  • Added "share" link for searches.
    • Will generate a URL with the current search params and copy to your clipboard.

Other Stuff

Peertube Follows

On my last release post, someone mentioned that following Peertube channels may be broken. At the time I was still on 0.18.5 and had followed a PT channel, and seemed to be getting updates from it. Then I wasn't sure.

I can say that I have been getting at least some updates to the PT channel I follow (mostly as a test). While there have been videos posted there that did not come through to Lemmy, I don't know enough about PeerTube to know if they were published differently or what. However, I have gotten at least 2-3 that someone posted to Lemmy that would absolutely had to have come in via Federation.

Also confirmed that commenting on a PT video (from the channel feed, not an embed to a Lemmy community) does federate out and show up on Peertube's side along with any votes you give in Lemmy.

This isn't really a Tesseract issue since the Lemmy backend handles that. Just figured since I do support Peertube, it would be worth mentioning that it seems to work.

What Didn't Make the Cut This Release

  • User profile import/export
  • Link previews
  • Custom feed rewrite
  • Custom emoji management
  • Fediseer Rewrite

I keep kicking the can on the custom feed and infinite scroll re-writes, but for a good reason. I want to start using IndexedDB to get around storage constraints in the browser's LocalStorage API. I need to write and integrate a library for this (or find one I don't hate), and that's going to take some dedicated development time. Switching to IndexDB is also a step in the direction I want to go towards providing offline support. So, at some point, there will be a release that only focuses on that. Not sure if it'll be in the 1.4.x series or later, but ultimately, that is where I want to go.

Get Tesseract

15
0
submitted 1 year ago* (last edited 1 year ago) by [email protected] to c/[email protected]

Finally releasing 1.3.0. I didn't quite rip it down to the studs, but it was damn close. Much of the UI has been re-written as well as a lot of the underpinning helper functions. There's a lot of changes, though most are just enhancements and polish to things that already existed in 1.2.9.

The full changelog is a beast, so I'll only post the highlights here:

Highlights for 1.3.0

API Compatibility

1.3.0 "Defiant" remains fully compatible with both 0.18.x and 0.19.x. This will be the last version to support 0.18.x. Once development of 1.4.0 begins, the minimum supported API version will be 0.19.3.

0.19.x Features Supported

0.19 has had basic support (mostly auth) since 0.19.0 was released. In addition, 1.3.0 now offers a few more features that become available when connecting to an 0.19.x instance:

  • Scaled sort becomes available
  • Instance block becomes available
  • Instance blocks are managable through your Profile->Blocks page.
  • Cursor-based pagination is used if available but falls back to offset-based for 0.18.x

General

  • Whole UI has been polished. See the changelog for the full list of changes since 1.2.9
  • Removed markdown-it and all of its plugins as it was too cumbersome to extend to do some things I wanted to do and replaced it with svelte-plugin-marked. Wrote custom renderers to replicate the functionality of markdown-it-html5-embed and spoilers.
  • New community moderation capabilities (directly ban/unban users, localized modlog with quick actions)
  • Sidebar fonts are now more compact
  • Long community names are intelligently shortened where needed
  • You can now select one of several fonts to use for the UI. The default font is now Roboto.
  • New notification widget
  • Option to hide those obnoxious "anti AI" CC licenses people put on their posts/comments that they somehow think will prevent LLMs from training on their submissions. πŸ™„
  • Posts with URLs will now have an [Archive Link] next to them which will automatically search archive.ph for that URL. Please stop commenting "Paywalled" when someone posts an article.
  • "Copy Lemmyverse Link" added to user profile menus
  • Can now change password without having to go through "forgot password" process (I swear I thought I already implemented this, but I guess it never got merged in. Oops)
  • Action bar for posts/comments is now reversible. Primarily intended for mobile when you want the vote buttons to be on the right-hand side.
  • Bugfixes: too many to list

Search

This deserves its own section since the search was completely revamped.

  • Search filters cleaned up and polished
  • Can now search from community or user pages which will automatically filter the search to just that community/user
  • Added a "More from {user}" option to the community menu on posts. This will search for posts by that user in the current community.
  • #Hashtags are now automatically converted to search links

Remote Instance Community Browser Revamp

  • Can now one-click subscribe to communities on remote instances
  • Your subscription status for communities is now reflected against remote instances
  • Got rid of modal to view community info. Each item is now a collapsible item; expand to see community details.
  • Admins can specify a list of instances that will pre-fill the instance selector for quick browsing. Users can enter any instance they want also.

/instances Page

Can now view federated instances (allowed, blocked, linked) through Tesseract. Additionally, you can filter by software (Lemmy, Kbin, etc) and keyword as well as hide dead instances.

Each instance also has action buttons to view communities there (Lemmy only), visit the instance, view a Fediseer report for it. Dead instances are also indicated with a "thumbs-down" icon.

Instances are considered "dead" if they haven't been pinged in > 3 days.

Media

  • Peertube videos now embed seamlessly. You can already follow Peertube channels in Lemmy, and now they'll show as a feed of embeds.
  • Embeds now only render when they're in the viewport. Once an embed is out of the viewport, the iframe is destroyed and removed from the DOM. This saves a LOT of memory.
  • Can enable an option to show alt text as a caption on images in markdown (not post images, but images in the post body and coments).

Feed & Posts

  • Added buttons on community avatars to quick subscribe/unsubscribe (ok, saw that Photon did that and implemented it almost exactly the same. Sue me).
  • "Explore" menu is now "Instances" menu. Instance-specific options are here such as Fediseer reports, block that instance (0.19+), and browse communities there.
  • Infinite scroll is now the default.

Post Creation

In addition to the polish and cleanup, the form to create posts has some new features:

  • Can now pull the metadata from the given URL to pre-populate the title and pull a thumbnail for previewing
  • Uploading images can now use the image proxy URL to reduce load on the API server (if media proxy/cache is enabled by admins and users enable it in their settings)
  • Can preview in both card and compact views

Modlog

Lots of tweaks and polish, now has quick action buttons that can be used to reverse a previous action or take additional actions. You can also easily turn a temp ban into a permaban without the intermediate step of unbanning first.

Features That Did Not Make It Into 1.3.0

There are only two features that didn't make the cut:

Reimplement custom feeds

Since this is the last 0.18.x release, and I'm having to support both cursor and offset-based pagination, I've decided to push the custom feed rewrite to 1.4.0 which is dropping 0.18.x support. That will make implementation easier and cleaner than having to support both methods.

TOTP 2FA Setup

Same as with the custom feeds, I want to do this cleanly. Since 0.18.5's TOTP setup is bonkers and can easily lead to accounts being locked out, I've decided to skip adding this until 0.19.x is the minimum-supported version.

Get Tesseract

Feel free to play around with the demo instance (it's unlocked and can log into any Lemmy instance), but ideally, you'd host it yourself or ask your instance admins to offer it as an alternate UI.

Tesseract

116 readers
3 users here now

Tesseract: An Advanced Lemmy Client

The goal of Tesseract is to address as many things in Lemmy that annoy me as I can. I also trawl various "is there any way to [blank] in Lemmy?" posts to get feature ideas. Both of those lists are pretty extensive, so Tesseract has accumulated quite a few features.

Github: https://github.com/asimons04/Tesseract/

Hosted / Demo Instance: https://tesseract.dubvee.org/

Note that the hosted instance defaults to Lemmy World, but it is unlocked to be able to connect to any Lemmy server.

Announcements, support, and guidance for the Tesseract UI.

All instance rules apply here. Beyond that, just be civil and constructive.

founded 2 years ago
MODERATORS