head 1.16; access; symbols pkgsrc-2026Q1:1.16.0.8 pkgsrc-2026Q1-base:1.16 pkgsrc-2025Q4:1.16.0.6 pkgsrc-2025Q4-base:1.16 pkgsrc-2025Q3:1.16.0.4 pkgsrc-2025Q3-base:1.16 pkgsrc-2025Q2:1.16.0.2 pkgsrc-2025Q2-base:1.16 pkgsrc-2025Q1:1.15.0.4 pkgsrc-2025Q1-base:1.15 pkgsrc-2024Q4:1.15.0.2 pkgsrc-2024Q4-base:1.15 pkgsrc-2024Q3:1.14.0.4 pkgsrc-2024Q3-base:1.14 pkgsrc-2024Q2:1.14.0.2 pkgsrc-2024Q2-base:1.14 pkgsrc-2024Q1:1.11.0.2 pkgsrc-2024Q1-base:1.11 pkgsrc-2023Q4:1.9.0.2 pkgsrc-2023Q4-base:1.9 pkgsrc-2023Q3:1.8.0.2 pkgsrc-2023Q3-base:1.8 pkgsrc-2023Q2:1.6.0.2 pkgsrc-2023Q2-base:1.6 pkgsrc-2023Q1:1.4.0.2 pkgsrc-2023Q1-base:1.4 pkgsrc-2022Q4:1.2.0.2 pkgsrc-2022Q4-base:1.2; locks; strict; comment @# @; 1.16 date 2025.05.04.09.37.41; author wiz; state Exp; branches; next 1.15; commitid I68AEXulcHetuzTF; 1.15 date 2024.10.21.11.18.34; author jperkin; state Exp; branches; next 1.14; commitid MMDcQgoGTHBljwuF; 1.14 date 2024.06.16.16.52.43; author nikita; state Exp; branches; next 1.13; commitid mWxQyWn9UNv7geeF; 1.13 date 2024.05.27.20.04.46; author nikita; state Exp; branches; next 1.12; commitid knGDkcSMtQOhXFbF; 1.12 date 2024.04.12.15.10.20; author nikita; state Exp; branches; next 1.11; commitid 2UPOum5uUAjZLR5F; 1.11 date 2024.03.06.18.13.53; author nikita; state Exp; branches; next 1.10; commitid yFyUkCCpyM7YY71F; 1.10 date 2024.01.10.16.50.10; author nikita; state Exp; branches; next 1.9; commitid SzZsbHRUaLxkjVTE; 1.9 date 2023.11.15.14.57.48; author nikita; state Exp; branches; next 1.8; commitid 0IcVqU0CsxNPtIME; 1.8 date 2023.08.31.07.03.59; author nikita; state Exp; branches; next 1.7; commitid nE1q3TSudTOXjUCE; 1.7 date 2023.07.30.20.52.52; author nikita; state Exp; branches; next 1.6; commitid KdCiWqsN1NRhWRyE; 1.6 date 2023.05.25.23.54.25; author nikita; state Exp; branches; next 1.5; commitid jAotTKg3bIMW3pqE; 1.5 date 2023.04.09.16.47.44; author nikita; state Exp; branches; next 1.4; commitid fOquOwSGhYYnbskE; 1.4 date 2023.02.21.15.49.37; author nikita; state Exp; branches; next 1.3; commitid UuBUWgdufHfWmpeE; 1.3 date 2023.02.17.12.23.11; author nikita; state Exp; branches; next 1.2; commitid 60LsuZmCVNt0mSdE; 1.2 date 2022.12.07.21.38.19; author nikita; state Exp; branches; next 1.1; commitid Oenyd35XJTwNIF4E; 1.1 date 2022.11.20.20.17.03; author nikita; state Exp; branches; next ; commitid vVlpLGToq1L9Qt2E; desc @@ 1.16 log @gotosocial: update to 0.19.0. Asked maintainer, no comment after a week. Changes: 0.19.0: What's that coming over the hill, is it a monster? Is it a monster? Yes, it's version 0.19.0 of GoToSocial, aka Seditious Sloth ๐Ÿ˜ˆ! Please read the migration notes carefully for instructions on how to upgrade to this version. The update contains several database migrations, so please check the database migration section closely, and make sure you've backed up your database before updating, so that you can restore from backup if something goes wrong! Release highlights OAuth token scope enforcement: Token scopes (read, write etc) now actually do stuff! So we removed the big "scopes don't do stuff!" warning in the docs. The enforced scopes match the Mastodon API token scopes, so there shouldn't be any surprises for bot owners / app developers. Token review / invalidation: You can now review and invalidate tokens issued for your account in the settings panel, to help keep your account secure. Create and manage applications in the settings panel: Handy for people who want to run bots and applications with GoToSocial! Gallery-style profile layout option: You can now choose to lay out the web view of your profile in a 'gram style gallery. Good for people who mostly post media and want to put that at the forefront. Support for two-factor authentication (aka 2FA): If your instance isn't configured to use an OIDC provider, you can now secure your account with 2FA via a QR code and an authenticator app. When logging in with 2FA enabled, you will have to provide a time-based one-time password. Security! Lots of web view tweaks including nicer media rendering on chrome, proper blurhash support, much better support for keyboard-based page navigation, wider font support for different scripts, tidier status info bar, and more. OAuth bugfixes should allow more flexibility and compatibility when logging in with or authorizing third-party applications. **bandwagon.fm compatibility fixes: you can now follow Bandwagon.fm artists from your GoToSocial account and receive posts / announcements from them. Edit domain permissions: you can now edit the obfuscate and public and private comment fields in domain permissions (blocks/allows) instead of having to remove and recreate the permission to update the comments. 0.18.3 Hello nerds, another bugfix release :) This one fixes a bug with domain subscriptions with orphan adoption, which could cause entries for the subscription to not be created. An important bugfix for island networks that rely on allowlist subscription(s) to keep everyone in the network on the same allowlist(s). Also small wording changes on the frontend, and a fix for an issue that could cause error messages to be swallowed on startup. If you're updating to this version from v0.18.0, v0.18.1, or v0.18.2, it's a very easy update with no db migrations or config file changes :) If you're updating to this version from a version before v0.18.0, please follow the update instructions from v0.18.0, but replace 0.18.0 with 0.18.3 throughout. Be aware that the update to 0.18.x contains some very long migrations. Please do read the notes carefully. 0.18.2 Here's version 0.18.2 of GoToSocial, hopefully the last bugfix release of 0.18.x :) Mostly bug fixes and version bumps in this one, though it's possible if you were seeing very poor performance on v0.18.0 or v0.18.1 then the small wasm/wazero tweak we made in this release might improve things for you. 0.18.1 Hiya! Here's a bugfix release of GoToSocial! We added ETag cache control handling to robots.txt, to make it easier for crawlers to be able to tell which instances they should and shouldn't index. 0.18.0 Please read the migration notes carefully for instructions on how to upgrade to this version. This version contains several very long migrations so you will need to be patient when upgrading, and backup your database first!! Release highlights Status edit support: one of our most-requested features! You can now edit your own statuses, and see instance edit history from other accounts too (if your instance has them stored). Push notifications: probably the second most-requested feature! GoToSocial can now send push notifications to clients via their configured push providers. You may need to uninstall / reinstall client applications, or log out and back in again, for this feature to work. (And if you're using Tusky, make sure you've got ntfy installed). Global instance css customization: admins can now apply custom CSS across their entire instance via the settings panel. Domain permission subscriptions: it's now possible to configure your instance to subscribe to CSV, JSON, or plaintext lists of domain permissions. Each night, your instance will fetch and automatically create domain permissions (or permission drafts) based on what it finds in a subscribed list. See the domain permission subscription documentation for more information. Trusted-proxies helper: instances with improperly configured trusted-proxies settings will now show a warning on the homepage, so admins can make sure their instance is configured correctly. Check your own instance homepage after updating to see if you need to do anything. Better outbox sorting: messages from GoToSocial are now delivered more quickly to people you mention, so conversations across instances should feel a bit snappier. Log in button: there's now a login button in the top right of the instance homepage, which leads to a helpful page about clients, with a link to the settings panel. Should make things less confusing for new users! Granular stats controls: with the instance-stats-mode setting, admins can now choose if and how their instance serves stats via the nodeinfo endpoints. Existing behavior from v0.17.0 is the default. Post backdating: via the API you can now backdate posts (if enabled in config.yaml). This is our first step towards making it possible to import your post history from elsewhere into your GoToSocial instance. While there's no way to do this in the settings panel yet, you can already use third-party tools like Slurp to import posts from a Mastodon export (see Slurp). Configurable sign-up limits: you can now configure your sign-up backlog length and sign-up throttling (defaults remain the same). NetBSD and FreeBSD builds: yep! Respect users prefers-color-scheme preference: there's now a light mode default theme to complement our trusty dark mode theme, and the theme will switch based on a visitor's prefers-color-scheme configuration. This applies to all page and profiles, with the exception of some custom themes. Works in the settings panel too! @ text @@@comment $NetBSD$ bin/gotosocial share/examples/gotosocial/config.yaml share/examples/gotosocial/docker-compose.yaml share/examples/gotosocial/gotosocial.service share/examples/gotosocial/web/assets/Fork-Awesome/CONTRIBUTORS.md share/examples/gotosocial/web/assets/Fork-Awesome/LICENSES share/examples/gotosocial/web/assets/Fork-Awesome/css/fork-awesome.css share/examples/gotosocial/web/assets/Fork-Awesome/css/fork-awesome.min.css share/examples/gotosocial/web/assets/Fork-Awesome/css/fork-awesome.min.css.map share/examples/gotosocial/web/assets/Fork-Awesome/css/v5-compat.css share/examples/gotosocial/web/assets/Fork-Awesome/css/v5-compat.min.css share/examples/gotosocial/web/assets/Fork-Awesome/css/v5-compat.min.css.map share/examples/gotosocial/web/assets/Fork-Awesome/fonts/forkawesome-webfont.eot share/examples/gotosocial/web/assets/Fork-Awesome/fonts/forkawesome-webfont.svg share/examples/gotosocial/web/assets/Fork-Awesome/fonts/forkawesome-webfont.ttf share/examples/gotosocial/web/assets/Fork-Awesome/fonts/forkawesome-webfont.woff share/examples/gotosocial/web/assets/Fork-Awesome/fonts/forkawesome-webfont.woff2 share/examples/gotosocial/web/assets/LICENSE share/examples/gotosocial/web/assets/activitypub_light.svg share/examples/gotosocial/web/assets/default_avatars/GoToSocial_icon1.webp share/examples/gotosocial/web/assets/default_avatars/GoToSocial_icon2.webp share/examples/gotosocial/web/assets/default_avatars/GoToSocial_icon3.webp share/examples/gotosocial/web/assets/default_avatars/GoToSocial_icon4.webp share/examples/gotosocial/web/assets/default_avatars/GoToSocial_icon5.webp share/examples/gotosocial/web/assets/default_avatars/GoToSocial_icon6.webp share/examples/gotosocial/web/assets/default_header.webp share/examples/gotosocial/web/assets/dist/_colors.css share/examples/gotosocial/web/assets/dist/_fonts.css share/examples/gotosocial/web/assets/dist/_media-wrapper.css share/examples/gotosocial/web/assets/dist/_prism.css share/examples/gotosocial/web/assets/dist/_profile-header.css share/examples/gotosocial/web/assets/dist/_status-media.css share/examples/gotosocial/web/assets/dist/about.css share/examples/gotosocial/web/assets/dist/base.css share/examples/gotosocial/web/assets/dist/frontend.js share/examples/gotosocial/web/assets/dist/frontend_prerender.js share/examples/gotosocial/web/assets/dist/index.css share/examples/gotosocial/web/assets/dist/login-info.css share/examples/gotosocial/web/assets/dist/page.css share/examples/gotosocial/web/assets/dist/profile-gallery.css share/examples/gotosocial/web/assets/dist/profile.css share/examples/gotosocial/web/assets/dist/settings-style.css share/examples/gotosocial/web/assets/dist/settings.js share/examples/gotosocial/web/assets/dist/status.css share/examples/gotosocial/web/assets/dist/tag.css share/examples/gotosocial/web/assets/dist/thread.css share/examples/gotosocial/web/assets/ellipsis.svg share/examples/gotosocial/web/assets/feditext.svg share/examples/gotosocial/web/assets/fonts/Atkinson-Hyperlegible-Bold-102.woff share/examples/gotosocial/web/assets/fonts/Atkinson-Hyperlegible-Bold-102a.woff2 share/examples/gotosocial/web/assets/fonts/Atkinson-Hyperlegible-BoldItalic-102.woff share/examples/gotosocial/web/assets/fonts/Atkinson-Hyperlegible-BoldItalic-102a.woff2 share/examples/gotosocial/web/assets/fonts/Atkinson-Hyperlegible-Italic-102.woff share/examples/gotosocial/web/assets/fonts/Atkinson-Hyperlegible-Italic-102a.woff2 share/examples/gotosocial/web/assets/fonts/Atkinson-Hyperlegible-Regular-102.woff share/examples/gotosocial/web/assets/fonts/Atkinson-Hyperlegible-Regular-102a.woff2 share/examples/gotosocial/web/assets/fonts/OFL.txt share/examples/gotosocial/web/assets/fonts/noto-sans-cyrillic-400-italic.woff share/examples/gotosocial/web/assets/fonts/noto-sans-cyrillic-400-italic.woff2 share/examples/gotosocial/web/assets/fonts/noto-sans-cyrillic-400-normal.woff share/examples/gotosocial/web/assets/fonts/noto-sans-cyrillic-400-normal.woff2 share/examples/gotosocial/web/assets/fonts/noto-sans-cyrillic-700-italic.woff share/examples/gotosocial/web/assets/fonts/noto-sans-cyrillic-700-italic.woff2 share/examples/gotosocial/web/assets/fonts/noto-sans-cyrillic-700-normal.woff share/examples/gotosocial/web/assets/fonts/noto-sans-cyrillic-700-normal.woff2 share/examples/gotosocial/web/assets/fonts/noto-sans-cyrillic-ext-400-italic.woff share/examples/gotosocial/web/assets/fonts/noto-sans-cyrillic-ext-400-italic.woff2 share/examples/gotosocial/web/assets/fonts/noto-sans-cyrillic-ext-400-normal.woff share/examples/gotosocial/web/assets/fonts/noto-sans-cyrillic-ext-400-normal.woff2 share/examples/gotosocial/web/assets/fonts/noto-sans-cyrillic-ext-700-italic.woff share/examples/gotosocial/web/assets/fonts/noto-sans-cyrillic-ext-700-italic.woff2 share/examples/gotosocial/web/assets/fonts/noto-sans-cyrillic-ext-700-normal.woff share/examples/gotosocial/web/assets/fonts/noto-sans-cyrillic-ext-700-normal.woff2 share/examples/gotosocial/web/assets/fonts/noto-sans-devanagari-400-italic.woff share/examples/gotosocial/web/assets/fonts/noto-sans-devanagari-400-italic.woff2 share/examples/gotosocial/web/assets/fonts/noto-sans-devanagari-400-normal.woff share/examples/gotosocial/web/assets/fonts/noto-sans-devanagari-400-normal.woff2 share/examples/gotosocial/web/assets/fonts/noto-sans-devanagari-700-italic.woff share/examples/gotosocial/web/assets/fonts/noto-sans-devanagari-700-italic.woff2 share/examples/gotosocial/web/assets/fonts/noto-sans-devanagari-700-normal.woff share/examples/gotosocial/web/assets/fonts/noto-sans-devanagari-700-normal.woff2 share/examples/gotosocial/web/assets/fonts/noto-sans-greek-400-italic.woff share/examples/gotosocial/web/assets/fonts/noto-sans-greek-400-italic.woff2 share/examples/gotosocial/web/assets/fonts/noto-sans-greek-400-normal.woff share/examples/gotosocial/web/assets/fonts/noto-sans-greek-400-normal.woff2 share/examples/gotosocial/web/assets/fonts/noto-sans-greek-700-italic.woff share/examples/gotosocial/web/assets/fonts/noto-sans-greek-700-italic.woff2 share/examples/gotosocial/web/assets/fonts/noto-sans-greek-700-normal.woff share/examples/gotosocial/web/assets/fonts/noto-sans-greek-700-normal.woff2 share/examples/gotosocial/web/assets/fonts/noto-sans-greek-ext-400-italic.woff share/examples/gotosocial/web/assets/fonts/noto-sans-greek-ext-400-italic.woff2 share/examples/gotosocial/web/assets/fonts/noto-sans-greek-ext-400-normal.woff share/examples/gotosocial/web/assets/fonts/noto-sans-greek-ext-400-normal.woff2 share/examples/gotosocial/web/assets/fonts/noto-sans-greek-ext-700-italic.woff share/examples/gotosocial/web/assets/fonts/noto-sans-greek-ext-700-italic.woff2 share/examples/gotosocial/web/assets/fonts/noto-sans-greek-ext-700-normal.woff share/examples/gotosocial/web/assets/fonts/noto-sans-greek-ext-700-normal.woff2 share/examples/gotosocial/web/assets/fonts/noto-sans-latin-400-italic.woff share/examples/gotosocial/web/assets/fonts/noto-sans-latin-400-italic.woff2 share/examples/gotosocial/web/assets/fonts/noto-sans-latin-400-normal.woff share/examples/gotosocial/web/assets/fonts/noto-sans-latin-400-normal.woff2 share/examples/gotosocial/web/assets/fonts/noto-sans-latin-700-italic.woff share/examples/gotosocial/web/assets/fonts/noto-sans-latin-700-italic.woff2 share/examples/gotosocial/web/assets/fonts/noto-sans-latin-700-normal.woff share/examples/gotosocial/web/assets/fonts/noto-sans-latin-700-normal.woff2 share/examples/gotosocial/web/assets/fonts/noto-sans-latin-ext-400-italic.woff share/examples/gotosocial/web/assets/fonts/noto-sans-latin-ext-400-italic.woff2 share/examples/gotosocial/web/assets/fonts/noto-sans-latin-ext-400-normal.woff share/examples/gotosocial/web/assets/fonts/noto-sans-latin-ext-400-normal.woff2 share/examples/gotosocial/web/assets/fonts/noto-sans-latin-ext-700-italic.woff share/examples/gotosocial/web/assets/fonts/noto-sans-latin-ext-700-italic.woff2 share/examples/gotosocial/web/assets/fonts/noto-sans-latin-ext-700-normal.woff share/examples/gotosocial/web/assets/fonts/noto-sans-latin-ext-700-normal.woff2 share/examples/gotosocial/web/assets/fonts/noto-sans-mono-cyrillic-400-normal.woff share/examples/gotosocial/web/assets/fonts/noto-sans-mono-cyrillic-400-normal.woff2 share/examples/gotosocial/web/assets/fonts/noto-sans-mono-cyrillic-700-normal.woff share/examples/gotosocial/web/assets/fonts/noto-sans-mono-cyrillic-700-normal.woff2 share/examples/gotosocial/web/assets/fonts/noto-sans-mono-cyrillic-ext-400-normal.woff share/examples/gotosocial/web/assets/fonts/noto-sans-mono-cyrillic-ext-400-normal.woff2 share/examples/gotosocial/web/assets/fonts/noto-sans-mono-cyrillic-ext-700-normal.woff share/examples/gotosocial/web/assets/fonts/noto-sans-mono-cyrillic-ext-700-normal.woff2 share/examples/gotosocial/web/assets/fonts/noto-sans-mono-greek-400-normal.woff share/examples/gotosocial/web/assets/fonts/noto-sans-mono-greek-400-normal.woff2 share/examples/gotosocial/web/assets/fonts/noto-sans-mono-greek-700-normal.woff share/examples/gotosocial/web/assets/fonts/noto-sans-mono-greek-700-normal.woff2 share/examples/gotosocial/web/assets/fonts/noto-sans-mono-greek-ext-400-normal.woff share/examples/gotosocial/web/assets/fonts/noto-sans-mono-greek-ext-400-normal.woff2 share/examples/gotosocial/web/assets/fonts/noto-sans-mono-greek-ext-700-normal.woff share/examples/gotosocial/web/assets/fonts/noto-sans-mono-greek-ext-700-normal.woff2 share/examples/gotosocial/web/assets/fonts/noto-sans-mono-latin-400-normal.woff share/examples/gotosocial/web/assets/fonts/noto-sans-mono-latin-400-normal.woff2 share/examples/gotosocial/web/assets/fonts/noto-sans-mono-latin-700-normal.woff share/examples/gotosocial/web/assets/fonts/noto-sans-mono-latin-700-normal.woff2 share/examples/gotosocial/web/assets/fonts/noto-sans-mono-latin-ext-400-normal.woff share/examples/gotosocial/web/assets/fonts/noto-sans-mono-latin-ext-400-normal.woff2 share/examples/gotosocial/web/assets/fonts/noto-sans-mono-latin-ext-700-normal.woff share/examples/gotosocial/web/assets/fonts/noto-sans-mono-latin-ext-700-normal.woff2 share/examples/gotosocial/web/assets/fonts/noto-sans-mono-vietnamese-400-normal.woff share/examples/gotosocial/web/assets/fonts/noto-sans-mono-vietnamese-400-normal.woff2 share/examples/gotosocial/web/assets/fonts/noto-sans-mono-vietnamese-700-normal.woff share/examples/gotosocial/web/assets/fonts/noto-sans-mono-vietnamese-700-normal.woff2 share/examples/gotosocial/web/assets/fonts/noto-sans-vietnamese-400-italic.woff share/examples/gotosocial/web/assets/fonts/noto-sans-vietnamese-400-italic.woff2 share/examples/gotosocial/web/assets/fonts/noto-sans-vietnamese-400-normal.woff share/examples/gotosocial/web/assets/fonts/noto-sans-vietnamese-400-normal.woff2 share/examples/gotosocial/web/assets/fonts/noto-sans-vietnamese-700-italic.woff share/examples/gotosocial/web/assets/fonts/noto-sans-vietnamese-700-italic.woff2 share/examples/gotosocial/web/assets/fonts/noto-sans-vietnamese-700-normal.woff share/examples/gotosocial/web/assets/fonts/noto-sans-vietnamese-700-normal.woff2 share/examples/gotosocial/web/assets/logo.png share/examples/gotosocial/web/assets/logo.svg share/examples/gotosocial/web/assets/logo.webp share/examples/gotosocial/web/assets/mastodon.svg share/examples/gotosocial/web/assets/plyr.svg share/examples/gotosocial/web/assets/swagger.yaml share/examples/gotosocial/web/assets/themes/blurple-auto.css share/examples/gotosocial/web/assets/themes/blurple-dark.css share/examples/gotosocial/web/assets/themes/blurple-light.css share/examples/gotosocial/web/assets/themes/brutalist-auto.css share/examples/gotosocial/web/assets/themes/brutalist-dark.css share/examples/gotosocial/web/assets/themes/brutalist.css share/examples/gotosocial/web/assets/themes/ecks-pee.css share/examples/gotosocial/web/assets/themes/midnight-trip.css share/examples/gotosocial/web/assets/themes/moonlight-hunt.css share/examples/gotosocial/web/assets/themes/rain-forest.css share/examples/gotosocial/web/assets/themes/soft.css share/examples/gotosocial/web/assets/themes/solarized-auto.css share/examples/gotosocial/web/assets/themes/solarized-dark.css share/examples/gotosocial/web/assets/themes/solarized-light.css share/examples/gotosocial/web/assets/themes/sunset-light.css share/examples/gotosocial/web/assets/tusky.svg share/examples/gotosocial/web/source/.browserslistrc share/examples/gotosocial/web/source/.eslintignore share/examples/gotosocial/web/source/.eslintrc.js share/examples/gotosocial/web/source/.gitignore share/examples/gotosocial/web/source/.license-header.js share/examples/gotosocial/web/source/css/_colors.css share/examples/gotosocial/web/source/css/_fonts.css share/examples/gotosocial/web/source/css/_media-wrapper.css share/examples/gotosocial/web/source/css/_prism.css share/examples/gotosocial/web/source/css/_profile-header.css share/examples/gotosocial/web/source/css/_status-media.css share/examples/gotosocial/web/source/css/about.css share/examples/gotosocial/web/source/css/base.css share/examples/gotosocial/web/source/css/index.css share/examples/gotosocial/web/source/css/login-info.css share/examples/gotosocial/web/source/css/page.css share/examples/gotosocial/web/source/css/profile-gallery.css share/examples/gotosocial/web/source/css/profile.css share/examples/gotosocial/web/source/css/status.css share/examples/gotosocial/web/source/css/tag.css share/examples/gotosocial/web/source/css/thread.css share/examples/gotosocial/web/source/frontend/index.js share/examples/gotosocial/web/source/frontend/prism.js share/examples/gotosocial/web/source/frontend_prerender/index.js share/examples/gotosocial/web/source/index.js share/examples/gotosocial/web/source/package.json share/examples/gotosocial/web/source/settings/components/authorization/index.tsx share/examples/gotosocial/web/source/settings/components/authorization/login.tsx share/examples/gotosocial/web/source/settings/components/back-button.tsx share/examples/gotosocial/web/source/settings/components/blurhash.tsx share/examples/gotosocial/web/source/settings/components/check-list.tsx share/examples/gotosocial/web/source/settings/components/combo-box.tsx share/examples/gotosocial/web/source/settings/components/error.tsx share/examples/gotosocial/web/source/settings/components/form/inputs.tsx share/examples/gotosocial/web/source/settings/components/form/mutation-button.tsx share/examples/gotosocial/web/source/settings/components/highlightedcode.tsx share/examples/gotosocial/web/source/settings/components/languages.tsx share/examples/gotosocial/web/source/settings/components/loading.tsx share/examples/gotosocial/web/source/settings/components/pageable-list.tsx share/examples/gotosocial/web/source/settings/components/profile.tsx share/examples/gotosocial/web/source/settings/components/status.tsx share/examples/gotosocial/web/source/settings/components/user-logout-card.tsx share/examples/gotosocial/web/source/settings/components/username-lozenge.tsx share/examples/gotosocial/web/source/settings/index.tsx share/examples/gotosocial/web/source/settings/lib/form/array.ts share/examples/gotosocial/web/source/settings/lib/form/bool.tsx share/examples/gotosocial/web/source/settings/lib/form/check-list.tsx share/examples/gotosocial/web/source/settings/lib/form/combo-box.tsx share/examples/gotosocial/web/source/settings/lib/form/context.jsx share/examples/gotosocial/web/source/settings/lib/form/field-array.tsx share/examples/gotosocial/web/source/settings/lib/form/file.tsx share/examples/gotosocial/web/source/settings/lib/form/form-with-data.tsx share/examples/gotosocial/web/source/settings/lib/form/get-form-mutations.ts share/examples/gotosocial/web/source/settings/lib/form/index.ts share/examples/gotosocial/web/source/settings/lib/form/number.tsx share/examples/gotosocial/web/source/settings/lib/form/radio.tsx share/examples/gotosocial/web/source/settings/lib/form/submit.ts share/examples/gotosocial/web/source/settings/lib/form/text.tsx share/examples/gotosocial/web/source/settings/lib/form/types.ts share/examples/gotosocial/web/source/settings/lib/navigation/error.tsx share/examples/gotosocial/web/source/settings/lib/navigation/menu.tsx share/examples/gotosocial/web/source/settings/lib/navigation/util.ts share/examples/gotosocial/web/source/settings/lib/query/admin/actions/index.ts share/examples/gotosocial/web/source/settings/lib/query/admin/custom-emoji/index.ts share/examples/gotosocial/web/source/settings/lib/query/admin/debug/index.ts share/examples/gotosocial/web/source/settings/lib/query/admin/domain-permissions/drafts.ts share/examples/gotosocial/web/source/settings/lib/query/admin/domain-permissions/excludes.ts share/examples/gotosocial/web/source/settings/lib/query/admin/domain-permissions/export.ts share/examples/gotosocial/web/source/settings/lib/query/admin/domain-permissions/get.ts share/examples/gotosocial/web/source/settings/lib/query/admin/domain-permissions/import.ts share/examples/gotosocial/web/source/settings/lib/query/admin/domain-permissions/process.ts share/examples/gotosocial/web/source/settings/lib/query/admin/domain-permissions/subscriptions.ts share/examples/gotosocial/web/source/settings/lib/query/admin/domain-permissions/update.ts share/examples/gotosocial/web/source/settings/lib/query/admin/http-header-permissions/index.ts share/examples/gotosocial/web/source/settings/lib/query/admin/index.ts share/examples/gotosocial/web/source/settings/lib/query/admin/reports/index.ts share/examples/gotosocial/web/source/settings/lib/query/gts-api.ts share/examples/gotosocial/web/source/settings/lib/query/login/index.ts share/examples/gotosocial/web/source/settings/lib/query/query-modifiers.ts share/examples/gotosocial/web/source/settings/lib/query/transforms.ts share/examples/gotosocial/web/source/settings/lib/query/user/applications.ts share/examples/gotosocial/web/source/settings/lib/query/user/export-import.ts share/examples/gotosocial/web/source/settings/lib/query/user/index.ts share/examples/gotosocial/web/source/settings/lib/query/user/interactions.ts share/examples/gotosocial/web/source/settings/lib/query/user/tokens.ts share/examples/gotosocial/web/source/settings/lib/query/user/twofactor.ts share/examples/gotosocial/web/source/settings/lib/types/account.ts share/examples/gotosocial/web/source/settings/lib/types/application.ts share/examples/gotosocial/web/source/settings/lib/types/custom-emoji.ts share/examples/gotosocial/web/source/settings/lib/types/debug.ts share/examples/gotosocial/web/source/settings/lib/types/domain-permission.ts share/examples/gotosocial/web/source/settings/lib/types/http-header-permissions.ts share/examples/gotosocial/web/source/settings/lib/types/instance.ts share/examples/gotosocial/web/source/settings/lib/types/interaction.ts share/examples/gotosocial/web/source/settings/lib/types/migration.ts share/examples/gotosocial/web/source/settings/lib/types/oauth.ts share/examples/gotosocial/web/source/settings/lib/types/perm.ts share/examples/gotosocial/web/source/settings/lib/types/permsubcontenttype.ts share/examples/gotosocial/web/source/settings/lib/types/query.ts share/examples/gotosocial/web/source/settings/lib/types/report.ts share/examples/gotosocial/web/source/settings/lib/types/rules.ts share/examples/gotosocial/web/source/settings/lib/types/scopes.ts share/examples/gotosocial/web/source/settings/lib/types/status.ts share/examples/gotosocial/web/source/settings/lib/types/theme.ts share/examples/gotosocial/web/source/settings/lib/types/tokeninfo.ts share/examples/gotosocial/web/source/settings/lib/types/user.ts share/examples/gotosocial/web/source/settings/lib/util/domain-permission.ts share/examples/gotosocial/web/source/settings/lib/util/formvalidators.ts share/examples/gotosocial/web/source/settings/lib/util/index.ts share/examples/gotosocial/web/source/settings/redux/checklist.ts share/examples/gotosocial/web/source/settings/redux/login.ts share/examples/gotosocial/web/source/settings/redux/store.ts share/examples/gotosocial/web/source/settings/style.css share/examples/gotosocial/web/source/settings/views/admin/actions/email/index.tsx share/examples/gotosocial/web/source/settings/views/admin/actions/email/test.tsx share/examples/gotosocial/web/source/settings/views/admin/actions/keys/expireremote.tsx share/examples/gotosocial/web/source/settings/views/admin/actions/keys/index.tsx share/examples/gotosocial/web/source/settings/views/admin/actions/media/cleanup.tsx share/examples/gotosocial/web/source/settings/views/admin/actions/media/index.tsx share/examples/gotosocial/web/source/settings/views/admin/debug/apurl/index.tsx share/examples/gotosocial/web/source/settings/views/admin/debug/caches/index.tsx share/examples/gotosocial/web/source/settings/views/admin/emoji/category-select.tsx share/examples/gotosocial/web/source/settings/views/admin/emoji/local/detail.tsx share/examples/gotosocial/web/source/settings/views/admin/emoji/local/new-emoji.tsx share/examples/gotosocial/web/source/settings/views/admin/emoji/local/overview.tsx share/examples/gotosocial/web/source/settings/views/admin/emoji/local/use-shortcode.ts share/examples/gotosocial/web/source/settings/views/admin/emoji/remote/index.tsx share/examples/gotosocial/web/source/settings/views/admin/emoji/remote/steal-this-look.tsx share/examples/gotosocial/web/source/settings/views/admin/http-header-permissions/create.tsx share/examples/gotosocial/web/source/settings/views/admin/http-header-permissions/detail.tsx share/examples/gotosocial/web/source/settings/views/admin/http-header-permissions/overview.tsx share/examples/gotosocial/web/source/settings/views/admin/instance/ruledetail.tsx share/examples/gotosocial/web/source/settings/views/admin/instance/rules.tsx share/examples/gotosocial/web/source/settings/views/admin/instance/settings.tsx share/examples/gotosocial/web/source/settings/views/admin/menu.tsx share/examples/gotosocial/web/source/settings/views/admin/router.tsx share/examples/gotosocial/web/source/settings/views/moderation/accounts/detail/actions.tsx share/examples/gotosocial/web/source/settings/views/moderation/accounts/detail/index.tsx share/examples/gotosocial/web/source/settings/views/moderation/accounts/index.tsx share/examples/gotosocial/web/source/settings/views/moderation/accounts/pending/index.tsx share/examples/gotosocial/web/source/settings/views/moderation/accounts/search/index.tsx share/examples/gotosocial/web/source/settings/views/moderation/domain-permissions/detail.tsx share/examples/gotosocial/web/source/settings/views/moderation/domain-permissions/drafts/common.tsx share/examples/gotosocial/web/source/settings/views/moderation/domain-permissions/drafts/detail.tsx share/examples/gotosocial/web/source/settings/views/moderation/domain-permissions/drafts/index.tsx share/examples/gotosocial/web/source/settings/views/moderation/domain-permissions/drafts/new.tsx share/examples/gotosocial/web/source/settings/views/moderation/domain-permissions/excludes/common.tsx share/examples/gotosocial/web/source/settings/views/moderation/domain-permissions/excludes/detail.tsx share/examples/gotosocial/web/source/settings/views/moderation/domain-permissions/excludes/index.tsx share/examples/gotosocial/web/source/settings/views/moderation/domain-permissions/excludes/new.tsx share/examples/gotosocial/web/source/settings/views/moderation/domain-permissions/export-format-table.tsx share/examples/gotosocial/web/source/settings/views/moderation/domain-permissions/form.tsx share/examples/gotosocial/web/source/settings/views/moderation/domain-permissions/import-export.tsx share/examples/gotosocial/web/source/settings/views/moderation/domain-permissions/overview.tsx share/examples/gotosocial/web/source/settings/views/moderation/domain-permissions/process.tsx share/examples/gotosocial/web/source/settings/views/moderation/domain-permissions/subscriptions/common.tsx share/examples/gotosocial/web/source/settings/views/moderation/domain-permissions/subscriptions/detail.tsx share/examples/gotosocial/web/source/settings/views/moderation/domain-permissions/subscriptions/index.tsx share/examples/gotosocial/web/source/settings/views/moderation/domain-permissions/subscriptions/new.tsx share/examples/gotosocial/web/source/settings/views/moderation/domain-permissions/subscriptions/preview.tsx share/examples/gotosocial/web/source/settings/views/moderation/menu.tsx share/examples/gotosocial/web/source/settings/views/moderation/reports/detail.tsx share/examples/gotosocial/web/source/settings/views/moderation/reports/search.tsx share/examples/gotosocial/web/source/settings/views/moderation/router.tsx share/examples/gotosocial/web/source/settings/views/user/account/email.tsx share/examples/gotosocial/web/source/settings/views/user/account/index.tsx share/examples/gotosocial/web/source/settings/views/user/account/password.tsx share/examples/gotosocial/web/source/settings/views/user/account/twofactor.tsx share/examples/gotosocial/web/source/settings/views/user/applications/callback.tsx share/examples/gotosocial/web/source/settings/views/user/applications/common.tsx share/examples/gotosocial/web/source/settings/views/user/applications/detail.tsx share/examples/gotosocial/web/source/settings/views/user/applications/index.tsx share/examples/gotosocial/web/source/settings/views/user/applications/new.tsx share/examples/gotosocial/web/source/settings/views/user/applications/search.tsx share/examples/gotosocial/web/source/settings/views/user/export-import/export.tsx share/examples/gotosocial/web/source/settings/views/user/export-import/import.tsx share/examples/gotosocial/web/source/settings/views/user/export-import/index.tsx share/examples/gotosocial/web/source/settings/views/user/interactions/detail.tsx share/examples/gotosocial/web/source/settings/views/user/interactions/index.tsx share/examples/gotosocial/web/source/settings/views/user/interactions/search.tsx share/examples/gotosocial/web/source/settings/views/user/interactions/util.tsx share/examples/gotosocial/web/source/settings/views/user/menu.tsx share/examples/gotosocial/web/source/settings/views/user/migration/index.tsx share/examples/gotosocial/web/source/settings/views/user/posts/basic-settings/index.tsx share/examples/gotosocial/web/source/settings/views/user/posts/index.tsx share/examples/gotosocial/web/source/settings/views/user/posts/interaction-policy-settings/basic.tsx share/examples/gotosocial/web/source/settings/views/user/posts/interaction-policy-settings/index.tsx share/examples/gotosocial/web/source/settings/views/user/posts/interaction-policy-settings/something-else.tsx share/examples/gotosocial/web/source/settings/views/user/posts/interaction-policy-settings/types.ts share/examples/gotosocial/web/source/settings/views/user/profile/profile.tsx share/examples/gotosocial/web/source/settings/views/user/router.tsx share/examples/gotosocial/web/source/settings/views/user/tokens/index.tsx share/examples/gotosocial/web/source/settings/views/user/tokens/search.tsx share/examples/gotosocial/web/source/tsconfig.json share/examples/gotosocial/web/source/yarn.lock share/examples/gotosocial/web/template/2fa.tmpl share/examples/gotosocial/web/template/404.tmpl share/examples/gotosocial/web/template/about.tmpl share/examples/gotosocial/web/template/authorize.tmpl share/examples/gotosocial/web/template/confirm-email.tmpl share/examples/gotosocial/web/template/confirmed-email.tmpl share/examples/gotosocial/web/template/domain-blocklist.tmpl share/examples/gotosocial/web/template/email_confirm.tmpl share/examples/gotosocial/web/template/email_new_report.tmpl share/examples/gotosocial/web/template/email_new_signup.tmpl share/examples/gotosocial/web/template/email_report_closed.tmpl share/examples/gotosocial/web/template/email_reset.tmpl share/examples/gotosocial/web/template/email_signup_approved.tmpl share/examples/gotosocial/web/template/email_signup_rejected.tmpl share/examples/gotosocial/web/template/email_test.tmpl share/examples/gotosocial/web/template/error.tmpl share/examples/gotosocial/web/template/finalize.tmpl share/examples/gotosocial/web/template/index.tmpl share/examples/gotosocial/web/template/index_register.tmpl share/examples/gotosocial/web/template/index_what_is_this.tmpl share/examples/gotosocial/web/template/login-info.tmpl share/examples/gotosocial/web/template/login_button.tmpl share/examples/gotosocial/web/template/maintenance.tmpl share/examples/gotosocial/web/template/oob.tmpl share/examples/gotosocial/web/template/page.tmpl share/examples/gotosocial/web/template/page_footer.tmpl share/examples/gotosocial/web/template/page_header.tmpl share/examples/gotosocial/web/template/page_ogmeta.tmpl share/examples/gotosocial/web/template/page_stylesheets.tmpl share/examples/gotosocial/web/template/profile-gallery.tmpl share/examples/gotosocial/web/template/profile.tmpl share/examples/gotosocial/web/template/profile_about_user.tmpl share/examples/gotosocial/web/template/profile_fields.tmpl share/examples/gotosocial/web/template/profile_header.tmpl share/examples/gotosocial/web/template/settings.tmpl share/examples/gotosocial/web/template/sign-in.tmpl share/examples/gotosocial/web/template/sign-up.tmpl share/examples/gotosocial/web/template/signed-up.tmpl share/examples/gotosocial/web/template/status.tmpl share/examples/gotosocial/web/template/status_attachment.tmpl share/examples/gotosocial/web/template/status_attributes.tmpl share/examples/gotosocial/web/template/status_header.tmpl share/examples/gotosocial/web/template/status_info.tmpl share/examples/gotosocial/web/template/status_poll.tmpl share/examples/gotosocial/web/template/tag.tmpl share/examples/gotosocial/web/template/thread.tmpl @ 1.15 log @gotosocial: Update to 0.17.0. Based on patch and files provided by Joel Carnat, with a bunch of additional cleanups to use pkgsrc norms by myself. The changelog is large, available in full from: https://github.com/superseriousbusiness/gotosocial/releases/tag/v0.17.0 Release highlights * Interaction policies: This release gives you the ability to set interaction policies on your statuses using the settings panel. Interaction policies let you determine who can reply to, like, or boost your statuses. You can accept or reject interactions as you wish; accepted replies will be added to your replies collection, and unwanted replies will be dropped. This feature is still a work-in-progress as we will almost certainly have some kinks to work out in terms of implementation etc, but we wanted to get it into people's hands as quickly as possible. * Much wider range of support for different media types: In this release we've embedded a webassembly build of ffmpeg into the GoToSocial binary, so that users can post many different types of media than previously, including mp3, flac, and other audio types, and many more video types. Admins: you don't need to have ffmpeg installed on your server for this to work. * Audio player: to complement the new media types, we adapted our current video player to also play audio, so people visiting your profile can play MP3s and FLACs. Album art is supported when embedded in the audio file! * Header/avatar alt text: You can now set alt-text for your avatar + header images, so that screenreader users visiting your profile can read a description of your beautiful face. * Better threading model for statuses: On the web view of a thread, conversations are now indented at different levels, to make it easier to see who's replying to whom. * Prefers-reduced-motion is now supported, so that folks with animations turned off in their operating system or browser aren't confronted with lots of animation when they open your profile. * Conversations view: You can now view a list of your direct message conversations, making it much easier to keep track of who you're talking to. * Import/export csv files: It's now possible to import Mastodon-compatible CSV files for accounts you follow and accounts you block, making it much easier to migrate across instances. Export of these files is supported too. * Exclusive lists: You can now mark lists as "exclusive", which means that posts from accounts in an exclusive list will show up only in that list and not in your home timeline. * Show/hide posts on your profile: Previously only Public posts were shown on your web profile. This is still the default, but you can now choose to show unlisted posts on your web profile too (the Mastodon default), or to show no posts at all. * Lots of new themes: solarized, brutalist, ecks pee, and more. * Store worker queue on restart: when you stop the instance, pending tasks are stored into the database, and loaded again when you start up the instance, so that no tasks get lost between restarts. @ text @d1 1 a1 1 @@comment $NetBSD: PLIST,v 1.14 2024/06/16 16:52:43 nikita Exp $ d29 5 d37 1 d39 1 d41 1 a41 1 share/examples/gotosocial/web/assets/dist/prism.css d48 1 d59 92 a150 5 share/examples/gotosocial/web/assets/fonts/noto-sans-mono-v30-latin-regular.woff2 share/examples/gotosocial/web/assets/fonts/noto-sans-v27-latin-700.woff share/examples/gotosocial/web/assets/fonts/noto-sans-v27-latin-700.woff2 share/examples/gotosocial/web/assets/fonts/noto-sans-v27-latin-regular.woff share/examples/gotosocial/web/assets/fonts/noto-sans-v27-latin-regular.woff2 d157 1 d160 1 d168 1 d179 5 d187 1 d189 1 a189 1 share/examples/gotosocial/web/source/css/prism.css d196 1 d202 1 d208 1 d215 1 a215 1 share/examples/gotosocial/web/source/settings/components/username.tsx d227 1 d238 2 d244 1 d250 1 a250 1 share/examples/gotosocial/web/source/settings/lib/query/oauth/index.ts d253 1 d257 2 d260 1 d268 1 d270 1 d274 1 d277 1 d280 1 d283 1 a283 1 share/examples/gotosocial/web/source/settings/redux/oauth.ts d315 8 d328 5 d337 10 a346 1 share/examples/gotosocial/web/source/settings/views/user/emailpassword.tsx d355 1 a355 1 share/examples/gotosocial/web/source/settings/views/user/migration.tsx d362 1 a362 1 share/examples/gotosocial/web/source/settings/views/user/profile.tsx d364 2 d368 1 d372 2 a373 2 share/examples/gotosocial/web/template/confirm_email.tmpl share/examples/gotosocial/web/template/confirmed_email.tmpl a385 1 share/examples/gotosocial/web/template/index_apps.tmpl d388 3 d397 1 d399 1 d401 1 d407 1 a407 1 share/examples/gotosocial/web/template/status_attachments.tmpl @ 1.14 log @gotosocial: update to version 0.16.0 Changelog: v0.16.0 Snappy Sloth Hello internet! Roll up roll up and see ye all version 0.16.0 of GoToSocial, codename SNAPPY SLOTH. Release highlights Sign up / registration: In this release, you can open your instance to new registrations (aka sign-ups) via the new signup page at https://[your-instance.tld]/signup. No more manually creating new users via the CLI :) Documentation here: https://docs.gotosocial.org/en/latest/admin/signups/ Accounts overview for moderators: To support the new sign-up feature, and help instance admins to moderate, we made a new section in the settings panel where admins + moderators can get an overview of accounts, and filter by instance, status, and more. You'll find this new accounts view in the settings panel. Totally reworked message delivery system and worker queues: We've completely reworked the way GoToSocial sends out messages to your followers and performs worker-related tasks; this should drastically increase the speed that outgoing messages are delivered, especially for users with lots of followers. It also paves the way for future work in terms of persisting worker and message queues over restarts. Account mutes: The account mute API endpoints are now implemented, meaning you can put (timed) mutes of accounts in place, to hide statuses from specific accounts from your home timeline, and/or hide notifications from muted accounts. Accurate account stats: This release introduces code to pull up-to-date counts of statuses, followers, and following from remote instances and show these stats via the API. So now in your client of choice, you should see an accurate count of the number of statuses and followers/following of a given account, no more "0 followers, 0 following, 0 statuses". HTTP header permissions settings: The settings panel now has a section that allows admins to set regular expressions to deny requests depending on HTTP headers. Documentation here: https://docs.gotosocial.org/en/latest/admin/request_filtering_modes/ Filters v2 implementation: We've now implemented the v2 API for filters, which means you can create more complex filters to hide keywords or statuses, and more clients should be able to create filters on GoToSocial. Send test email: Admins can now use the settings panel to send a test email, to check if their SMTP (email) configuration is valid. Profile API: Clients that use the profile API to delete avatar + header images should now work, since we've now implemented this part of the API. Search operators: We've added a first search operator to GoToSocial, so when you're searching for statuses, you can add from:@@[username]@@[domain] to your search term, to search only within statuses created by the given account (while still respecting the search limitations we already had in place). Documentation here: https://docs.gotosocial.org/en/latest/user_guide/search/ Email change: Users can now change their email address in the settings panel without admin intervention. Documentation here: https://docs.gotosocial.org/en/latest/user_guide/settings/#email-change Memory usage optimizations: GoToSocial now uses memory more conservatively than before; you should only need about 150-200MiB of memory to run GtS with a full cache, and it will spike less. Migration notes Upgrading To upgrade to 0.16.0 from a previous release: Binary/tar Stop GoToSocial Untar the new release, including the web assets and html templates. Edit your config.yaml file as necessary (see below). Start GoToSocial Docker Stop GoToSocial. Pull the new docker container (superseriousbusiness/gotosocial:0.16.0 or superseriousbusiness/gotosocial:latest) Start GoToSocial. config.yaml The configuration file has changed since the previous release. You can see a diff of the config file here: v0.15.0...v0.16.0#diff-c071e03510b2c57e193a44503fd9528a785f0f411497cc75841a9f8d0b1ac622 Database Migrations โš ๏ธ This release contains several database migrations which will run the first time you start up this new version. Be sure not to interrupt this migration process. This will take anywhere between a couple seconds and ten minutes or more (on slower hardware). Please be patient! โš ๏ธ Detailed Changelog Features + Performance [performance] massively improved ActivityPub delivery worker efficiency by @@NyaaaWhatsUpDoc in #2812 [feature] New user sign-up via web page by @@tsmethurst in #2796 [performance] update GetAccountsByIDs() to use the new multi cache loader endpoint by @@NyaaaWhatsUpDoc in #2828 [feature] Admin accounts endpoints; approve/reject sign-ups by @@tsmethurst in #2826 [performance] cached oauth database types by @@NyaaaWhatsUpDoc in #2838 [feature/performance] Store account stats in separate table by @@tsmethurst in #2831 [feature] Stub status history endpoint by @@tsmethurst in #2847 [feature] Status source endpoint by @@tsmethurst in #2848 [feature] Stub account mutes endpoint by @@tsmethurst in #2852 [feature] Stub conversations endpoint by @@tsmethurst in #2853 [performance] update remaining worker pools to use queues by @@NyaaaWhatsUpDoc in #2865 [feature] Page through accounts as moderator by @@tsmethurst in #2881 [feature] Add HTTP header permission section to frontend by @@tsmethurst in #2893 feature: filters v2 server-side warning/hiding by @@VyrCossont in #2793 [performance] update go-structr -> v0.8.2 which includes some minor memory usage improvements by @@NyaaaWhatsUpDoc in #2904 [performance] update go-structr and go-mutexes with memory usage improvements by @@NyaaaWhatsUpDoc in #2909 [performance] cache v2 filter keyword regular expressions by @@NyaaaWhatsUpDoc in #2903 [performance] update storage backend and make use of seek syscall when available by @@NyaaaWhatsUpDoc in #2924 [experiment] add alternative wasm sqlite3 implementation available via build-tag by @@NyaaaWhatsUpDoc in #2863 [feature/frontend] Let admins send test email to validate SMTP config by @@tsmethurst in #2934 [feature] Debug admin endpoint to clear caches by @@tsmethurst in #2940 Implement profile API by @@VyrCossont in #2926 [feature] Implement Filter API v2 by @@VyrCossont in #2936 [feature] Add from: search operator and account_id query param by @@VyrCossont in #2943 [feature/frontend] Add debug sections to settings panel by @@tsmethurst in #2950 [performance] bump go-structr to v0.8.5 to improve memory usage by @@NyaaaWhatsUpDoc in #2955 [feature] log worker startup counts by @@NyaaaWhatsUpDoc in #2958 [feature] do not uncache status / emoji media if attached status is bookmarked by @@NyaaaWhatsUpDoc in #2956 [feature] Self-serve email change for users by @@tsmethurst in #2957 [feature] User muting by @@VyrCossont in #2960 Implement filters_changed stream event by @@VyrCossont in #2972 [feature] filter API v2: restore keywords_attributes and statuses_attributes by @@VyrCossont in #2995 Bugfixes [bugfix] Include MIME email headers to avoid mangling non-ascii text by @@tsmethurst in #2827 [bugfix] fix get all tokens by @@tsmethurst in #2841 [bugfix] Fix minor API issue w/ boosted statuses by @@tsmethurst in #2846 [bugfix] nil panic when deleting status by @@NyaaaWhatsUpDoc in #2849 [bugfix] Fix incorrect field name for status source, add helpful message by @@tsmethurst in #2854 [bugfix] fix error string typo by @@NyaaaWhatsUpDoc in #2873 [bugfix] paging rel links by @@NyaaaWhatsUpDoc in #2883 [bugfix] retry on http 500 errors inclusive by @@NyaaaWhatsUpDoc in #2886 [bugfix] further paging mishaps by @@NyaaaWhatsUpDoc in #2884 [bugfix] flaky paging test by @@NyaaaWhatsUpDoc in #2888 [bugfix] function queue memory pools limitlessly grow by @@NyaaaWhatsUpDoc in #2882 [bugfix/chore] Tidy up remaining references to workers in cmd by @@tsmethurst in #2889 [bugfix] Lock when checking/creating notifs to avoid race by @@tsmethurst in #2890 [bugfix] add missing caches to the main cache sweep command by @@NyaaaWhatsUpDoc in #2891 [bugfix] close + drain body if response is too large by @@NyaaaWhatsUpDoc in #2897 [bugfix] fix cache size calculations by @@NyaaaWhatsUpDoc in #2907 [bugfix/frontend] Fix emoji values not resetting on upload by @@tsmethurst in #2905 [bugfix] concurrent map writes in dereferencer media processing maps by @@NyaaaWhatsUpDoc in #2964 [bugfix] Don't nil emojis + fields on blocked accounts by @@tsmethurst in #2968 [bugfix] update media if more than just url changes by @@NyaaaWhatsUpDoc in #2970 [bugfix] Filter fixes by @@VyrCossont in #2971 [bugfix/frontend] Use re2 syntax for regex validation by @@tsmethurst in #2978 [bugfix] boost and account recursion by @@NyaaaWhatsUpDoc in #2982 [bugfix] Deref stats async, serve stub collections if handshaking by @@tsmethurst in #2990 [bugfix] Correct Swagger path for poll voting by @@VyrCossont in #2996 [bugfix] Ensure side effects handled for local unlocked follows by @@tsmethurst in #2998 [bugfix] avoid v. long notification clear query by @@tsmethurst in #3007 Chores + Version Bumps [chore] update go-structr => v0.6.2 (fixes nested field ptr following) by @@NyaaaWhatsUpDoc in #2822 [chore]: Bump go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc from 1.24.0 to 1.25.0 by @@dependabot in #2818 [chore] Delete the unnecessary #, because this # lead to the wrong URL. by @@KyoSakuyo in #2830 [chore]: Bump golang.org/x/crypto from 0.21.0 to 0.22.0 by @@dependabot in #2835 [chore]: Bump golang.org/x/net from 0.23.0 to 0.24.0 by @@dependabot in #2834 [chore] bump bun library versions by @@NyaaaWhatsUpDoc in #2837 [chore] Turn accounts-registration-open false by default by @@tsmethurst in #2839 [chore] bump to modernc.org/sqlite v1.29.5 -> v1.29.7 by @@NyaaaWhatsUpDoc in #2850 [chore]: Bump github.com/KimMachineGun/automemlimit from 0.5.0 to 0.6.0 by @@dependabot in #2859 [chore] Update robots.txt by @@daenney in #2856 [chore] bump modernc.org/sqlite to v1.29.8 (with our concurrency workaround) by @@NyaaaWhatsUpDoc in #2855 [chore]: Bump github.com/miekg/dns from 1.1.58 to 1.1.59 by @@dependabot in #2861 [chore]: Bump codeberg.org/gruf/go-mutexes from 1.4.0 to 1.4.1 by @@dependabot in #2860 [chore] Refactor settings panel routing (and other fixes) by @@tsmethurst in #2864 [chore] Settings refactor 2: the re-refactoring-ing by @@tsmethurst in #2866 [chore] Upgrade our Go version to 1.22 by @@daenney in #2862 [chore] Bump go swagger by @@tsmethurst in #2871 [chore] Update setting testrig loglevel by @@daenney in #2870 [chore] Update the flags passed to goreleaser by @@daenney in #2869 [chore] update Docker container to use new go swagger hash by @@tsmethurst in #2872 [chore]: Bump go.opentelemetry.io/otel/sdk from 1.25.0 to 1.26.0 by @@dependabot in #2879 [chore]: Bump go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc from 1.25.0 to 1.26.0 by @@dependabot in #2878 [chore] Fix conflict in workers tests by @@tsmethurst in #2880 [chore]: Bump github.com/minio/minio-go/v7 from 7.0.69 to 7.0.70 by @@dependabot in #2877 [chore]: Bump github.com/tdewolff/minify/v2 from 2.20.19 to 2.20.20 by @@dependabot in #2875 [chore] include attemptno in httpclient logs by @@NyaaaWhatsUpDoc in #2887 [frontend] Do optimistic update when approving/rejecting/suspending account by @@tsmethurst in #2892 [chore]: Bump golang.org/x/image from 0.15.0 to 0.16.0 by @@dependabot in #2898 [chore]: Bump github.com/gin-contrib/gzip from 1.0.0 to 1.0.1 by @@dependabot in #2899 [chore]: Bump codeberg.org/gruf/go-structr from 0.7.0 to 0.8.0 by @@dependabot in #2902 [chore]: Bump golang.org/x/oauth2 from 0.19.0 to 0.20.0 by @@dependabot in #2900 [chore] bump modernc.org/sqlite v1.29.8 -> v1.29.9 (concurrency workaround) by @@NyaaaWhatsUpDoc in #2906 [chore]: Bump golang.org/x/net from 0.24.0 to 0.25.0 by @@dependabot in #2914 [chore]: Bump golang.org/x/crypto from 0.22.0 to 0.23.0 by @@dependabot in #2915 [chore]: Bump github.com/gin-contrib/sessions from 1.0.0 to 1.0.1 by @@dependabot in #2916 [chore]: Bump github.com/gin-contrib/cors from 1.7.1 to 1.7.2 by @@dependabot in #2912 [chore] dependabot updates by @@NyaaaWhatsUpDoc in #2922 [chore]: Bump github.com/tdewolff/minify/v2 from 2.20.24 to 2.20.25 by @@dependabot in #2923 [chore]: Bump github.com/jackc/pgx/v5 from 5.5.5 to 5.6.0 by @@dependabot in #2929 [chore]: Bump github.com/tdewolff/minify/v2 from 2.20.25 to 2.20.32 by @@dependabot in #2927 [chore] Fix report email link by @@tsmethurst in #2932 [chore] Small styling + link issues by @@tsmethurst in #2933 [chore] make wasm sqlite3 available to goreleaser via env var by @@tsmethurst in #2938 [chore/bugfix] Don't cache MovedTo account by @@tsmethurst in #2939 [chore] improved startup / shutdown by @@NyaaaWhatsUpDoc in #2925 [chore] Make worker run startup messages debug output by @@daenney in #2944 [chore] little startup tweaks by @@tsmethurst in #2941 [chore]: Bump github.com/spf13/viper from 1.18.2 to 1.19.0 by @@dependabot in #2954 Compile filter keyword regexps when touched through PutFilter or UpdateFilter by @@VyrCossont in #2951 [chore] Fiddle with CI tests; use wasmsqlite3 by @@tsmethurst in #2966 [chore] Use (created) instead of date for outgoing HTTP signatures by @@tsmethurst in #2969 [chore] Update WASM go-sqlite3 to v0.16.1 by @@daenney in #2976 [chore] Warn about email/password change when using OIDC by @@tsmethurst in #2975 [chore]: Bump github.com/minio/minio-go/v7 from 7.0.70 to 7.0.71 by @@dependabot in #2988 [chore]: Bump golang.org/x/net from 0.25.0 to 0.26.0 by @@dependabot in #2986 [chore]: Bump github.com/tdewolff/minify/v2 from 2.20.32 to 2.20.33 by @@dependabot in #2984 [chore]: Bump github.com/gorilla/websocket from 1.5.1 to 1.5.2 by @@dependabot in #2987 [chore]: Bump golang.org/x/image from 0.16.0 to 0.17.0 by @@dependabot in #2985 [chore] Roll back use of (created) pseudo-header pending #2991 by @@tsmethurst in #2992 [chore] Upgrade WASM SQLite to v0.16.2 by @@daenney in #2997 [chore] Bump braces from 3.0.2 to 3.0.3 in /web/source by @@dependabot in #2999 [chore] Don't render sign-up form when registrations closed by @@tsmethurst in #3001 [chore] Update move test by @@tsmethurst in #3005 [chore] Silence memlimit package by @@daenney in #3002 Docs [docs] Remove last references to RPi by @@daenney in #2885 [docs] Fix link in general configuration by @@wuhang2003 in #2946 [docs]: Document build tag for WASM SQLite by @@daenney in #2942 [docs] Add optional instructions for replicating SQLite for disaster recovery by @@martijndeb in #2981 [docs] Rework README a bit, import into docs by @@tsmethurst in #3006 [docs] Update roadmap by @@tsmethurst in #3011 @ text @d1 1 a1 1 @@comment $NetBSD$ d20 8 a27 7 share/examples/gotosocial/web/assets/default_avatars/GoToSocial_icon1.png share/examples/gotosocial/web/assets/default_avatars/GoToSocial_icon2.png share/examples/gotosocial/web/assets/default_avatars/GoToSocial_icon3.png share/examples/gotosocial/web/assets/default_avatars/GoToSocial_icon4.png share/examples/gotosocial/web/assets/default_avatars/GoToSocial_icon5.png share/examples/gotosocial/web/assets/default_avatars/GoToSocial_icon6.png share/examples/gotosocial/web/assets/default_header.png d42 8 d51 1 d58 1 d64 3 d68 2 d71 2 a99 2 share/examples/gotosocial/web/source/settings/components/fake-profile.tsx share/examples/gotosocial/web/source/settings/components/fake-toot.tsx d105 2 d142 1 d144 1 d151 1 d157 1 d161 1 a190 1 share/examples/gotosocial/web/source/settings/views/moderation/accounts/detail/util.tsx d202 1 a202 1 share/examples/gotosocial/web/source/settings/views/moderation/reports/overview.tsx d204 8 d214 6 a221 1 share/examples/gotosocial/web/source/settings/views/user/settings.tsx a227 1 share/examples/gotosocial/web/template/confirmed.tmpl @ 1.13 log @gotosocial: add webassets, fix runtime errors. Add required webassets, as reported by Joel Carnat . Partially based on a patch by Joel, with adjustments. Thanks! This could be build from the original source with yarn as well if we download node modules into the build environment. @ text @a75 26 share/examples/gotosocial/web/source/settings/admin/accounts/detail.jsx share/examples/gotosocial/web/source/settings/admin/accounts/index.jsx share/examples/gotosocial/web/source/settings/admin/actions/keys/expireremote.jsx share/examples/gotosocial/web/source/settings/admin/actions/keys/index.jsx share/examples/gotosocial/web/source/settings/admin/actions/media/cleanup.jsx share/examples/gotosocial/web/source/settings/admin/actions/media/index.jsx share/examples/gotosocial/web/source/settings/admin/domain-permissions/detail.tsx share/examples/gotosocial/web/source/settings/admin/domain-permissions/export-format-table.jsx share/examples/gotosocial/web/source/settings/admin/domain-permissions/form.tsx share/examples/gotosocial/web/source/settings/admin/domain-permissions/import-export.tsx share/examples/gotosocial/web/source/settings/admin/domain-permissions/index.tsx share/examples/gotosocial/web/source/settings/admin/domain-permissions/overview.tsx share/examples/gotosocial/web/source/settings/admin/domain-permissions/process.tsx share/examples/gotosocial/web/source/settings/admin/emoji/category-select.jsx share/examples/gotosocial/web/source/settings/admin/emoji/local/detail.js share/examples/gotosocial/web/source/settings/admin/emoji/local/index.js share/examples/gotosocial/web/source/settings/admin/emoji/local/new-emoji.js share/examples/gotosocial/web/source/settings/admin/emoji/local/overview.js share/examples/gotosocial/web/source/settings/admin/emoji/local/use-shortcode.js share/examples/gotosocial/web/source/settings/admin/emoji/remote/index.js share/examples/gotosocial/web/source/settings/admin/emoji/remote/parse-from-toot.js share/examples/gotosocial/web/source/settings/admin/reports/detail.jsx share/examples/gotosocial/web/source/settings/admin/reports/index.jsx share/examples/gotosocial/web/source/settings/admin/reports/username.jsx share/examples/gotosocial/web/source/settings/admin/settings/index.tsx share/examples/gotosocial/web/source/settings/admin/settings/rules.jsx d78 1 a78 1 share/examples/gotosocial/web/source/settings/components/back-button.jsx d80 4 a83 4 share/examples/gotosocial/web/source/settings/components/combo-box.jsx share/examples/gotosocial/web/source/settings/components/error.jsx share/examples/gotosocial/web/source/settings/components/fake-profile.jsx share/examples/gotosocial/web/source/settings/components/fake-toot.jsx d85 7 a91 5 share/examples/gotosocial/web/source/settings/components/form/mutation-button.jsx share/examples/gotosocial/web/source/settings/components/languages.jsx share/examples/gotosocial/web/source/settings/components/loading.jsx share/examples/gotosocial/web/source/settings/components/user-logout-card.jsx share/examples/gotosocial/web/source/settings/index.js d106 4 a109 3 share/examples/gotosocial/web/source/settings/lib/navigation/components.jsx share/examples/gotosocial/web/source/settings/lib/navigation/index.js share/examples/gotosocial/web/source/settings/lib/navigation/util.js d111 1 d117 1 a120 1 share/examples/gotosocial/web/source/settings/lib/query/index.js d125 1 d127 1 d129 1 d132 1 d135 1 d137 1 d143 44 a186 3 share/examples/gotosocial/web/source/settings/user/migration.tsx share/examples/gotosocial/web/source/settings/user/profile.tsx share/examples/gotosocial/web/source/settings/user/settings.tsx d192 1 d194 1 d198 1 d201 2 d208 1 d220 2 @ 1.12 log @gotosocial: update to version 0.15.0 Changelog: v0.15.0 Shagadelic Sloth Latest @@gotosocialorg gotosocialorg released this 11 Apr 09:14 ยท 5 commits to main since this release v0.15.0 15733cd Hey nerds! ๐ŸŒท ๐Ÿฆฅ ๐ŸŒธ First spring time release of GoToSocial, here's version 0.15.0 Shagadelic Sloth! Release highlights Incoming and outgoing Move Activities are now processed properly. This means you will automatically follow other people when they move their accounts, and you can also Move your own account from your GtS instance to somewhere else, or move your account from somewhere else to your GtS instance! User docs here: https://docs.gotosocial.org/en/latest/user_guide/settings/#migration Federation docs (for devs) here: https://docs.gotosocial.org/en/latest/federation/federating_with_gotosocial/#actor-migration-aliasing You can hide your followers and following collections now! When hidden, your followers/following count will no longer appear on your profile, and your collections of followers/following will be hidden from other servers (and other accounts on your server). User docs here: https://docs.gotosocial.org/en/latest/user_guide/settings/#hide-who-you-follow-are-followed-by V1 Filter support! Depending on the client you're using, you will now be able to add filters to hide certain phrases from your timeline. Preset user-selectable CSS themes are here! In the settings page, you can now choose a theme for your profile, which will change how it appears in the web view of your account! For now we added 5 different themes to choose from, screenshots below! User docs: https://docs.gotosocial.org/en/latest/user_guide/settings/#select-theme Docs for admins (how to add your own themes to your instance): https://docs.gotosocial.org/en/latest/admin/themes/ Blurple light: Light blue/purple/pink theme. Blurple dark: Dark blue/purple theme. Midnight trip: chunky purple and neon-green theme with magenta ombre. Soft: a light pink, blue, and white theme. Sunset: yellow / orange / aubergine theme with a sunset ombre. Migration notes Upgrading To upgrade to 0.15.0 from a previous release: Binary/tar Stop GoToSocial Untar the new release, including the web assets and html templates. Edit your config.yaml file as necessary (see below). Start GoToSocial Docker Stop GoToSocial. Pull the new docker container (superseriousbusiness/gotosocial:0.15.0 or superseriousbusiness/gotosocial:latest) Start GoToSocial. config.yaml No config file changes in this release compared to 0.14.2. Database Migrations โš ๏ธ This release contains several database migrations which will run the first time you start up this new version. Be sure not to interrupt this migration process. This will take anywhere between a couple seconds and ten minutes or more (on slower hardware). Please be patient! โš ๏ธ Detailed changelog Features / performance [feature] Filters v1 by @@VyrCossont in #2594 [feature/chore] Add Move database functions + cache by @@tsmethurst in #2647 [feature] Process incoming Move activity by @@tsmethurst in #2724 [feature] Process outgoing Move from clientAPI by @@tsmethurst in #2750 [feature] Add healthcheck endpoints /livez and /readyz by @@tsmethurst in #2783 [feature] User-selectable preset CSS themes for accounts by @@tsmethurst in #2777 [feature] Add enable command to mirror existing disable command; update docs by @@tsmethurst in #2792 [feature] Option to hide followers/following by @@tsmethurst in #2788 Bugfixes [chore/bugfix] Little DB fixes by @@tsmethurst in #2726 [bugfix] Fix Swagger spec and add test script by @@VyrCossont in #2698 [bugfix] add workaround for Xsqlite_interrupt() permanently breaking connection by @@NyaaaWhatsUpDoc in #2731 [bugfix] Don't error when populating MovedTo if account not found by @@tsmethurst in #2741 [bugfix] Fix whitespace move_id issue by @@tsmethurst in #2742 [bugfix] bump modernc.org/sqlite to fixed version (v1.28.0 -> v1.29.4) by @@NyaaaWhatsUpDoc in #2749 [bugfix] only check replyTo visibility during permission checks IF status is local by @@NyaaaWhatsUpDoc in #2757 [bugfix] Don't return 500 when searching for unpermitted status by @@tsmethurst in #2753 [bugfix] Parse links that contain non-ascii characters by @@tsmethurst in #2762 [bugfix] add all possible busy result codes to the sqlite errBusy catching check by @@NyaaaWhatsUpDoc in #2775 [bugfix] Mitigate empty public/local timeline query pages by @@tsmethurst in #2784 [bugfix] Serve correct URI for AP following collection by @@tsmethurst in #2787 [bugfix] httpclient not signing subsequent redirect requests by @@NyaaaWhatsUpDoc in #2798 [bugfix] set the host header within the signing transport by @@NyaaaWhatsUpDoc in #2799 [bugfix] Set domain for empty-domain Friendica accounts by @@tsmethurst in #2800 6db7d01 [bugfix] Ensure side effects for local -> local follows get processed (#2820) 85bc140 [bugfix] temporarily replace modernc.org/sqlite-v1.29.5 with gitlab.com/NyaaaWhatsUpDoc/sqlite-v1.29.5-concurrency-workaround (#2811) 83e7847 [bugfix] fix possible nil panic (#2809) 8ed1b81 [bugfix] Sort follows chronologically (#2801) 15ede4c [bugfix] improved authenticate post inbox error handling (#2803) Chores / version bumps [chore] Fix a Swagger warning that only manifests during Go client code generation by @@VyrCossont in #2729 [chore] Downgrade sqlite v1.29.2 -> v1.28.0 by @@tsmethurst in #2736 [chore] seperate snapshot from release in goreleaser by @@CDN18 in #2740 [chore]: Bump github.com/gin-contrib/cors from 1.5.0 to 1.7.0 by @@dependabot in #2745 [chore]: Bump github.com/jackc/pgx/v5 from 5.5.3 to 5.5.5 by @@dependabot in #2747 [chore]: Bump github.com/go-jose/go-jose/v3 from 3.0.1 to 3.0.3 by @@dependabot in #2733 [chore]: Bump github.com/minio/minio-go/v7 from 7.0.67 to 7.0.69 by @@dependabot in #2748 [chore] Update usage of OTEL libraries by @@daenney in #2725 [chore] Expose move endpoint again, small settings panel fixes by @@tsmethurst in #2752 [chore] Different error message for email validation from net/mail parsing on go 1.21.8 and above by @@blakesmith in #2760 [chore]: Bump github.com/technologize/otel-go-contrib from 1.1.0 to 1.1.1 by @@dependabot in #2765 [chore]: Bump golang.org/x/oauth2 from 0.17.0 to 0.18.0 by @@dependabot in #2766 Bump follow-redirects from 1.15.4 to 1.15.6 in /web/source by @@dependabot in #2763 [chore]: Bump github.com/tdewolff/minify/v2 from 2.20.18 to 2.20.19 by @@dependabot in #2767 [chore]: Bump modernc.org/sqlite from 1.29.4 to 1.29.5 by @@dependabot in #2768 [chore] Move local account settings to separate db table by @@tsmethurst in #2770 [chore]: Bump github.com/gin-contrib/gzip from 0.0.6 to 1.0.0 by @@dependabot in #2781 [chore]: Bump github.com/gin-contrib/cors from 1.7.0 to 1.7.1 by @@dependabot in #2778 [chore]: Bump github.com/coreos/go-oidc/v3 from 3.9.0 to 3.10.0 by @@dependabot in #2779 [chore]: Bump github.com/gin-contrib/sessions from 0.0.5 to 1.0.0 by @@dependabot in #2782 [chore/frontend] Adjust contrast, mute blurple a bit (meta update: blurple nerfed) by @@tsmethurst in #2785 Bump express from 4.18.2 to 4.19.2 in /web/source by @@dependabot in #2790 [chore] Vendor mkdocs fonts; update docs dependencies by @@tsmethurst in #2789 [chore] bump go structr cache version -> v0.6.0 by @@NyaaaWhatsUpDoc in #2773 [chore] Try to parse public key as both Actor + bare key by @@tsmethurst in #2710 15733cd [chore]: Bump github.com/yuin/goldmark from 1.7.0 to 1.7.1 (#2819) 4d16c3a [chore]: Bump golang.org/x/oauth2 from 0.18.0 to 0.19.0 (#2816) 236604b [chore] Log less output on failed test (#2804) Docs [docs/chore] Swagger fixes for filters by @@VyrCossont in #2730 [docs] Add note about privileged ports by @@tsmethurst in #2735 Swagger: add Link header to all endpoints that use it for paging by @@VyrCossont in #2751 [docs] Add database maintenance section; update info message on ANALYZE run (sqlite) by @@tsmethurst in #2756 Swagger: correct names and formats for several array params by @@VyrCossont in #2758 Swagger: add missing paging params to bookmarks list by @@VyrCossont in #2759 [docs] Add IPv6 example for rate limit exceptions by @@daenney in #2761 @ text @d27 13 d50 1 @ 1.11 log @gotosocial: update to version 0.14.0 Changelog: v0.14.0 Spoiled Sloth @@gotosocialorg gotosocialorg released this 06 Mar 09:41 ยท 5 commits to main since this release v0.14.0 7bc536d Look at that! This sloth is spoiled rotten! ๐Ÿฆฅ ๐Ÿ‘€ Here's GoToSocial version 0.14.0 Spoiled Sloth! Release highlights Account aliasing. You can now set the alsoKnownAs field on your account via the settings panel, to indicate other accounts you own. This doesn't do much now, but it's the first step towards the Move implementation for account migration coming in v0.15.0. We originally wanted to include Move in this release but it needs more testing so we pushed it back. Hang in there :) Much better thread sorting. Conversation threads on both the web view and client API use a new sorting mechanism which makes them way more readable. No longer will replies in a thread be scattered all over the place. Better HTTP signature support. We fixed a longstanding issue with including vs not including query parameters in signed GET requests. We now try (and accept) both methods of constructing signatures. Which leads to... Improved thread fetching. You'll see far fewer "orphaned" statuses in your timeline now, and you'll see more replies on statuses from other instances. Syntax highlighting for code blocks on the web UI. When you include a code block in your markdown now, and correctly indicate the language the code is written in, it will be syntax highlighted when rendered on your profile in the web UI. This requires javascript, but it's a progressive enhancement feature. Visitors to your profile with javascript turned off will just see the code block without syntax highlighting :) Improved "about this instance" page, with a link to the page in the nav bar. Previously the "about this instance" page was more or less hidden. We've now surfaced it better, so you can write all your terms and conditions and instance description stuff there. Relatedly.... Parse instance descriptions and terms and conditions as markdown. Previously it was very difficult to properly edit these fields, because you had to read + write HTML to do so. Now they're parsed as markdown. This means you can more easily include things like blockquotes, lists, etc. Big refactor of HTML templates + CSS. We did a serious rework of HTML templates to fix indentation. Previously if you did "view source" on a GoToSocial profile page, you'd see a mess of sloppily-indented HTML. With this refactor, the HTML is now nicely indented and much more readable. We also did an accessibility pass and tested our HTML with various screen readers to try to make the web view a bit less annoying to navigate. First pass at a basic spam filtering system. In light of spam waves happening on the fediverse recently we took a crack at implementing a filter to drop messages identified as spam. This is still in the experimental stage, but it's included in this release so you can try it out already. See the docs for details. Migration notes Upgrading To upgrade to 0.14.0 from a previous release: Binary/tar Stop GoToSocial Untar the new release, including the web assets and html templates. Edit your config.yaml file as necessary (see below). Start GoToSocial Docker Stop GoToSocial. Pull the new docker container (superseriousbusiness/gotosocial:0.14.0 or superseriousbusiness/gotosocial:latest) Start GoToSocial. config.yaml The configuration file has changed since the previous release. You can see a diff of the config file here: v0.13.0...v0.14.0#diff-c071e03510b2c57e193a44503fd9528a785f0f411497cc75841a9f8d0b1ac622 Database Migrations โš ๏ธ This release contains several database migrations which will run the first time you start up this new version. Be sure not to interrupt this migration process. This will take anywhere between a couple seconds and ten minutes (on slower hardware). Please be patient! โš ๏ธ Instance description, short description, and terms Because we changed the way instance description, short description, and terms are parsed and stored, you will need to re-enter these in the admin settings panel. After you've updated to this version, you can just copy-paste your existing descriptions and ToC from the index and about web pages of your instance, and paste them in to the appropriate fields in the settings panel. (Custom) CSS and HTML The big refactor of CSS and HTML means that custom CSS from 0.13.x versions of GoToSocial will likely not work as expected on versions >= 0.14.0. The HTML structure changed a bunch, and some of the class names and whatnot have changed as well. Sorry about that! But it needed to be done. For an example of custom css using the new class names and HTML structure, see the following: /* Theme colors */ :root { --acid-green: rgb(63, 255, 0); --magenta: rgb(153, 50, 204); /* Override */ --orange2: var(--acid-green); } html, body { /* Funky scroll bar */ scrollbar-color: var(--acid-green) var(--gray1); } /* Instance display name */ .page-header { grid-column: 2; align-self: start; margin: 1rem 0 1rem 0; background-color: var(--gray1); border: 0.25rem solid var(--magenta); border-radius: var(--br); } /* Header card */ .profile .profile-header { background-color: var(--gray1); border: 0.25rem solid var(--magenta); } /* About + Pinned posts headers */ .profile .col-header { background: var(--gray1); border: 0.25rem solid var(--magenta); } .profile .about-user .col-header { border-bottom: none; margin-bottom: 0; } /* Change about sections */ .profile .about-user .fields, .profile .about-user .bio, .profile .about-user .accountstats { background: var(--gray1); border-left: 0.25rem solid var(--magenta); border-right: 0.25rem solid var(--magenta); } /* Fiddle around with borders on about sections */ .profile .about-user .fields .field:first-child { border-top: 0.25rem dashed var(--magenta); } .profile .about-user .fields .field { border-bottom: 0.25rem dashed var(--magenta); } .profile .about-user .accountstats { border-top: 0.25rem dashed var(--magenta); border-bottom: 0.25rem solid var(--magenta); } /* Statuses + threads */ /* Thread column header */ .thread .col-header { background: var(--gray1); border: 0.25rem solid var(--magenta); } /* Main status body */ .status, .status.expanded { background: var(--gray1); border: 0.25rem solid var(--magenta); } /* Code snippets */ .status .text .content pre, .status .text .content code { background: black; color: var(--white2); } /* Block quotes */ .status .text .content blockquote { background-color: black; } /* Media wrapper for attachments */ .status .media .media-wrapper { background: var(--bg-nearly-opaque); } .status .media .media-wrapper details .unknown-attachment .placeholder { border: 0.2rem dashed var(--magenta); } /* Polls */ .status .text .poll { background-color: black; border: 0.25rem solid var(--magenta); } .status .text .poll .poll-info { background-color: black; } /* Status info bars */ .status .status-info, .status.expanded .status-info { background: black; } /* Back + next links */ .backnextlinks { background: var(--gray1); padding: 0.5rem; border: 0.25rem solid var(--magenta); border-radius: var(--br); } .page-footer { margin-top: 2rem; background-color: var(--gray1); border-top: 0.25rem solid var(--magenta); } Detailed changelog Changelog for 0.13.0 vs 0.14.0. Some changes mentioned below may have already been included in 0.13.x releases. Features / Performance [performance] simpler throttling logic by @@NyaaaWhatsUpDoc in #2407 [feature] Run ANALYZE after migrations on SQLite by @@daenney in #2428 [feature] Push status edit messages into open streams by @@Sentynel in #2418 [feature] request blocking by http headers by @@NyaaaWhatsUpDoc in #2409 [feature] Parse instance descriptors as markdown, show T&C on /about by @@tsmethurst in #2481 [feature] Allow webp emoji uploads / derefs by @@tsmethurst in #2484 [feature] Log pubKeyID for incoming http-signed requests by @@tsmethurst in #2501 [feature] Account alias / move API + db models by @@tsmethurst in #2518 [feature] Move + alias account via settings panel by @@tsmethurst in #2519 [performance] overhaul struct (+ result) caching library for simplicity, performance and multiple-result lookups by @@NyaaaWhatsUpDoc in #2535 [feature] Allow "charset=utf8" in incoming AP POST requests by @@tsmethurst in #2564 [feature] Ratelimit + serve emoji images on separate router group by @@tsmethurst in #2548 [performance] cache library performance enhancements (updates go-structr => v0.2.0) by @@NyaaaWhatsUpDoc in #2575 Improve context descendant sorting by @@VyrCossont in #2579 [feature] Try HTTP signature validation with and without query params for incoming requests by @@tsmethurst in #2591 [feature] serdes for moved/also_known_as by @@tsmethurst in #2600 [feature/performance] sqlite pragma optimize on close by @@NyaaaWhatsUpDoc in #2596 [performance] temporarily cache account status counts to reduce no. account counts by @@NyaaaWhatsUpDoc in #2620 [feature] Add metrics for instance user count, statuses count and federating instances count by @@Tsuribori in #2592 feat: add Mastodon-compatible HTTP signature fallback by @@milas in #2659 [feature] Add requested_by to relationship model by @@tsmethurst in #2672 [feature] Add "what is this" section to index template by @@tsmethurst in #2680 [feature] Add experimental instance-federation-spam-filter option by @@tsmethurst in #2685 [feature] Block Amazonbot by @@daenney in #2692 [feature/oidc] Add support for very basic RBAC by @@9p4 in #2642 [feature] add script to test import / export cycle of a gotosocial instance by @@NyaaaWhatsUpDoc in #2693 Bugfixes [bugfix] fix poll total vote double count by @@Sentynel in #2464 [bugfix] ๐Ÿ˜‡ by @@NyaaaWhatsUpDoc in #2476 [bugfix] increases sleep time before check in throttle test, to give more leeway by @@NyaaaWhatsUpDoc in #2482 [bugfix] fix check for closed poll to account for non-zero closed time by @@NyaaaWhatsUpDoc in #2486 [bugfix] Outdent placeholder from