Lemmy v0.19.0 Release

Written by @nutomic and @dessalines, 2023-12-15

What is Lemmy?

Lemmy is a self-hosted social link aggregation and discussion platform. It is completely free and open, and not controlled by any company. This means that there is no advertising, tracking, or secret algorithms. Content is organized into communities, so it is easy to subscribe to topics that you are interested in, and ignore others. Voting is used to bring the most interesting items to the top.

Major Changes

This release is very large with almost 400 commits since 0.18.5. As such we can only give a general overview of the major changes in this post, and without going into detail. For more information, read the full changelog and linked issues at the bottom of this post.

Improved Post Ranking

There is a new scaled sort which takes into account the number of active users in a community, and boosts posts from less-active communities to the top. Additionally there is a new controversial sort which brings posts and comments to the top that have similar amounts of upvotes and downvotes. Lemmy’s sorts are detailed here.

Instance Blocks for Users

Users can now block instances. Similar to community blocks, it means that any posts from communities which are hosted on that instance are hidden. However the block doesn’t affect users from the blocked instance, their posts and comments can still be seen normally in other communities.

Two-Factor-Auth Rework

Previously 2FA was enabled in a single step which made it easy to lock yourself out. This is now fixed by using a two-step process, where the secret is generated first, and then 2FA is enabled by entering a valid 2FA token. It also fixes the problem where 2FA can be disabled without passing any 2FA token. As part of this change, 2FA is disabled for all users. This allows users who are locked out to get into their account again.

New Federation Queue

Outgoing federation actions are processed through a new persistent queue. This means that actions don’t get lost if Lemmy is restarted. It is also much more performant, with separate senders for each target instance. This avoids problems when instances are unreachable. Additionally it supports horizontal scaling across different servers. The endpoint /api/v3/federated_instances contains details about federation state of each remote instance.

Remote Follow

Another new feature is support for remote follow. When browsing another instance where you don’t have an account, you can click the subscribe button and enter the domain of your home instance in the popup dialog. It will automatically redirect you to your home instance where it fetches the community and presents a subscribe button. Here is a video showing how it works.

Authentication via Header or Cookie

Previous Lemmy versions used to send authentication tokens as part of the parameters. This was a leftover from websocket, which doesn’t have any separate fields for this purpose. Now that we are using HTTP, authentication can finally be passed via jwt cookie or via header Authorization: Bearer <jwt>. The old authentication method is not supported anymore to simplify maintenance. A major benefit of this change is that Lemmy can now send cache-control headers depending on authentication state. API responses with login have cache-control: private, those without have cache-control: public, max-age=60. This means that responses can be cached in Nginx which reduces server load.

Moderation

Reports are now resolved automatically when the associated post/comment is marked as deleted. This reduces the amount of work for moderators. There is a new log for image uploads which stores uploader. For now it is used to delete all user uploads when an account is purged. Later the list can be used for other purposes and made available through the API.

Cursor based pagination

0.19 adds support for cursor based pagination on the /api/v3/post/list endpoint. This is more efficient for the database. Instead of a query parameter ?page=3, listing responses now include a field "next_page": "Pa46c" which needs to be passed as ?page_cursor=Pa46c. The existing pagination method is still supported for backwards compatibility, but will be removed in the next version.

User data export/import

Users can now export their data (community follows, blocklists, profile settings), and import it again on another instance. This can be used for account migrations and also as a form of backup. The export format is designed to remain unchanged for a long time. You can make regular exports, and if the instance becomes unavailable, register a new account and import the data. This way you can continue using Lemmy seamlessly.

Time zone handling

Lemmy didn’t have any support for timezones, which led to bugs when federating with other platforms. This is now fixed by using UTC timezone for all timestamps.

ARM64 Support

Thanks to help from @raskyld and @kroese, there are now offical Lemmy releases for ARM64 available.

Activity now includes voters

Upgrade instructions

Follow the upgrade instructions for ansible or docker. The upgrade should take less than 30 minutes.

If you need help with the upgrade, you can ask in our support forum or on the Matrix Chat.

Pict-rs 0.5 is also close to releasing. The upgrade takes a while due to a database migration, so read the migration guide to speed it up. Note that Lemmy 0.19 still works perfectly with pict-rs 0.4.

Thanks to everyone

