v1.4.1
Fixes:
- Fix boost icon: center vertically (#2690)
- Fix to completely hide NSFW-tagged images (#2724)
- Fix width of .confirmation-modal on narrow screens (#2743)
- Always respond with 200 to PuSH payloads (#2733)
- Language improvements, replace whatlanguage with CLD (#2753, #2949)
- Handle out-of-order deletes for statuses (#2734)
- Replace best_in_place editor on admin settings page (#2789)
- Performance: Delete records in smaller transaction (#2802)
- More robust PuSH subscription refreshes (#2799)
- Use Twitter::Extractor for creating links (#2502)
- Performance: Optimize follower_accounts and following_accounts (#2820)
- Performance: Fix slow query in notifications api (#2851)
- Performance: Add asynchronous emojione-picker (code-splitting) (#2863)
- Fix a aspect ratio for the embedded video (#2872)
- Fix local fonts and change font-face values (#2877)
- Add content-type in pubsubhubhub request header (#2943)
- Disabled auto focus on toot form when search results are shown. (#2942)
- Performance: Add
account_id DESC
to optimize PrecomputeFeedService (#2967) - Send HEAD request ahead of GET when fetching URL previews (#2972)
- Fix mention regex to support unicode (#2420)
- When avatar/header are missing, do not include the missing file into Atom (#2988)
- Accept own ID for remote follow with and without preceding @ (#2991)
- Delete associated notifications when a status is deleted (#2994)
- Trim long usernames in public follower/following lists (#2993)
- Fix not rejecting remote URIs when parsing out local IDs (#3012)
- Prepend reblogs' wrapper content with "RT @original_author", (#3013)
- Do not cancel PuSH subscriptions after encountering "permanent" error (#3046)
- Do not override ctrl/cmd+click on permalinks (#3073)
- Hide signup path unless the instance allows registration. (#3055)
- Performance: Optimize Status#permitted_for 24x (#3069)
- Performance: Improve Account#triadic_closures (#3079)
- Performance: Make faster ProcessFeedService (#3080)
- Enable to handle app immediately after closing modal (#3082)
- Performance: Make .column-collapse animation simple (#3086)
- Resolve preview cards for remote statuses as well as local ones (#3088)
- Do not hardcode the exclamation in "toot!", wrap it in an extra locale key (#3089)
- Performance: Avoid useless renders (#3141)
- Performance: Improvements (#3168)
- Run processes in Docker as non-root user (#3159)
- Performance: Use joins for account properties (#3167)
- Performance: Remove unnecessary div (#3172)
- Performance: Faster boot time (#3176)
- Replace mastodon:media:clear and mastodon:feeds:clear rake tasks with sidekiq scheduler (#3180)
- Add boop sounds in Vorbis format (#2963)
- Focus tab of Mastodon when clicking notification (#2989)
- Fix regression in mutes API and similar (#3202)
- Allow access token in URI in the EventSource streaming API (#3208)
- Language attribute in statuses JSON (#3209)
- Fix "Edit profile" on the account action bar (#3222)
- Fix cache not being configured correctly (#3219)
- Keep children of the column-collapsable until animation is completed (#3218)
- Fix locale regression that made logged-out public pages crash (#3231)
- Fix "saved" message in wrong locale after updating preferences (#3232)
- Put creation of remote statuses in a transaction to prevent incomplete statuses from being returned in the API (#3233)
- Fix more locale regressions from #3055 (#3242)
- Focus the submit button (#3253)
- Fix Devise destroy method being available to delete user record (#3266)
- Fix following/followers API to return correct link headers (#3268)
- Skip formatting for cashtag in status text (#3275)
- Fix hovering default value for avatar component (#3290)
- Fix settings model sometimes returning nil (#3213)
- Add
flex: 0 0 auto
to some components to avoid bugs on iOS9 (#3313) - Fix "contains" CSS for Chromium <57 (#3317)
- Fix style regression of buttons not inheriting document font by default (#3310)
- Fix load more feature on the Account media gallery (#3293)
- Remove status context construction in the React side (#3331)
- Remove redundant call of recent scope in AccountsController (#3330)
- Introduce react-textarea-autosize instead of using style.height side effects (#3334)
- Add "meta" attribute to return of POST /api/v1/media method as well (#3333)
- Replace onboarding elephant with friendlier graphic, shorter animation (#3337)
- Fix some nil errors (#3338)
- Language filtering in streaming API (#3339)
- Add missing background center on public profile headers (#3340)
- Avoid comparing domains when looking for an exact match of a local account (#3336)
- Fix empty flash message on the settings page (#3345)
- Fix #2922 - Load stylesheet from "custom.css" entrypoint when present (#3332)
- Reject revoked access_token on Streaming API. (#3367)
- Improve streaming API cluster logging, fix streaming API hanging up (#3370)
- Fix Webpack Bundle Analyzer output for Webpacker (#3374)
- Simplify isIntersecting in status_list.js (#3371)
- Fix IntersectionObserver isIntersecting in Edge (#3365)
- Update bootsnap to 0.3.0 (fix xattr.h error) (#3390)
- Fix video having black border on top (#3392)
Features:
- Filter out languages from public timelines based on preferences (#2361, #3175)
- Admins can disable 2FA for users (#2584)
- Webpack (#2617)
- Show boosted user's avatar (#2518)
- Show emoji shortname in a tooltip (#2784)
- Decode IDN URLs in PreviewCard (#2781)
- When streaming API is disconnected, poll home/notifications (#2776)
- Replace ws with uws (#2807)
- Sidekiq dashboard displays scheduled tasks (#2898)
- Add
<ostatus:conversation />
to Atom feeds (#3016) - Make direct statuses stand out more (#3025)
- Ability to mute notifications for an entire conversation (#3017)
- Admins can filter accounts based on username/display name/e-mail/IP (#2968)
- Ability to hide all content from a domain (#2381)
- Media gallery view on profiles (#3120)
- Allow alternate domains to be recognized by Webfinger, while still returning a canonical acct (#3187)
- Only load i18n data for current language in web UI (#3130)
- Toggle sensitive from admin page (#3261)
- Don't notify me when my toot is faved by someone i muted (#3245)
- Performance: Use node instead of babel-node for streaming API (#3269)
- Fix DM being highlighted when it's inside a favourite notification (#3267)
- Show error message to suspended user (#3281)
- Performance: Lazy load toots using IntersectionObserver (#3191)
- Go to root after login in single user mode (#3289)
Upgrade notes:
Non-Docker only:
- This release switches the minimum supported Node.js version from 4 to 6
- Three additional system packages are required:
pkg-config libprotobuf-dev protobuf-compiler
- Dependency updates:
bundle install
andyarn install
Docker-only:
- Processes inside Docker no longer run as root. Existing installations will require you to change directory ownership of the uploads volume to a different UID/GID: something like
sudo chown -R 991:991 public/system
(the default UID/GID of the new in-Docker user is 991/991)
Both Docker and non-Docker:
- If you have
CDN_HOST
set, make sure it contains the protocol part (http://
orhttps://
), if it does not, adjust it before doing the next step - If you set a non-default
STREAMING_API_BASE_URL
, change the protocol part tows://
orwss://
respectively - This release includes changes to assets, that means you need to run
RAILS_ENV=production bundle exec rails assets:precompile
(in Docker:docker-compose run --rm web rails assets:precompile
) - Generated assets now live under public/packs instead of public/assets. This is mostly irrelevant but might affect some custom proxying configurations.
- This release includes database migrations, that means you need to run
RAILS_ENV=production bundle exec rails db:migrate
(in Docker:docker-compose run --rm web rails db:migrate
)
Contributors to this release:
@AA4ch1
@abcang
@akihikodaki
@alpaca-tc
@beatrix-bitrot
@BoFFire
@bzg
@clworld
@danhunsaker
@esetomo
@Gargron
@geta6
@happycoloredbanana
@harukasan
@h-izumi
@immae
@jackjennings
@jeroenpraat
@Jnsll
@kaniini
@knu
@m4sk1n
@mabkenar
@masarakki
@mjankowski
@nolanlawson
@Pangoraw
@pfm-eyesightjp
@Quent-in
@rkarabut
@salvadorpla
@seefood
@sorin-davidoi
@stephenburgess8
@sterbfly
@tomosm
@treby
@unarist
@vidarlee
@Wonderfall
@xqus
@yiskah
@ykzts
@yookoala
@znz
@zunda