This PR bumps the version of the HTML extension to v0.3.2.
Release Notes:
- N/A
Co-authored-by: zed-zippy[bot] <234243425+zed-zippy[bot]@users.noreply.github.com>
Co-authored-by: Finn Evers finn@zed.dev
release: v2.0.6
This PR bumps the version of the HTML extension to v0.3.2.
Release Notes:
Co-authored-by: zed-zippy[bot] <234243425+zed-zippy[bot]@users.noreply.github.com>
Co-authored-by: Finn Evers finn@zed.dev
This PR bumps the version of the GLSL extension to v0.2.5.
Release Notes:
Co-authored-by: zed-zippy[bot] <234243425+zed-zippy[bot]@users.noreply.github.com>
Co-authored-by: Finn Evers finn@zed.dev
This PR bumps the version of the Proto extension to v0.3.4.
Release Notes:
Co-authored-by: zed-zippy[bot] <234243425+zed-zippy[bot]@users.noreply.github.com>
Co-authored-by: Finn Evers finn@zed.dev
Builds are unsigned (no Apple Developer ID). After dragging MarkText into Applications, clear the quarantine flag once:
xattr -cr /Applications/marktext.app
All artifacts are listed with their SHA-256 in SHA256SUMS.txt. Verify with:
sha256sum -c SHA256SUMS.txt --ignore-missing
Full Changelog: v0.20.0-rc.3...v0.20.0-rc.4
The Stable channel has been updated to 154.0.8037.44/.45 for Windows. as part of our early stable release to a small percentage of users. A full list of changes in this build is available in the log.
You can find more details about early Stable releases here.
Interested in switching release channels? Β Find out how here. If you find a new issue, please let us know by filing a bug. The community help forum is also a great place to reach out for help or learn about common issues.
Srinivas Sista
Google Chrome
Migrations finished. New migration version schema: 1125 in PeerTube startup logs):
cd /var/www/peertube/peertube-latest && sudo -u peertube NODE_CONFIG_DIR=/var/www/peertube/config NODE_ENV=production node dist/scripts/migrations/peertube-8.3.jscd /var/www/peertube-docker && docker compose exec -u peertube peertube node dist/scripts/migrations/peertube-8.3.jsGET /api/v1/videos/{id}/comment-threads/{threadId} no longer returns the full comment tree
totalChildren field: compare it against children.length to know if replies were cut offGET /api/v1/videos/{id}/comments/{commentId}/repliesfilter:api.video-thread-comments.list.result now sees only the truncated tree. Two new hooks, filter:api.video-comment-replies.list.params / .result, cover the new replies endpointcd /var/www/peertube/peertube-latest && sudo -H -u peertube curl -fsSL -o dist/scripts/upgrade.sh https://raw.githubusercontent.com/Chocobozzz/PeerTube/13c16ec0e80a16f3d98b6d0e2c2942c1c22513dc/server/scripts/upgrade.sh and then run the upgrade script as usualnosniff X-Content-Type-Options HTTP response headerContent-Disposition header to prevent XSS injectionsconfig/config-schema.jsonThis section is not exhaustive
redis.socket to provide the redis socket pathuser.allow_cross_provider_auth configuration to support multiple auth plugins for the same PeerTube user #7655log.tag_requestsfilter:api.video-comment-replies.list.params and filter:api.video-comment-replies.list.result for the new /api/v1/videos/{id}/comments/{commentId}/replies comment endpointfilter:api.video-watch.video-comment-replies.list.params and filter:api.video-watch.video-comment-replies.list.result when loading more replies of a commentpeertubeHelpers.email.createJob({ ... }) to send an emailpeertubeHelpers.videos.updateVideo({ ... }) to update video metadatapeertubeHelpers.videos.withFile({ ... }) to fetch a video fileregisterCommentAutoTagger: (options: RegisterCommentAutoTaggerOptions) => voidregisterVideoAutoTagger: (options: RegisterVideoAutoTaggerOptions) => voidunregisterCommentAutoTagger: (options: RegisterCommentAutoTaggerOptions) => voidunregisterVideoAutoTagger: (options: RegisterVideoAutoTaggerOptions) => voidexternalId when returning the user from an auth plugin, so it no longer needs to rely on the user's email to map the auth provider user to a PeerTube userlanguage when returning the user from an auth pluginreq.cookies in the onLogout hook of the registerExternalAuth plugin helperblocklist.public_log.enabled configuration) so other admins can subscribe to itlastmod field in sitemap entries #7738host-meta well-known endpoint for remote subscriptions... suffix to actions that lead to another step502 HTTP statusoriginallyPublishedAt for videos
Migrations finished. New migration version schema: 1125 in PeerTube startup logs):
cd /var/www/peertube/peertube-latest && sudo -u peertube NODE_CONFIG_DIR=/var/www/peertube/config NODE_ENV=production node dist/scripts/migrations/peertube-8.3.jscd /var/www/peertube-docker && docker compose exec -u peertube peertube node dist/scripts/migrations/peertube-8.3.jsGET /api/v1/videos/{id}/comment-threads/{threadId} no longer returns the full comment tree
totalChildren field: compare it against children.length to know if replies were cut offGET /api/v1/videos/{id}/comments/{commentId}/repliesfilter:api.video-thread-comments.list.result now sees only the truncated tree. Two new hooks, filter:api.video-comment-replies.list.params / .result, cover the new replies endpointnosniff X-Content-Type-Options HTTP response headerContent-Disposition header to prevent XSS injectionsconfig/config-schema.jsonThis section is not exhaustive
redis.socket to provide the redis socket pathuser.allow_cross_provider_auth configuration to support multiple auth plugins for the same PeerTube user #7655log.tag_requestsfilter:api.video-comment-replies.list.params and filter:api.video-comment-replies.list.result for the new /api/v1/videos/{id}/comments/{commentId}/replies comment endpointfilter:api.video-watch.video-comment-replies.list.params and filter:api.video-watch.video-comment-replies.list.result when loading more replies of a commentpeertubeHelpers.email.createJob({ ... }) to send an emailpeertubeHelpers.videos.updateVideo({ ... }) to update video metadatapeertubeHelpers.videos.withFile({ ... }) to fetch a video fileregisterCommentAutoTagger: (options: RegisterCommentAutoTaggerOptions) => voidregisterVideoAutoTagger: (options: RegisterVideoAutoTaggerOptions) => voidunregisterCommentAutoTagger: (options: RegisterCommentAutoTaggerOptions) => voidunregisterVideoAutoTagger: (options: RegisterVideoAutoTaggerOptions) => voidexternalId when returning the user from an auth plugin, so it no longer needs to rely on the user's email to map the auth provider user to a PeerTube userlanguage when returning the user from an auth pluginreq.cookies in the onLogout hook of the registerExternalAuth plugin helperblocklist.public_log.enabled configuration) so other admins can subscribe to itlastmod field in sitemap entries #7738host-meta well-known endpoint for remote subscriptions... suffix to actions that lead to another step502 HTTP statusoriginallyPublishedAt for videos
This release addresses vulnerabilities ranging from medium to high severity affecting PeerTube <= 8.2.3. Security hardening is also included.
withStats query parameter to other users/anonymous
count: 0 in SQL requests
We strongly recommend all administrators upgrade immediately.
This release addresses vulnerabilities ranging from medium to high severity affecting PeerTube <= 8.2.1. Security hardening is also included.
Update activity GHSA-g9p4-f7h8-hc86loadByIdOrUUID and loadByIdOrUUIDWithFiles plugin helpers
toot:discoverable support for actorsERR_PNPM_UNEXPECTED_STORE crashnpm run create-move-video-storage-job
Blog post: https://joinpeertube.org/news/release-8.2
Please read the v8.1.8 IMPORTANT NOTES, which explain that the vulnerability fixed in v8.1.6 has been actively exploited
/api/v1/accounts API endpoint is deprecated for privacy reasons and will be behind an admin/moderator auth access in PeerTube v9, planned for the end of 2027privacy tag for peertube_videos_total OTEL metricThis section is not exhaustive
download.max_total_bytes_per_second and download.max_bytes_per_ip_per_second configuration keys to throttle video downloads.yt-dlp #7510.oauth2.token_lifetime.refresh_token to 4 weeks (instead of 2 weeks)filter:api.user.signup.requires-approval.resultfilter:notifier.notification.enabled.resultstorageManager.deleteData(key: string)g p hotkeys to go to My playlists page/about endpoint caching in the client to reduce unnecessary API callsView and Download activities in parallelView using parallel broadcastindexable field for actorsFollow ActivityPub requests to remote instances.m4b audio file supportlight-beige or dark-brown, to prevent accessibility issues
β οΈ Follow v8.1.0 IMPORTANT NOTES if you upgrade from PeerTube <= v8.0.2 β οΈ
We have learned that the SQL injection vulnerability fixed in v8.1.6 has been exploited at scale since at least May 18, 2026 and so before the v8.1.6 release.
According to our investigation, the attacker exploited this SQL injection to generate a token for the root user and install the peertube-plugin-google-analytics-js plugin. This plugin imports a client script from hxxps://www.googie-anaiytics.com/jquery.ui.js that currently only logs a line in the web browser.
Actions taken by this release:
peertube-plugin-google-analytics-js in v8.1.8user.disable_root_auth config key to disable root token usageActions taken by Framasoft:
googie-anaiytics.com to the registrarActions admins must take:
If you cannot upgrade to v8.1.8:
20.240.202.159 URL:SELECT * FROM "actorFollow" WHERE "url" LIKE '%20.240.202.159%'DELETE FROM "actorFollow" WHERE "id" = ...' character in inboxUrl:SELECT * FROM "actor" WHERE "inboxUrl" LIKE '%''%'DELETE FROM "actor" WHERE "id" = ...UPDATE "oAuthToken" SET "accessTokenExpiresAt" = NOW(), "refreshTokenExpiresAt" = NOW() WHERE "accessTokenExpiresAt" > NOW() OR "refreshTokenExpiresAt" > NOW()peertube-plugin-google-analytics-js from instance pluginsproduction.yaml by setting federation.enabled to false
release: v2.0.5
A few weeks ago, we shared a blog from our research trip to Iceland, where the map designers who took part in the journey shared their impressions. Today, we're excited to bring you a big episode of SCS On The Road, where you can experience the research trip in more detail, complete with stunning shots of Iceland's breathtaking landscapes and even some comparisons with the in-game map!
Part of our marketing team set out on this journey alongside our map designers to document the unforgettable trip. Iceland is undoubtedly one of the most beautiful countries in the world, and during their time there, the map team had the chance to visit some truly stunning locations that they are now recreating for this upcoming map expansion.
To bring these places to life in our game and do them justice, the team needed to gather plenty of visual references, helping them recreate the landscapes and landmarks as accurately and faithfully to reality as possible.Β
In this video, our map designers also shared some interesting insights into the map creation process, along with information about some of the places we are bringing directly into the map - keep an eye out for an upcoming hidden road, crossing a narrow bridge on its way to Γingvellir National Park!
We would also like to send a huge thank you to Volvo Trucks and SkΓΊli, a real truck driver from Iceland, who made it possible for the map designers to take a ride in the 780-horsepower Volvo FH16 XXL and experience Iceland from a completely different perspective - from the cabin of a truck. So, without further ado, let's watch this episode together!
Stay tuned for more, because on this trip we also collaborated with Volvo to shoot one of their videos. While we cannot reveal what it was about right now, you can look forward to a behind-the-scenes SCS On The Road episode from that as well!
Don't forget to add the Iceland DLC to your Steam wishlistΒ if you want to explore the beautiful places you saw in this video!
Also, remember to follow us onΒ X/Twitter, Instagram, Facebook, Bluesky, and TikTokΒ to receive updates on upcoming Euro Truck Simulator 2 projects and future SCS On The Road episodes. Or subscribe to our newsletter to stay informed. Keep on trucking!
This week's release includes an optional cursor movement animation, a setting to open Markdown files directly in the rendered preview, Emmet wrap with abbreviation support, and configurable window title formatting.
on_new_window setting to choose whether new windows show the Launchpad (launchpad, the default) or an empty untitled buffer (empty_tab). (#63522; thanks albertbogusz)ctrl-tab jumping to random documents when the mouse moved during a quick tab switch. (#52671; thanks OmChillure)editor: rotate selections forward and editor: rotate selections backward when using cursors on nonconsecutive lines. (#63937; thanks timvermeulen)Learn about the Zed Guild.
Date column. (#62679; thanks dem1tris)editor: wrap with abbreviation). (#63383)constexpr keyword. (#63833; thanks Jesse-Cooper)window_title_format and window_title_separator settings. (#54379; thanks jknlsn)
${projectName}, ${fileName}, ${filePath}, ${relativePath}, ${branch}, ${remoteName}, ${remoteHost}, ${appName}, and ${separator}.window.title and window.titleSeparator are set.markdown_preview.open_markdown_files_in_preview setting to open Markdown files directly in the rendered preview. (#63462; thanks joshkent94)cursor_animation.enabled to true. (#63195; thanks tiny-paris)project_panel.title_tooltip_delay setting.dev: Debug Filesystem Watching to inspect local watcher events, watch roots, and scan exclusions, and export diagnostic captures as JSON. (#64186)command_palette.use_command_history setting to disable history-based command palette ranking without erasing history. (#64181)shift-backspace or the remove button. (#64181)EMFILE (Too many open files) errors in large workspaces. (#64188)settings.json. (#62949; thanks interkelstar)cmd-alt-f (macOS) and ctrl-alt-f (Linux/Windows), being shadowed by the file finder. (#63376; thanks dcdeniz)agent: manage skills appearing in the command palette when AI was disabled. (#63598; thanks kai-xlr)git_gutter_width was set to a small custom pixel value. (#63434; thanks somtri)ask_user options being truncated instead of wrapping in the Agent Panel. (#63656; thanks cmdr-chara)preview_tabs.enable_preview_from_project_panel setting being ignored when opening files from the Project Panel with the keyboard. (#63758; thanks cmdr-chara)o not continuing the comment prefix inside C-style multiline comments. (#63751; thanks IbrahimKhan12)mailto: URI handling when using Help β Email Us.... (#64090)cmd-c (macOS) and ctrl-c (Linux/Windows) instead of Markdown. Copying as Markdown moved to the context menu, and the markdown::CopyAsMarkdown action can still be bound. (#63884)markdown_preview key as font_size, font_family and code_font_family. Existing settings are migrated automatically. (#63462; thanks joshkent94)
This week's release includes faster rendering in syntax-highlighted files and Markdown code blocks, a language server command picker, and a setting that keeps your system awake during long-running agent turns.
Learn about the Zed Guild.
agent.prevent_idle_sleep setting, enabled by default, to prevent idle system sleep while agent threads are running. (#53130; thanks cppcoffee)agent.threads_sidebar_default_width setting to configure the width of the Threads Sidebar. (#62883; thanks porada)agent: rename selected thread action for renaming the active Terminal Thread from the Agent Panel. (#63660; thanks mauriciord)Cut, Copy, and Paste context menu actions to the commit message editor. (#64142; thanks hooch)showDocument requests. (#63607)comment_empty_lines parameter to the editor::ToggleComments keybinding action for multiline selections. Set it to true to comment blank lines or false to skip them; Zed's default keymap now uses true, while the VS Code keymap uses false. (#63961; thanks UdeshyaDhungana)editor.code_lens.foreground for customizing CodeLens text independently. (#64084; thanks giorgiopogliani)"..." in read_only_files so project settings can extend inherited read-only patterns. (#64222; thanks porada)menu (Linux and Windows) and shift-f10 (all platforms) shortcuts to open the context menu for the selected Project Panel entry. (#46744; thanks CCXLV)shift-backspace, and added the command_palette.use_command_history setting to disable history-based ranking. (#64181)terminal.background color. (#64163; thanks chrisdrackett)
Full Changelog: v2.5.0-stable...v2.5.1-stable

We've been heads-down on this for months, and it's the change we're most excited to put in your hands: the redesigned Media Library is now the default for everyone in version 5.54.0.
This isn't a fresh coat of paint. We rebuilt the Media Library entirely around how people actually work with assets:
π Read the full documentation
Not ready for the big change yet? You're feeling nostalgic and need the old one back?
We know upgrades land in the middle of real work. If you'd rather stay on the previous interface for now, you can add this to config/features:
module.exports = () => ({
useLegacyMediaLibrary: true,
});
Full details in Restoring the previous Media Library in the docs.
Huge thanks to everyone who tested the beta and sent feedback. Can't wait to hear what you think π
Full Changelog: v0.8.4...v0.8.5
release: v2.0.4