We’d like to thank our many contributors and users of Lemmy for coding, translating, testing, and helping find and fix bugs. We’re glad many people find it useful and enjoyable enough to contribute.

Support development

We (@dessalines and @nutomic) have been working full-time on Lemmy for over three years. This is largely thanks to support from NLnet foundation, as well as donations from individual users.

This month we are running a funding drive with the goal of increasing recurring donations from currently €4.000 to at least €12.000. With this amount @dessalines and @nutomic can each receive a yearly salary of €50.000 which is in line with median developer salaries. It will also allow one additional developer to work fulltime on Lemmy and speed up development.

Read more details in the funding drive announcement.

Changes

API

Config

You can see the current config options here.

Lemmy Server

  • Sort by post id in post view (#4270)
  • Debug random test failure (#4275)
  • Create comment in transaction. Fixes #3741 (#4265)
  • Making login case-insensitive. Fixes #4272 (#4273)
  • Revert “Minor CI improvements (#4266)” (#4271)
  • Optimizing sql format check. (#4268)
  • Minor CI improvements (#4266)
  • Adding a retry on a few fetches. (#4267)
  • Upgrading lemmy-js-client to 0.19.0 (#4260)
  • Quick fix for Peertube federation (fixes #4261) (#4264)
  • federate-less-noisy (#4263)
  • Correctly combine sorts in post view cursor-based pagination (#4247)
  • Reenable API tests that were accidentally skipped (#4259)
  • Second attempt to make command line options more consistent (#4249)
  • Upgrade pictrs to 0.5.0-rc.2, remove cargo unstable flags (#4258)
  • Add test for fixed deleted post filter (#4256)
  • Remove moderator_view field from PostQuery (#4255)
  • Fixing metadata endpoint. (#4257)
  • Update mod.rs (#4240)
  • See if different SQL query fixes performance regression (#4246)
  • Speed up GET /api/v3/site endpoint (#4245)
  • Dont use test.png image for api tests (#4254)
  • Upgrade dependencies (#4248)
  • Set explicit limit for getPosts/getComments in tests (#4250)
  • Add CI check for ignored files (#4252)
  • Show federated posts on user profile. Fixes #4228 (#4229)
  • Dont allow blocking local instance (fixes #4241) (#4242)
  • Make command line options consistent (#4243)
  • Add voters to active users (#4235)
  • Extend sitemap span (#4231)
  • Print version to log (#4226)
  • Revert debug auth (#4232)
  • Dont set duplicate context for activities (#4233)
  • Enable missing code for prometheus actix-web stats (#4230)
  • Some changes to help debug auth problems on lemmy.ml (#4220)
  • Fix cors_origin wildcard (fixes #4214) (#4221)
  • Only allow distinguishing own comments (fixes #4216) (#4222)
  • Removing cookie secure check. (#4213)
  • Remove httpOnly requirement. (#4212)
  • Registrations and Reports should sort by New when viewing unresolved / unread. (#4207)
  • Upgrade deps, fix issue with wrong diesel-async in Cargo.lock (#4211)
  • Fixing rust-analyzer suggestions on rss feeds. (#4210)
  • Fix:#4197: validate post title must be shorter than 200 letters (#4198)
  • Update diesel-async (#4203)
  • Fix entrypoint in Dockerfile (#4202)
  • fix: Cross-compilation to ARM64 (#4142)
  • Remove pictrs config section old_db (#4199)
  • Upgrade pictrs to 0.5.0-beta.2 (#4194)
  • Upgrading deps. (#4196)
  • Setting rank column defaults to a small number. Fixes #4178 (#4191)
  • Users can view their own posts after removal (fixes #4186) (#4192)
  • Add API tests for purge user and purge post (#4183)
  • Fix remote community posts appearing in local listing (fixes #4180) (#4181)
  • Prevent purged user getting refetched from home instance (fixes #3815) (#4189)
  • Removing yarn-error.log (#4185)
  • Adding creator_is_admin to PersonView, CommentView, and PostView. (#4165)
  • Fixing issue with mods not being able to view reports. Fixes #4172 (#4174)
  • Prevent random test failure (#4184)
  • Fix deleted posts so they can only be seen by creator (#4182)
  • Use rust 1.74.0 in CI and move clippy lints to Cargo.toml (#4170)
  • Fix banning of remote user (fixes #4169) (#4171)
  • Adding Selectable and diesel postgres backend check. (#4175)
  • Upgrade activitypub to 0.5.0-beta.5 (#4179)
  • Include instance blocks in settings export (#4173)
  • Fix following local communities stuck on pending (fixes #4160) (#4161)
  • Add upload_timeout to PictrsConfig (#4159)
  • Add api tests for image endpoints (#4150)
  • Use result instead of unwrap in apub tests (#4168)
  • Fix report count endpoint error (#4167)
  • Merge /site_inbox into /inbox, remove unique constraint for inboxes (#4138)
  • Fixing an issue with timezone migration. (#4153)
  • Removing show_new_post_notifs. (#4158)
  • Fix cors wildcard (ref #4095) (#4156)
  • Adding skip_serializing_none to federation state. (#4152)
  • Removing one other cache_remote_images. (#4151)
  • Rename cache_remote_images setting to cache_external_link_previews (ref #4035) (#4148)
  • Remove id column and use different primary key on some tables (#4093)
  • Make import and export settings endpoints reachable (#4143)
  • Dont send comment reply to user who has community blocked. Fixes #3684 (#4096)
  • Dont create auth cookie in backend (#4136)
  • Fixing the desktop image on the README. (#4135)
  • Only check auth secure on release mode. (#4127)
  • Only keep sent and received activities for 7 days (fixes #4113, fixes #4110) (#4131)
  • Add UI setting for collapsing bot comments. Fixes #3838 (#4098)
  • add federation queue state to get_federated_instances api (#4104)
  • Support signed fetch for federation (fixes #868) (#4125)
  • Also order reports by oldest first (ref #4123) (#4129)
  • Adding creator_is_moderator to CommentReplyView and PersonMentionView. (#4126)
  • Show oldest registration applications first (ref #4122) (#4123)
  • Change logout endpoint to return SuccessResponse (#4121)
  • Remove unused deps (#4111)
  • Fix hot_rank algorithm pushing downvoted content off the feed. (#4085)
  • Move usage of env::var to lemmy_utils, simplify db init (ref #4095) (#4108)
  • Add link to githubs new issue button for security advisories. Fixes #3734 (#4107)
  • Adding cors_origin to settings. Fixes #3665 (#4095)
  • Dont allow bots to vote. Fixes #3940 (#4100)
  • Resolve federated objects from other instances via redirect (fixes #3129) (#4073)
  • Include prometheus in default build, remove build feature (fixes #3558) (#4071)
  • Hide private messages from blocked users. (#4102)
  • Upgrading deps. (#4103)
  • Fix issue with sending private messages to yourself. Fixes #3912 (#4099)
  • Disable ansi coloring in logs. Fixes #3975 (#4101)
  • Hide public rss items for private instance. Fixes #3785 (#4097)
  • Fix bug when leaving admin team, setting accepted application as true… (#4090)
  • Dont serialize karma. #3393 (#4089)
  • Allow Arabic and Cyrillic usernames/community names (fixes #1764) (#4083)
  • Use starts_with for forbidden unicode (Fix #3888) (#4079)
  • Allow torrent magnet links as post urls. Fixes #3916 (#4092)
  • Fixing matrix id regex. Fixes #3431 (#4091)
  • Add creator_is_moderator to Comment and PostViews. Fixes #3347 (#4087)
  • Fixing problem with SaveUserSettings, when either the Person or Local… (#4077)
  • Adding /version route. Fixes #2914 (#4059)
  • Make sure my_vote is consistently missing if not voted. Fixes #3197 (#4075)
  • Return status 401 on logout with invalid auth (fixes #4081) (#4082)
  • Avoid using proxy for pictrs requests (fixes #3489) (#4072)
  • Hide deleted user accounts, add tests for PersonView (fixes #3811) (#4070)
  • Making mark post read fields optional. (#4055)
  • Adding ts-rs directives for login_token. (#4063)
  • Fix up convert more responses to SuccessResponse (#4066)
  • Convert more responses to SuccessResponse. Fixes #2860 (#4058)
  • Remove unused static (#4061)
  • Refactor rate limiter and improve rate limit bucket cleanup (#3937)
  • Handle invalid ban expires values (fixes #4045) (#4046)
  • List distinguished comments first (fixes #3843) (#4050)
  • Allow marking multiple posts as read in single api call (fixes #3963) (#4048)
  • Add validate_auth api endpoint (fixes #3702) (#4049)
  • Enable animated avatars setting (#4040)
  • Read community follower count from home instance (fixes #1440) (#4013)
  • Cleanup public api (#4047)
  • Remove empty API responses (#3993)
  • Ignore activities in remote communities without local followers (#4006)
  • Trying to fix export ci, try 1. (#4038)
  • Cleanup checks for community actions (fixes #2858, fixes #2868) (#4028)
  • Convert titles for posts from Mastodon to plaintext (fixes #3828) (#4033)
  • Moving to debian-based docker image. Fixes #3972 (#4004)
  • Fix legacy pagination for Subscribed feed (#4030)
  • Only sanitize strings when generating RSS feeds and emails (fixes #4003) (#4024)
  • Implement user data import/export (#3976)
  • Wipe bio when user is banned with remove content (fixes #4012) (#4032)
  • add keyboard navigation setting (#3569)
  • Add db table for login tokens which allows for invalidation (#3818)
  • Make input length checks consistent with HTML maxlength attribute (#4009)
  • Add comment to explain startup server (ref #4005) (#4022)
  • Specify password length limits in error (fixes #3284) (#4007)
  • Dont create :latest docker tag (fixes #3996) (#4016)
  • Return HTTP status 503 to all requests during startup (fixes #3780) (#4005)
  • Handle empty reason for registration application denial (fixes #3485) (#4008)
  • Mention max length for site name in config (fixes #3006) (#4010)
  • Change RELEASES.md to link to join-lemmy.org news (#3997)
  • Increase timeout for image upload to 30s (fixes #3920) (#3998)
  • Notify admin about registration application after email verification (fixes #3024) (#3995)
  • Increase default database connections (fixes #3394) (#3994)
  • Fix federation of admin actions (fixes #3980) (#3988)
  • Rework the way 2FA is enabled/disabled (fixes #3309) (#3959)
  • Forgot to add ts export to pagination cursor. (#3971)
  • Make local federated instances use comnpose file for build (#3968)
  • User can block instances (fixes #2397) (#3869)
  • Fixing GetPostsResponse serialization. (#3967)
  • Fix Posts List Performance + cursor-based pagination (#3872)
  • Fixing high CPU usage on federation worker recheck. Fixes #3958
  • Async scheduler (#3949)
  • Persistent, performant, reliable federation queue (#3605)
  • Add ts(skip) attributes to fix js client code generation (#3952)
  • Adding a scaled sort, to boost smaller communities. (#3907)
  • Include domain in errors (#3944)
  • Bump ts_rs version (#3947)
  • Replace ammonia lib with manual html escaping (fixes #3774) (#3938)
  • Add logging for pictrs uploads (#3927)
  • Change AddAdmin to use person_id instead of local_user_id (#3941)
  • Auto resolve reports trigger (#3871)
  • Get rid of remaining Perform/SendActivity traits (fixes #3670) (#3926)
  • Make use of variables less redundant and inconsistent in distinguish.rs (#3932)
  • Remove left joins and use only one call to select method in post_view.rs (#3865)
  • Adding a new config flag to disable pictrs caching for thumbnails (#3897)
  • Use Queryable instead of JoinView (#3917)
  • Add ARM64 Docker image support (#3810)
  • Adding a post_view mode. Fixes #3730 (#3731)
  • Implement remote follow (#3738)
  • update moderator view (#3820)
  • replace expect with ErrorUnauthorized (#3915)
  • Allow passing auth via header or cookie (#3725)
  • Make remove content optional during account deletion (fixes #1617) (#3817)
  • Sitemap - use UTC time (#3914)
  • Fix time zone handling (#3496)
  • Move admin flag from person to local_user (fixes #3060) (#3403)
  • Lowercase domain on db query filters (#3849) (#3873)
  • Sitemap (#3808)
  • fix: add client connect timeout to scheduled task (#3883)
  • Add person name to PersonIsBannedFromSite error (#3786) (#3855)
  • Replace Option(bool) with bool for PostQuery and CommentQuery (#3819) (#3857)
  • Update .woodpecker.yml use steps instead (#3858)
  • Fixing woodpecker env var. (#3854)
  • Adding 0.18.4 Release notes. (#3853)
  • Automatically resolve report when post/comment is removed (#3850)
  • Speedup CI (#3852)
  • Reorder woodpecker config to avoid ci failures (#3851)
  • Replace TypedBuilder with Default in update forms (#3814)
  • Reduce amount of columns selected (#3755)
  • Allow filtering posts and comments by whether they were liked/disliked - fixes #3401 (#3523)
  • Allow filtering PMs by sender (#3770)
  • Fix sanitize_html whitespaces (#3829)
  • Revert “Attempt to fix CI building wrong commits (#3830)”
  • Attempt to fix CI building wrong commits (#3830)
  • Fix ordering when doing a comment_parent type list_comments (#3823)
  • Remove unused db view options (#3787)
  • Remove form_id params (#3812)
  • Update QUESTION.yml, remove UI (#3807)
  • Fixing broken SQL migration formatting. (#3800)
  • Dont use sha hash for password reset token (fixes #3491) (#3795)
  • Rewrite remaining federation actions, get rid of PerformCrud trait (#3794)
  • Adding SQL format checking via pg_format / pgFormatter (#3740)
  • Do not hide read posts when it is a user profile view (#3791)
  • Only run slow CI checks for actual code changes (attempt 2) (#3759)
  • Remove follow community traits (#3737)
  • Default imprementations for read and delete in Crud trait (#3707)
  • Rewrite some federation actions to remove Perform/SendActivity (ref #3670) (#3758)
  • Enhanced testing of comments. Validate reply notifications, mentions (#3686)
  • Fix fetch instance software version from nodeinfo (#3772)
  • Correct logic to meet join-lemmy requirement, don’t have closed signups. Allows Open and Applications. (#3761)
  • Revert “Only run slow CI checks for actual code changes (#3750)”
  • Update CODEOWNERS (#3748)
  • Delete migrations_testing folder (#3751)
  • Move entry from .rgignore to .gitignore (#3752)
  • Rewrite some API handlers to remove Perform trait (#3735)
  • Adding 0.18.3 Release notes. (#3753)
  • Only run slow CI checks for actual code changes (#3750)
  • Restore markdown quotes after sanitize (#3708) (#3749)
  • Use same table join code for both read and list functions (#3663)
  • remove n^2 part of person triggers, improve community aggregate trigger (#3739)
  • remove performance-problematic and buggy duplicate site aggregates (#3732)
  • Change readme installation link (#3736)
  • Federation tests replication round1 - demonstrate absent replication of comment deletes (#3657)
  • Omit local instance from federated instances list (#3712)
  • add trigram index to search (#3719)
  • Sanitize html (#3708)
  • Add moderator view parameter to list posts (#3176)
  • Add controversial ranking (#3205)
  • Make resolve_object not require auth #3685 (#3716)
  • Skip fragile API tests (#3723)
  • UI Settings - Blur NSFW & Auto Expand (#3377)
  • Enable gzip for reqwest (#3696)
  • Dont authenticate user after successful password reset #3714 (#3715)
  • detailed error message for blocked domains (#3698) (#3701)
  • Bump version of dependency “webmention” (#3711)
  • prevent ordering by comment path without post filter (#3717)
  • Update Dockerfile to run process as non-privileged user. (#3709)
  • Change logic for determining comment default language (fixes #3451) (#3672)
  • disable rustfmt feature on rosetta-build (#3679)
  • Fix federation test errors with new lemmy-js-client (#3678)
  • Adding diesel migration check. Fixes #3676 (#3677)
  • Make sure comments are sorted by hot_rank, then score. (#3667)
  • Fix process shutdown (#3673)
  • Ignore errors when fetching community mods (fixes #3460) (#3674)
  • Upgrade activitypub library to 0.4.6 (fixes #3222) (#3675)
  • Denormalize community_id into post_aggregates for a 1000x speed-up when loading posts (#3653)
  • Fixing hot_ranks and scores to append a published sort. (#3618)
  • Handle displaying of deleted and removed posts/comments (fixes #2624) (#3286)
  • Use local_site.default_post_listing_type as the initial default listing type for new users (#3666)
  • Dont publish releases to crates.io (fixes #3272) (#3664)
  • Remove SendActivity and Perform traits, rely on channel (#3596)
  • Don’t panic when scheduled tasks can’t connect to database (#3634)
  • Add http cache for webfingers (#3317)
  • prepare-drone-federation-test.sh has some more echo output and note about the LEMMY_DATABASE_URL format (#3651)
  • Post remove delete federation outbound fix0 (#3613)
  • Add Japanese README (#3620)
  • Cache & Optimize Woodpecker CI (#3450)
  • Remove TypedBuilder from db_views and db_views_actor (#3637)
  • Optimize hot rank updates (#3617)
  • Split activity table into sent and received parts (fixes #3103) (#3583)
  • work around race condition on community fetch (#3414)
  • Make lemmy_api_common wasm-compatible (#3587)
  • Add dev profile to strip symbols and disable debug info (ref #3610) (#3611)
  • Check for dead federated instances (fixes #2221) (#3427)
  • Fix wrong SMTP port when TLS is being used (fixes #3574) (#3607)
  • Add workaround for #3102 until cross-compile work complete (#3472)
  • Updated Lemmy Matrix Support link (#3599)
  • Update RELEASES.md (#3593)
  • Add infinite scroll user option (#3572)
  • Use specific Rust nightly version for CI cargo fmt (fixes #3467) (#3577)
  • Make functions work with both connection and pool (#3420)
  • Shrink capacity in RateLimitStorage::remove_older_than (#3536)
  • Fix #3366: Wrap plain-text error responses from the API in JSON (#3559)
  • Fix #3501 - Fix aggregation counts for elements removed and deleted (#3543)
  • Only update site_aggregates for local site (#3516)
  • Error enum fixed (#3487)
  • Adding phiresky to codeowners. (#3576)
  • Upgrade all dependencies (#3526)
  • Use async email sender (#3554)
  • Update RELEASES.md (#3556)
  • Adding v0.18.1 and v0.18.0 release notes. (#3530)
  • Updating login.rs with generic incorrect_login response. (#3549)
  • Improve api response times by doing send_activity asynchronously (#3493)

Lemmy UI

  • Upgrading lemmy-js-client. (#2285)
  • Make sure banned toast has correct user. (#2281)
  • Fixing link targets reloading page. Fixes #2275 (#2276)
  • Moderation/content action overhaul (#2258)
  • Fixing communityToChoice. Fixes #2231 . Fixes #2232 . (#2271)
  • Only generate manifest if it isn’t already in memory (#2272)
  • Adding a few promise.all concurrent fetches to FetchInitialData. #2234 (#2270)
  • Changing auth cookie name back to jwt. (#2269)
  • Added aspect ratio to the video (#2268)
  • Move lemmyClient generation into fetchInitialData functions. Fixes #2243 (#2260)
  • fix wrapped http client (#2267)
  • Fixing cross-fetch issues. (#2254)
  • Fixing comments auto-collapsing. Fixes #2252 (#2253)
  • Forgot to add yarn.lock.
  • Disable post voting buttons when logged out. Fixes #2248 (#2249)
  • Attempting to fix SSR. #2243 (#2247)
  • Fixing instance blocking. Fixes #2245 (#2246)
  • Fixing QR code CSP, try 2. Fixes #2241 (#2242)
  • Fix shutdown behaviour (#2239)
  • Multi-platform Dockerfile (#2235)
  • Update deps (#2237)
  • Upgrading deps. (#2233)
  • Fixing follow from subscribe page. Fixes #2215 (#2229)
  • Adding creator_is_admin and creator_is_mod, removing pointless functions (#2228)
  • Update bs theme when site theme is changed (#2226)
  • Settings Import/export (#2223)
  • Auto focus search input when navigating to search page (#2224)
  • Remove previous button for PaginatorCursor (#2221)
  • Fix back button from posts going back twice instead of once (#2220)
  • Fixing errors. Fixes #2216 (#2219)
  • Fixing QR code CSP. (#2218)
  • Upgrade for lemmy js client 0.19.0-alpha.16 (#2210)
  • Search page select fix (#2201)
  • Fixed markdown parsing error particularly with the spoiler tag. (#2200)
  • use improved notification system for all notification types (#2190)
  • Make 2FA input play nicer with phone keyboards (#2199)
  • Add code highlighting (#2195)
  • Updating for new v19 changes. (#2191)
  • Dont hide reply box on other actions. Fixes #1968 (#2189)
  • Add curl for basic healthcheck (#2186)
  • Tweak 2fa (#2179)
  • Add RTL/BIDI to post text (#1963)
  • Simplify favicon (#2176)
  • Adding cursor pagination. Fixes #2155 (#2173)
  • fix: Fix emoji picker custom emoji bug (#2175)
  • Fixing broken docker build due to missing rxjs. (#2174)
  • Dont push to :latest docker tag (#2171)
  • fix: Prevent login screen from redirecting to signup (#2170)
  • feat: Accomodate 2FA changes in UI
  • Adding scaled sort to UI. Fixes #2156 (#2169)
  • fix: Fix notifications (#2132)
  • Smart url parsing (#2141)
  • fix: Fix bug where old settings would linger on page until browser refresh (#2153)
  • fix: Fix bug where user could not block person from profile page (#2151)
  • Husky fix for production build. (#2150)
  • feat: Block instance (#2144)
  • Remote follow (#1875)
  • Remove auth from API request body params (#2140)
  • refetch inbox when marking a message as read (#2131)
  • allow limited markdown in spoiler summary (#2126)
  • Changed blocked instances to not be linked from instance page (#2121)
  • fix purge submit button in post-listing (#2128)
  • Increase cache-control max-age to 60s (#2124)
  • Don’t hide the ‘show source’ button for anonymous users (#2127)
  • Disable “Next” button in Paginator when the next page is empty (#2114)
  • Add moderator view button (#1993)
  • Fix communities search bug (#2108)
  • Display more information why has the login failed (#2109)
  • Fix husky for yarn 2 . (#2110)
  • Report fix (#2089)
  • always show community name with instance for easy copy-pasting to friends (#2073)
  • Update spoiler icon to diamond shape. (#2102)
  • Ensure markdown links have the noopener and nofollow rel tags as well. (#2100)
  • Move allowed and blocked instance tables to the column right of linked instance table (#2071)
  • Woodpecker updates. (#2046)
  • Federate emoji sizing (#2063)
  • Moved title field to the top of post-form (#2039, #2059) (#2061)
  • Temp fix to modlog failing to render future dates (#2058)
  • Move banned users to a separate admin tab. (#2057)
  • Fixing webpack build. (#2042)
  • Frontend Settings - “Blur NSFW” and “Auto Expand” (#1640)
  • Add open links in new tab (#2032)
  • Fix comment insertion from context views. Fixes #2030 (#2031)
  • Fix password autocomplete (#2033)
  • Fix suggested title " " spaces (#2037)
  • Lemmy 2515 controversial posts and comments (#1727)
  • Update translation submodule (#2023)
  • Mark post as read when clicking “Expand here” on the preview image on the post listing page (#1600) (#1978)
  • Expanded the RegEx to check if the title contains new line caracters. Should fix issue #1962 (#1965)
  • Fix document title of admin settings being overwritten by tagline and emoji forms (#2003)
  • Upgrading deps, running prettier. (#1987)
  • ES-Lint tweak (#2001)
  • Use proper modifier key in markdown text input on macOS (#1995)
  • Fixing comment report showing dot. (#1989)
  • Make sure comment score color matches your vote. (#1988)
  • Allow limited set of markdown in title rendering (#1977)
  • Allow selecting from all languages in person settings (fixes #1971) (#1985)
  • Separate final comment row + add classes (#1982)
  • Allow sorting on /communities (#1934)
  • Fix base.output (see #1911) (#1943)
  • Add show/hide button to password fields (#1861)
  • Fix start_url and scope (#1931)
  • Remove lodash.merge dependency (#1911)
  • Set person_id to myId in handleLeaveModTeam (#1929)
  • Remove invalid default option from language list (#1919)
  • Fix CSP in dev mode (#1918)
  • Add Toast Messages for Bad Logins (#1874)
  • Comment border tweak (#1820)
  • Add nonce-based CSP header (#1907)
  • Use the ‘node’ user instead of root when running. (#1894)
  • Add community name to featured post action in Modlog (#1891)
  • Use canonical URLs (#1883)
  • Add theme option for compact that respects browser default (#1870)
  • Update post listing to prefer local image when available (#1858)
  • Disallow /modlog since it is not relevant for bots (#1850)
  • Fix XSS vuln (#1897)
  • User inferno prompt instead of handrolled one (#1867)
  • Darkly tweak (#1811)
  • Reopen PR 1420 Feature add three six and nine months options frontend (#1689)
  • Update lemmy-js-client and lemmy-translations (#1848)