cross-posted from: https://dubvee.org/post/1130768

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.

Screenshot description: Logged into my Lemmy World account, browsing communities hosted at programming.dev, and the community list is shown. Communities on programming.dev I’m already subscribed to are indicated, and the check buttons allow instant subscription to those (even if LW doesn’t yet know about them). Also shown is an instance selector dropdown featuring my home instance as well as instances set by the admin to appear there. At the bottom of that dropdown is a field where I can enter the domain of any Lemmy instance to browse.

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
  • [New] Fixed bug where admin state is not detected when connected to 0.19.x instances. If you’ve been using Tesseract on 0.19 and didn’t realize it has admin capabilities: surprise! It totally does and has. This bug just caused it to not detect you were an admin and hid them from you. See: https://dubvee.org/post/1148802

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/comments 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 planned 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. Tesseract supports logging in if your account has 2FA enabled, but you can’t manage 2FA settings yet. I may add that in a 1.3.x release and just limit it to 0.19.x instances like I’m doing with the other 0.19 features as long as I can do it cleanly without impacting support for 0.18.x.

Update

My thanks to @gedaliyah@lemmy.world for pointing out a bug when working reports. Fixes have been pushed out.

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.

  • Andrew@piefed.social
    link
    fedilink
    arrow-up
    4
    ·
    8 months ago

    Congrats. Tesseract has always been very impressive.

    This post suggests there’s a problem with Lemmy/PeerTube federation, but it’ll be good to see the videos embedded (even if they have to be brought through manually)

    • Admiral Patrick@dubvee.orgOP
      link
      fedilink
      English
      arrow-up
      3
      ·
      edit-2
      8 months ago

      Thanks!

      Interesting about the broken Peertube federation. I’m following a few channels (mostly for testing purposes) and I did get new posts to them from PT’s side and saw my votes reflected on each end. Haven’t gone back and done any comparison’s lately, though. That post says it hasn’t worked in ~3 months. If it’s a Lemmy issue, It’s possible that it works for me since my instance is still on 0.18.5? If something changed with Peertube, then I may have just not noticed. Will check on that when I have some time as I’m now curious.

      Update: Seems the ones I got were just from the initial fetch.

      Update #2: A new PT video came through this morning on one of the channels I follow. So maybe federation does work but is just wonky/inconsistent? Again, I’m still on 0.18.5 so may have something to do with it.

      Regardless, yeah, like you said, they’ll still embed when brought over manually.

    • Admiral Patrick@dubvee.orgOP
      link
      fedilink
      English
      arrow-up
      3
      ·
      8 months ago

      Thanks!

      Also, I’ve been watching The Good Place and completely read your comment in Jason’s voice. Hope that’s okay. 😆