❌

Lees weergave

v5.58.0

5.58.0 (2026-10-14)

πŸš€ New feature

  • admin: add License details and Support debug dump (#27034)
  • admin: record failed admin logins and sso auto-registration in audit logs (#27930)

πŸ”₯ Bug fix

  • removing firefox from the e2e test suite (3af89ee777)
  • cleaning up firefox inclusion in e2e tests (8580c0dbe1)
  • admin: render reset password strength feedback (#27741)
  • admin: show unset boolean fields as neither true nor false (#28014)
  • content-manager: relation fields share cached options across component instances (#27732)
  • content-manager: relation fields hide available relations after a selection or a failed request (#28006)
  • content-type-builder: make field conditions follow attribute renames (#27953)
  • core: document-service query transform mutates the caller's fields array (#27948)
  • core: treat only all-digit relation shorthand strings as numeric ids (#27892)
  • deps: bump the pinned axios and handlebars past their advisories (#28008)
  • e2e: webkit jobs fail in global setup without chromium (65067fc0c8)
  • upload: cancel does not abort in-flight uploads and asset edits (#27896)

πŸ“š Documentation Changes

  • contributor-docs: modernize the contributor docs site (#27879)
  • e2e: install chromium and webkit for local e2e (1bfad16822)
  • upload: fix the stale JSDoc param on signEntityMedia (#27720)

βš™οΈ Chore

  • merge back release 5.57.0 (#27970)
  • deps: upgrade MCP SDK to 2.3.1 (#27996)
  • deps: bump ip-address from 10.4.0 to 10.7.3 (#27904)
  • deps: bump piscina from 4.9.3 to 4.9.4 (#27905)
  • deps: bump http-cache-semantics from 4.1.1 to 4.3.0 (#27918)
  • deps: bump @fastify/busboy from 2.0.0 to 2.1.1 (#27919)
  • deps: bump shell-quote from 1.10.0 to 1.12.0 (#27957)
  • deps: bump axios from 1.19.0 to 1.20.0 (#27883)
  • deps: bump proxy-addr from 2.0.7 to 2.0.8 (#27958)
  • deps: bump dompurify from 3.4.13 to 3.4.16 (#27903)
  • deps: bump source-map-js from 1.2.1 to 1.2.2 (#27959)
  • deps: bump sharp from 0.35.4 to 0.35.5 (#27954)
  • generators: migrate unit tests from jest to vitest (#27221)

❀️ Thank You

  •  

v1.9.0

Important Release Notes:

#2521 v1.9.0 - Object Lock default-retention migration

Changelog

  • acc14a9 change cors check order ; test
  • 783381a chore(deps): bump actions/download-artifact from 6 to 8
  • e836eb7 chore(deps): bump actions/upload-artifact from 6 to 7
  • 3742fa6 chore(deps): bump github/codeql-action from 4.37.9 to 4.38.0
  • 8162344 chore(deps): bump github/codeql-action from 4.38.0 to 4.38.1
  • a37aead chore(deps): bump github/codeql-action from 4.38.1 to 4.38.2
  • 3daad06 chore(deps): bump the dev-dependencies group with 11 updates
  • 0e61bd6 chore(deps): bump the dev-dependencies group with 21 updates
  • 3798f8f chore(deps): bump the dev-dependencies group with 23 updates
  • 57c256d chore(deps): bump the dev-dependencies group with 29 updates
  • fd3864d cuobjclient: select GID index 0 on InfiniBand ports in the host client
  • ea44925 docs(netutil): correct the comment on handing sniffed bytes to the handshake
  • 658c379 feat: add OIDC endpoint relaxations for private/isolated networks
  • 0c79ae7 feat: add directio option for scoutfs backend
  • f997770 feat: add helm chart hooks for SPIRE support
  • 3979267 feat: add opt-in --fsync to flush new objects before acknowledging them
  • 1c1272c feat: add per-provider OIDC discovery URL override
  • 23d8384 feat: add s3:if-match and s3:if-none-match policy condition keys
  • 3b5c74a feat: add storage class to put object flows input
  • 13b6bb0 feat: add utils command to convert preexisting posix datasets
  • 23317c7 feat: add versioning support for directory objects in posix
  • 7e9f556 feat: add webui concurrent uploads with progress tracking
  • 966a6a8 feat: admin API path prefix, Helm WebUI prefixes and separate IAM storage
  • e448a8a feat: expose POSIX I/O buffer size to scoutfs options
  • c354e1a feat: validate SSE-C headers and reject SSE-C in posix and azure
  • 25f9790 fix(s3api): strip aws-chunked only for streaming uploads
  • daa25ed fix: accept upload-id-marker together with key-marker in ListMultipartUploads
  • 3610edd fix: add explicit RDMA build constraints
  • 241571a fix: align signing region mismatch errors with s3 regional endpoints
  • a7f1336 fix: allow vgwrdma explicit RC GID selection
  • b939fc8 fix: answer plaintext HTTP sent to a TLS listener with a 400
  • d313772 fix: apply bucket CORS right before auth middleware
  • 0667514 fix: authorize browser-based POST object uploads against the object ARN
  • 834ce25 fix: authorize multi-action requests per action across bucket and identity policies
  • 11a517c fix: avoid nil-pointer panic in mtime
  • 00fa54d fix: clear stale delete-marker metadata on reupload
  • c366966 fix: close connections with unread chunked bodies
  • 41783bd fix: combine bucket policy with ACL so a policy no longer locks the owner out
  • 592e91b fix: compute IsTruncated from the absolute index in ListMultipartUploads
  • 293d9f5 fix: deprecations in JWK and IPA RSA handling
  • 070b030 fix: drop upload-id-marker without key-marker in ListMultipartUploads
  • 24f6273 fix: echo only the request continuation token in ListObjectsV2
  • e8f6be5 fix: echo the full Authorization header in Unsupported Authorization Type errors
  • 08c0904 fix: enforce destination If-Match/If-None-Match on CopyObject
  • 1b9fedb fix: enforce object lock on browser-based POST object uploads
  • e1d7290 fix: handle the null version id correctly in posix versioning
  • 51c2873 fix: harden RC device initialization
  • 3db22f3 fix: hide webui user management when server in single-user mode
  • d7895e3 fix: honor the per-object ETag and Size conditions in DeleteObjects
  • 027a36d fix: include the empty TagKey in InvalidTag errors and match S3 tag validation
  • 752da31 fix: keep O_DIRECT active for object uploads and reads
  • bb59020 fix: keep the last modified time of promoted object versions in posix
  • 7093e91 fix: keep the object on DeleteObject with a versionId in a never-versioned bucket
  • 4826502 fix: list only the objects not deleted in DeleteObjects quiet mode
  • 3de8228 fix: make ListMultipartUploads ordering deterministic and stabilize test timing
  • 9c363b2 fix: make conditional publish lock modes explicit
  • 859f81f fix: map azure AuthorizationPermissionMismatch to AccessDenied
  • bca801b fix: match S3 for conditional deletes of missing keys, delete markers and versions
  • 888fd5c fix: match S3's Content-Encoding error details for aws-chunked with UNSIGNED-PAYLOAD
  • 0ab0db4 fix: object verson mtime
  • 6518246 fix: omit ObjectLockConfiguration Rule when there is no default retention
  • cdbebb0 fix: place the null version by its recorded position in posix versioning
  • ee25c95 fix: port the cuObjServer wrapper to libcuobjserver 2.0.0
  • f21434c fix: prevent path traversal via multipart upload IDs and DeleteObjects keys
  • 84e8b0d fix: reject DeleteObjects requests with more than 1000 keys
  • 6c6b14f fix: reject ListMultipartUploads requests that also carry uploadId
  • ee46df2 fix: reject a ListBuckets bucket-region other than the gateway region
  • d03ac3c fix: reject a PutObject whose body ends before Content-Length
  • aed4617 fix: reject an empty start-after and continuation-token in ListObjects (V1)
  • 1e0d7b2 fix: reject empty versionId query parameter in object actions
  • 44dc2e7 fix: reject the start-after query in ListObjects (V1)
  • 2ebe5be fix: reload standalone IAM and private-channel mTLS certs on SIGHUP
  • 9c98084 fix: remove legacy rdma header descriptors
  • 03a6e82 fix: replace fixed sleep with readiness polling in azurite CI
  • 20b3334 fix: report the delete time as the last modified time of delete markers in posix
  • 95a6da8 fix: report the last upload in ListMultipartUploads next markers on a single page
  • a014c7c fix: report the upload, part and ETag in InvalidPart for a malformed part ETag
  • aa1e82b fix: require s3:PutObjectTagging for tagged browser-based POST object uploads
  • 2a86b86 fix: require an integrity check for uploads with Object Lock parameters and authorize every action of anonymous requests
  • d68efb6 fix: restore IPA KRA compatibility and fix JWK parse panic
  • 2d087f9 fix: return AccessDenied for filesystem permission errors on posix writes
  • c99f9ba fix: return InvalidAccessKeyId for unknown access keys in single, Vault and IPA IAM
  • 915fc7a fix: return InvalidArgument for an empty website configuration
  • 5d5ee06 fix: return InvalidURI for a malformed escape in the request path
  • 63922ed fix: return MalformedXML for a DeleteObjects request without objects
  • 1a68d10 fix: return Marker when the request omits it
  • c02173d fix: return NextMarker in ListObjects only when a delimiter is set
  • a58e125 fix: return BucketAlreadyExists for existing dirs without acl meta attr
  • 4432f2d fix: scope CompleteMultipartUpload retries to the completed upload
  • 7c6fcad fix: set the CreateBucket location constraint from the S3 backend region
  • dc0265b fix: snapshot the replaced object before storing metadata in posix CompleteMultipartUpload
  • c339f39 fix: staticcheck on cuObject stubs
  • 4887633 fix: stop object annotation, rename and torrent requests from reaching plain object handlers
  • d204d2e fix: stop posix copying data from a delete marker
  • bd6cfe6 fix: stop posix mixing up keys that differ only by a trailing slash
  • 729ced9 fix: stop posix publish lock serializing the same key across buckets
  • ba02c76 fix: stop posix rewriting the current version on a copy to itself
  • 5b13559 fix: stop sidecar attributes leaking into new and promoted object versions
  • bbad4b5 fix: store bucket default retention on each object at write time and support Object Lock fields in browser POST
  • d21828e fix: store posix object keys with Windows-invalid characters under encoded names on Windows
  • 370d909 fix: strip aws-chunked from stored Content-Encoding
  • bbe398a fix: strip aws-chunked when the request declares no payload type
  • d383e1f fix: track how the request body ended before closing the connection
  • cc48b75 fix: treat root-level non-directory entries as non-existing buckets in posix
  • e0d98d0 fix: unblock govulncheck and staticcheck CI after Go 1.27.2 release
  • 5847f04 fix: update the example systemd configs with latest options
  • 20a5778 fix: use content-legnth for PutObject and UploadPart allocation sizes
  • aaf7321 fix: validate and apply the ListBuckets bucket-region query
  • 7ae119d posix: add AbsolutePaths option for embedding without chdir
  • ae2a3a6 rdma: acquire session admission credit atomically
  • 50b098c rdma: add --rc-device to pick the RC data plane's verbs device by name
  • d782e62 rdma: add a log callback ABI to the RC data plane
  • c07f75a rdma: add a point-in-time session snapshot to the RC C ABI
  • 138504d rdma: add terminal notification callback to the RC server ABI
  • 368dae0 rdma: address the RC peer by LID on InfiniBand link layers
  • 96be4d1 rdma: bound publication backpressure and close the reservation window
  • 51e63e2 rdma: cap the session-less publication backlog
  • f92d6d6 rdma: carry the session id in the reaped session record
  • 39aae54 rdma: close publication gaps for RC pre-session failures
  • b0954d9 rdma: correct the license header on newly authored RC files
  • 8e23315 rdma: dispatch poll_cq/post_send/post_recv through the object's own context
  • 7c19b34 rdma: drop Inc. from our copyright notices
  • 9edd21e rdma: drop the personal name from copyright notices
  • 6eb574d rdma: expose live RC sessions on the admin server
  • 980078d rdma: expose the RC data plane resource limits as gateway flags
  • 60bec2c rdma: gate session admission on audit publication backlog
  • 279f5e7 rdma: harden RC outcome publication ownership and record fidelity
  • e7edb71 rdma: install the gateway shutdown wrapper at function entry
  • d30ace7 rdma: keep reaper callbacks off sink threads
  • c9668b4 rdma: keep sinks outside the publication lock and self-close metrics
  • 23a7121 rdma: make the teardown callback the single RC publication owner
  • 06a3463 rdma: name the deviceless init failures in the RC server
  • e9a2a2f rdma: never run operational sinks on callback threads
  • 34a3e41 rdma: pin session strings passed to the RC cgo ABI
  • 49b1c6f rdma: publish RC transfer outcomes into the gateway operational services
  • 97238d8 rdma: reserve session publication before completion calls
  • 09bbe9c rdma: resolve the inline-only verbs calls from the provider ops table
  • 55c82f5 rdma: size publications to session capacity and preserve committed PUT facts
  • 64a6ed0 rdma: synchronize publication acceptance with the drain boundary
  • d3e45fd rdma: track terminal events held off by an active reservation
  • 49e0c36 s3api: report the bound addresses from the listen hook
  • 745926a tests: build the integration SDK config without the host's AWS setup
  • b1f8cea webui: show upload progress in the Explorer

  •  

v2.16.0

Note

This release adds OpenTelemetry support, a redesigned multiplexed edge tunnel, and useful CLI previews and self-update tooling. It also improves container and project workflows while fixing issues across authorization, databases, and connectivity.

Interface and container workflows

Jobs, storage, and reliability

Edge, security, and observability

CLI and integrations

  •  

Part-DB 2.20.1

Tip

If you like Part-DB, consider donating to support the development. Press the sponsor button on the main github page, for more info.

Note

If you are using Part-DB it would be helpful if you fill out this short survey on your usage of Part-DB (Google Forms): https://forms.gle/Q15twx3YYq3qCNfe8

Part-DB 2.20.1

Improvements

  • Prefetch tree view links on hover (instantclick similar to normal links). that should make feel the UI more responsive
  • Removed redundant render call for empty datatables
  • Make IC logo tool images lazy loading

Bug fixes

  • Fix Generic Web imports of offers without a price by @00200200 in #1596
  • Fixed generic web provider compatibility with websites that return incorrect data (#1595)

Other changes

  • Update KiCad symbols and footprints lists by @jbtronics in #1597
  • Updated translations

New Contributors

Full Changelog: v2.20.0...v2.20.1

  •  

v1.14.2 - Mountain View Improvements

1.14.2 (2026-10-12)

1.14.2 brings Mountain View closer to Gmail: the open message shows the whole conversation, replies are written in place under it, and a side panel holds calendar, tasks and contacts. Tasks can now be moved into calendars shared with you, and the "Date sent" list order works again.

Thank you for your donations:

One-time

  • Anonymous
  • Anonymous
  • Anonymous

Monthly

Features

  • UI: In Mountain View, the open message shows the whole conversation around it, and replies are written in place under the conversation instead of in a separate window
  • UI: Mountain View has Gmail's side panel with calendar, tasks and contacts, and its advanced search form
  • UI: Mountain View's message menu has Find emails from, and the Move to menu in the bulk actions can be searched

Changes

  • UI: Mountain View looks more like Gmail: the content sits on a rounded card over a tinted canvas, the navigation has a Labels section, and the message rows, open message toolbar, compose window, account card, message menu and bulk actions follow Gmail's layout and order. The keyboard shortcuts sit behind a help button in the top bar

Fixes

  • Mail: The "Date sent" list order sorts by date sent again instead of falling back to date received (#1219, thanks @Area128)
  • Mail: In Mountain View, the dark backdrop behind a message body spans its full width
  • Tasks: Tasks in calendars shared with you show up, and tasks can be created in, moved into, edited and deleted in those calendars (#1204, thanks @mmomjian)
  • UI: Mountain View's panes no longer slide when animations are turned off (#1215, thanks @mmomjian @cristianchiriac)

  •  

v1.14.1 - Dark Mode Background Fix

1.14.1 (2026-10-11)

1.14.1 fixes plain-text and unstyled messages showing on a gray background in dark mode after the 1.14.0 dark mode rewrite.

Thank you for your donations:

One-time

  • Anonymous
  • Anonymous
  • Anonymous

Monthly

Fixes

  • Mail: In dark mode, plain-text and unstyled messages use the app's background again instead of a gray box

  •  

v1.14.0 - Redesigned Files & Calendar, Mountain View & Truer Dark Mode

1.14.0 (2026-10-11)

1.14.0 adds Mountain View, an optional layout with a top bar and a wide search field, and gives the Files app and the calendar a new layout. Dark mode now recolours messages instead of inverting them, so brand colours stay as sent. Push can be turned on for several accounts at once, and the account list can be backed up encrypted and restored on another device. The composer got a long round of send fixes. With several accounts open, batch actions no longer hit another account's message that happens to share an id with the selected one.

Thank you for your donations:

One-time

  • Anonymous
  • Anonymous
  • Anonymous

Monthly

Features

  • UI: Mountain View is an optional layout, chosen under Settings > Layout > Interface layout. On desktop it has a top bar with a wide search field, an apps grid and the account avatar in place of the left rail, a Compose pill, a docked compose window, an account popover with unread counts per account, and j/k, x and g shortcuts. Calendar, Contacts, Files and Settings use the same top bar. The default layout is unchanged (#1168, thanks @lucamzanon)
  • Files: The Files app is laid out like Contacts and Calendar: a sidebar with a New menu, the folder tree, Starred, Recent and Shared with me, a header with breadcrumbs, search, sort and a list/grid switch, a details panel, right-click menus in the sidebar and arrow-key navigation. On touch, a tap opens and a long press selects. Folders in the tree can be renamed and deleted, recent files open in their folder, and the view, sort and hidden-files settings now apply
  • Files: Image previews in Files and in attachments zoom with the wheel or a pinch, pan by dragging or with the arrow keys, switch between fit and full size on double-click, and close on a click beside the image
  • Files: Uploads show as a toast with their progress and a Cancel button. The large file warning is gone
  • Calendar: On wide screens, clicking or dragging over empty time opens a quick editor next to the slot, and clicking an event opens a card with edit, delete and more actions. Busy month cells show "+N more", the agenda lists each day as a row with the date beside its events, and the dates in the week header open that day. Calendar lists in the sidebar fold away and show their options on hover. Phones keep the full editor
  • Push: The notification settings list every connected account and turn push on or off for several of them at once, with a single browser permission prompt (#1054, thanks @lucamzanon)
  • Accounts: Users with several accounts can save their account list on the webmail server, encrypted in the browser with a password they choose, and restore it on another device. No mailbox passwords are stored. Admins turn it on with "Account List Backup" under Admin > Policy (#1201, thanks @lucamzanon)
  • Filters: The folder context menu runs a saved rule on the messages already in that folder (#1166)
  • Composer: Schedule send offers tomorrow at 8:00, tomorrow at 13:00 and next Monday at 8:00 as one-click times
  • Settings: The language picker has a search field and flags, and every date format and region option shows a live sample
  • Plugins: A plugin can run a message-list search with a JMAP Email filter (#1024)
  • Plugins: Calendar event actions get the event's uid and attendees, and the form-save hook now fires and can change the meeting link that is saved with the event (#1202, thanks @siennathesane)

Changes

  • Mail: Dark mode recolours messages instead of inverting them. Light backgrounds are darkened in their own hue, brand colours and dark fills stay as sent, and text only changes when it lacks contrast. A message's own dark mode styles follow the app theme instead of the system's
  • Mail: A folder opened before shows its messages at once and refreshes them in the background. A failed load leaves them on screen (#1195, thanks @lucamzanon)
  • Composer: On a phone, the formatting toolbar folds away behind a Formatting button and its buttons are larger. The send options sit together in one menu
  • Files: File sizes are rounded the way people read them, like 67 KB or 2.1 MB

Fixes

  • Mail: In views that merge several accounts, selecting a message no longer also selects a message with the same id in another account. Batch delete, move, archive, copy, mark read, tag and spam act only on the ticked messages, each through its own account. Before, a permanent delete could remove the other account's message (#1061, thanks @lucamzanon)
  • Mail: A message with two spaces in a row in its subject no longer freezes the tab (#1193, thanks @dealerweb)
  • Mail: Blocking remote content no longer drops a message's style sheets, so messages keep their layout before images are loaded
  • Mail: The list shows no paperclip on a message that only has inline images
  • Mail: The "via" badge is hidden when it repeats the sender's name, and a draft shows one Edit button
  • Send: Signed and encrypted messages reach Bcc recipients (#1206)
  • Send: After a plugin send, such as S/MIME, the composer closes, and a failed plugin send keeps the draft (#1207)
  • Send: A failed send removes its unsent copy from Drafts and explains the failure in plain words. A send while offline says so and keeps the message
  • Send: Typed addresses are split on commas, and a message with an invalid address is not sent. The address field marks which ones to fix
  • Send: Undo send disappears once the delay is over and says so when an undo fails
  • Send: Discard deletes the draft, also one reopened from Scheduled, and closing an autosaved draft no longer asks about unsaved changes
  • Send: The missing subject warning comes once per message, and the scheduled time shows its date, rounded to the minute
  • Composer: Tabbing into a reply or forward keeps the quoted message, and tabbing into a new message starts at the top of the body
  • Composer: A reply opens with the caret in the body, and the composer is titled Reply, Reply All or Forward instead of New Message
  • Composer: A reopened draft takes its text from the message body only. An attached .csv or .txt no longer turns up as the message text (#1213, thanks @shukiv)
  • Composer: A long attachment list scrolls instead of pushing the Send button out of view (#1212, thanks @shukiv)
  • Composer: The plain-text part of sent mail marks quotes and list items, and the signature has one separator
  • Composer: Enter adds the highlighted suggestion instead of the typed text, and the suggestions close once the address is added and line up with the typed text. On a phone they span the whole row and show the name above the address
  • Composer: Body text no longer shows through the pinned formatting toolbar (#1200, thanks @lucamzanon)
  • Composer: On a phone, sending a new message returns to the message list, and the Continue draft banner no longer flashes after a send
  • Composer: Bitwarden no longer offers logins in the recipient fields, the mail search box or the event participant field
  • Login: A remembered sign-in survives a server timeout or an origin switch during restore instead of signing out (#1167)
  • Login: Signing out of one account keeps the other accounts, and a reload with only accounts awaiting sign-in shows the login page instead of a connection error (#1201, thanks @lucamzanon)
  • Login: A reload without "Remember me" no longer reports an expired session
  • Unified: Switching to another account keeps the unified mailbox on (#1144, thanks @lucamzanon)
  • Push: Push is renewed for every connected account, not only the active one, so accounts no longer stop notifying after seven days. The all-accounts panel shows each account's real state and why an account failed (#1054, thanks @lucamzanon)
  • Filters: Forward is hidden in filter rules when the server allows no redirects (#1208)
  • Calendar: Save is blocked while a plugin's form-save hook runs, so a double press no longer creates the event twice (#1202, thanks @siennathesane)
  • Calendar: Participant suggestions are no longer cut off by the event form
  • Files: Canceling an upload stops the file in flight and says the upload was canceled instead of counting every file as done
  • Files: A drag selection keeps its items after letting go, and Files shows a loading state instead of "No files yet" before the first listing
  • Files: Read-only documents open in ONLYOFFICE without the -103 warning (#1187)
  • Contacts: The contact popover shows the sender's name when the saved contact has none, and Contacts shows placeholders instead of "No contacts yet" while loading
  • UI: The close and back buttons in the composer and conversation view have names for screen readers, and the composer toolbar buttons are labelled
  • UI: Reply All stays on one line in the conversation view, and the welcome banner gives touch tips on a phone
  • Translations: The new composer, send, Files and filter strings are translated

  •  

Part-DB 2.20.0

Tip

If you like Part-DB, consider donating to support the development. Press the sponsor button on the main github page, for more info.

Note

If you are using Part-DB it would be helpful if you fill out this short survey on your usage of Part-DB (Google Forms): https://forms.gle/Q15twx3YYq3qCNfe8

Part-DB 2.20.0

New features

  • Added "Create from file" feature to extract a part from a datasheet, manual, etc. using AI. Both text and images are supported
  • Search hotkey with / by @samyk in #1566
  • Improved sidebar toggle, added animation and [ hotkey by @samyk in #1573
  • Added info providers for polulu, adafruit, sparkfun and bambulab by @samyk (#1577, #1578, #1579, #1580)
  • Add [[MIN_STOCK]] label placeholder by @calebwest-SS in #1587
  • Honor search options and added sort buttons to live search by @samyk (#1574, #1563)
  • Show OAuth status for info providers on info provider settings pages
  • Export "needs review" flag to KiCad HTTP library by @Dant-hw in #1590
  • Allow to group multiple tabs together on part info view, for a quicker overview by @samyk in #1584

Improvements

  • Support Anthropic LLMs for AI based providers
  • Improved info provider settings pages
  • Info providers can advertise themselves as "slow"
  • Improved speed of part live search

Bug fixes

  • Fixed behavior of tristate buttons on form reset
  • Fixed broken placeholder images in live part search

Other changes

  • Updated dependencies
  • Update KiCad symbols and footprints lists by @jbtronics in #1586
  • Updated translations

New Contributors

Full Changelog: v2.19.2...v2.20.0

  •  

Release 2026.10.09

Docker Images

Docker images have been built and pushed:

Docker Hub:

  • alexta69/metube:latest
  • alexta69/metube:2026.10.09

GitHub Container Registry:

  • ghcr.io/alexta69/metube:latest
  • ghcr.io/alexta69/metube:2026.10.09

Changes

  • feat: ask before Clear failed removes the failed rows (closes #1094) (2f9c10f)
  • fix: say why MeTube's own UI is refused behind a Host-rewriting proxy (46a9572)
  • feat: define the download options once, in a catalog the UI and API share (closes #1093) (69a5ef0)
  • fix: ship ffmpeg 8.1 so clip downloads keep their video (closes #1092) (ed6af48)
  • feat: browse a playlist and pick entries before queuing (closes #1030) (4723d14)

  •  

v12.5.0

⚠️ Potential Breaking Changes

Fixed TFA enforcement to use effective permissions (#28176)
Policies with an IP allow list are now accounted for when enforcing TFA within the allowed range.

Improved license handling so a failed license request keeps the current license in effect and is retried by a scheduled license check, with a warning in the app showing why the license could not be renewed and when it lapses (#28331)
The /server/license response no longer includes downgrade_reason. Read invalid_reason instead, which also reports why a license that is still in effect could not be renewed.

@directus/errors no longer exports LicenseManagedByEnvError, LicenseOfflineUnsupportedError, LicenseResolveIncompleteError or LicenseServiceUnavailableError, or their error codes. License request failures now surface as LICENSE_INVALID with a failure extension, or as the standard FORBIDDEN, INVALID_PAYLOAD, REQUESTS_EXCEEDED and SERVICE_UNAVAILABLE errors.

Removed the ip-matching dependency (#28243)
Policy ip_access and IMPORT_IP_DENY_LIST values are now more strictly validated. Subnets with a malformed prefix such as 10.0.0.0/ 24 or 10.0.0.0/+24, are no longer accepted.

Existing policies that already store such a value will fail every request for users with that policy.

Fixed requests failing after a process was stopped during schema building (#28316)
CACHE_SCHEMA_MAX_ITERATIONS has been removed. CACHE_SCHEMA_SYNC_TIMEOUT now also limits the schema build itself and defaults to 60000 ms.

If you have configured a lower value, make sure it is long enough for your schema to finish building.

Updated outdated type definitions for directus_notifications, directus_permissions, directus_extensions, directus_fields, directus_activity, directus_collections, and directus_revisions (#28072)
Breaking changes in @directus/sdk:

  • DirectusNotification.id is now correctly typed as number.
  • DirectusField.schema is now nullable.
  • FieldMetaConditionOptionType has been removed; condition options is now Record<string, any>.
  • FieldMetaConditionType.hidden, readonly, required, and options are now optional, and rule is typed as a filter.
  • All ExtensionSchema properties are now optional, and DirectusExtension.schema can also be an ExtensionSchemaEntry.

Breaking changes in @directus/types:

  • Notification.id is now correctly typed as number.

  • Notification.status and timestamp are now nullable.

  • @directus/api

    • Improved license handling so a failed license request keeps the current license in effect and is retried by a scheduled license check, with a warning in the app showing why the license could not be renewed and when it lapses (#28331 by @ComfortablyCoding)
    • Removed the ip-matching dependency (#28243 by @Nitwel)
    • Fixed requests failing after a process was stopped during schema building (#28316 by @Nitwel)
  • @directus/errors

    • Improved license handling so a failed license request keeps the current license in effect and is retried by a scheduled license check, with a warning in the app showing why the license could not be renewed and when it lapses (#28331 by @ComfortablyCoding)
  • @directus/utils

  • @directus/types

    • Updated outdated type definitions for directus_notifications, directus_permissions, directus_extensions, directus_fields, directus_activity, directus_collections, and directus_revisions (#28072 by @kheiner)
  • @directus/sdk

    • Updated outdated type definitions for directus_notifications, directus_permissions, directus_extensions, directus_fields, directus_activity, directus_collections, and directus_revisions (#28072 by @kheiner)

✨ New Features & Improvements

  • @directus/app
    • Added a Preview Base URL project setting, selectable as a variable in a collection's Preview URL (#28227 by @robluton)
    • Added header bar buttons to set multiple selected Flows to active or inactive (#28321 by @robluton)
    • Added a confirmation dialog when saving Public policy permission changes on system collections (#28311 by @robluton)
    • Added a persistent warning notice when editing the Public policy (#28310 by @robluton)
    • Added support for linking images in the WYSIWYG editor: select an image and use the link toolbar button (or Mod+K) to wrap it in an anchor; stored <a href><img></a> markup now survives loading without triggering the normalization warning (#28289 by @alvarosabu)
  • @directus/api
    • Added a Preview Base URL project setting, selectable as a variable in a collection's Preview URL (#28227 by @robluton)
  • @directus/memory
    • Added opt-in hash option to redis memory, improving cache clear performance (#28214 by @Nitwel)
    • Added optional lock settings to usingLock to override the lock's duration and retry count. A signal is now passed to the callback that aborts if the lock is lost before it finishes (#28331 by @ComfortablyCoding)
  • @directus/system-data
    • Added a Preview Base URL project setting, selectable as a variable in a collection's Preview URL (#28227 by @robluton)
  • @directus/types
    • Added a Preview Base URL project setting, selectable as a variable in a collection's Preview URL (#28227 by @robluton)
  • @directus/sdk
    • Added a Preview Base URL project setting, selectable as a variable in a collection's Preview URL (#28227 by @robluton)
  • @directus/constants
    • Added a persistent warning notice when editing the Public policy (#28310 by @robluton)
  • @directus/env

πŸ› Bug Fixes & Optimizations

  • @directus/app
    • Updated proxy-addr, braintrust, MCP SDK, sharp, vue, dompurify, source-map-js and serialize-javascript to address CVEs (#28334 by @br41nslug)
    • Update license validation to only accept Directus keys and tokens (#28331 by @ComfortablyCoding)
    • Updated undici, axios, nodemailer, basic-ftp, ip-address, and fast-uri to address CVEs (#28330 by @br41nslug)
    • Improved license handling so a failed license request keeps the current license in effect and is retried by a scheduled license check, with a warning in the app showing why the license could not be renewed and when it lapses (#28331 by @ComfortablyCoding)
    • Fixed tooltips not appearing on keyboard focus (#28263 by @robluton)
    • Fixed Norwegian time format patterns that displayed raw timestamps instead of times in datetime fields (#28332 by @u12206050)
    • Fixed the module navigation scrolling back to the top when navigating to another page (#28269 by @khanahmad4527)
    • Fixed AI translations creating duplicate target language rows when streaming multiple fields. (#28074 by @xmflsct)
    • Updated outdated type definitions for directus_notifications, directus_permissions, directus_extensions, directus_fields, directus_activity, directus_collections, and directus_revisions (#28072 by @kheiner)
    • Cleaned unsupported markup from pasted content in the WYSIWYG editor and flagged it inline, with a view of what was removed and the choice to undo the paste or redo it raw in the raw HTML editor (#28238 by @alvarosabu)
  • @directus/api
    • Updated proxy-addr, braintrust, MCP SDK, sharp, vue, dompurify, source-map-js and serialize-javascript to address CVEs (#28334 by @br41nslug)
    • Update license validation to only accept Directus keys and tokens (#28331 by @ComfortablyCoding)
    • Fixed OpenAPI spec version to only change when the generated spec does (#28109 by @kheiner)
    • Fixed creating a collection with neither schema nor meta returning a misleading 403 instead of a 400 validation error (#28258 by @kheiner)
    • Fixed filtering and GraphQL typing of geometry subtype fields (e.g. geometry.Point) (#28308 by @PINYOPATTANAWASANPORN)
    • Fixed license boot holding a lock for the entirety of startup (#28331 by @ComfortablyCoding)
    • Fixed GraphQL marking not-null fields with a default value as nullable in queries and fields with falsey default values as required in create mutations (#28280 by @Dextheking1)
    • Added opt-in hash option to redis memory, improving cache clear performance (#28214 by @Nitwel)
    • Fixed TFA enforcement to use effective permissions (#28176 by @psang39)
    • Updated undici, axios, nodemailer, basic-ftp, ip-address, and fast-uri to address CVEs (#28330 by @br41nslug)
    • Fixed GraphQL fragments on the union type of one M2A field returning no data when spread into another M2A field (#28305 by @Nitwel)
    • Unified related collection lookups to use getRelationInfo (#28246 by @Nitwel)
    • Fixed a GraphQL query with a __proto__ field alias being able to write a property onto Object.prototype. (#28211 by @datrixlab)
    • Improved validation of storage locations and paths for files (#28077 by @br41nslug)
  • @directus/extensions-sdk
    • Fixed directus-extension validate passing or crashing on missing extension paths (#28320 by @PINYOPATTANAWASANPORN)
    • Updated proxy-addr, braintrust, MCP SDK, sharp, vue, dompurify, source-map-js and serialize-javascript to address CVEs (#28334 by @br41nslug)
  • @directus/composables
    • Updated proxy-addr, braintrust, MCP SDK, sharp, vue, dompurify, source-map-js and serialize-javascript to address CVEs (#28334 by @br41nslug)
    • Updated undici, axios, nodemailer, basic-ftp, ip-address, and fast-uri to address CVEs (#28330 by @br41nslug)
  • @directus/extensions
    • Updated proxy-addr, braintrust, MCP SDK, sharp, vue, dompurify, source-map-js and serialize-javascript to address CVEs (#28334 by @br41nslug)
  • @directus/stores
    • Updated proxy-addr, braintrust, MCP SDK, sharp, vue, dompurify, source-map-js and serialize-javascript to address CVEs (#28334 by @br41nslug)
  • @directus/themes
    • Updated proxy-addr, braintrust, MCP SDK, sharp, vue, dompurify, source-map-js and serialize-javascript to address CVEs (#28334 by @br41nslug)
  • @directus/types
    • Updated proxy-addr, braintrust, MCP SDK, sharp, vue, dompurify, source-map-js and serialize-javascript to address CVEs (#28334 by @br41nslug)
    • Updated undici, axios, nodemailer, basic-ftp, ip-address, and fast-uri to address CVEs (#28330 by @br41nslug)
  • @directus/utils
    • Updated proxy-addr, braintrust, MCP SDK, sharp, vue, dompurify, source-map-js and serialize-javascript to address CVEs (#28334 by @br41nslug)
    • Fixed filtering and GraphQL typing of geometry subtype fields (e.g. geometry.Point) (#28308 by @PINYOPATTANAWASANPORN)
    • Unified related collection lookups to use getRelationInfo (#28246 by @Nitwel)
  • @directus/specs
    • Fixed creating a collection with neither schema nor meta returning a misleading 403 instead of a 400 validation error (#28258 by @kheiner)
  • @directus/cli
    • Updated undici, axios, nodemailer, basic-ftp, ip-address, and fast-uri to address CVEs (#28330 by @br41nslug)
  • @directus/storage-driver-cloudinary
    • Updated undici, axios, nodemailer, basic-ftp, ip-address, and fast-uri to address CVEs (#28330 by @br41nslug)
  • @directus/storage-driver-supabase
    • Updated undici, axios, nodemailer, basic-ftp, ip-address, and fast-uri to address CVEs (#28330 by @br41nslug)
  • @directus/update-check
    • Updated undici, axios, nodemailer, basic-ftp, ip-address, and fast-uri to address CVEs (#28330 by @br41nslug)
  • @directus/env
    • Fixed requests failing after a process was stopped during schema building (#28316 by @Nitwel)
  • @directus/sdk
    • Fixed readActivity, deletePermission, readPermission, updatePermission, readItemPermissions, readNotification, and readRevision not rejecting a null or undefined key or collection (#28072 by @kheiner)

πŸ“¦ Published Versions

  • @directus/app@18.1.0
  • @directus/api@40.0.0
  • @directus/cli@12.3.1
  • @directus/composables@11.6.4
  • @directus/constants@14.5.0
  • create-directus-extension@12.1.6
  • @directus/env@6.4.0
  • @directus/errors@3.0.0
  • @directus/extensions@4.0.6
  • @directus/extensions-registry@4.0.5
  • @directus/extensions-sdk@18.0.6
  • @directus/memory@4.1.0
  • @directus/pressure@4.0.6
  • @directus/schema-builder@1.0.4
  • @directus/specs@15.2.1
  • @directus/storage-driver-azure@13.0.6
  • @directus/storage-driver-cloudinary@14.0.3
  • @directus/storage-driver-gcs@13.0.6
  • @directus/storage-driver-s3@14.0.3
  • @directus/storage-driver-supabase@5.0.3
  • @directus/stores@3.0.2
  • @directus/system-data@4.8.0
  • @directus/themes@3.0.1
  • @directus/types@18.0.0
  • @directus/update-check@14.0.1
  • @directus/utils@14.0.0
  • @directus/validation@3.0.6
  • @directus/sdk@27.0.0

  •  

v1.13.0 - Out of Office Forwarding, Copy to Another Account & Unverified Sender Warnings

1.13.0 (2026-10-07)

1.13.0 turns the vacation settings into an Out of Office page that can also forward mail, lets filter rules run only for a date range, and copies messages into another connected account. Files from the Files app can be attached in the composer, tags can be set on many messages at once and folders moved in bulk. Messages whose sender can't be verified now carry a warning. It also stops one account's settings and templates from carrying over to the next account signed in on the same browser.

Thank you for your donations:

One-time

  • Anonymous
  • Anonymous
  • Anonymous

Monthly

Security

  • Settings: Signing out and then signing in with another account in the same browser no longer shows the previous account's settings, tags and templates, and no longer saves them to the new account's synced settings (#1185)

Features

  • Mail: A message whose sender fails the From domain's checks, or that passes neither SPF nor DKIM, shows a warning above the message and a badge next to the sender. "Always trust this sender" is not offered for it
  • Mail: "Copy to account..." in the message menu files a copy in a folder of another connected account and leaves the original where it is. Copies keep their original date (#1150, thanks @lucamzanon)
  • Mail: The selection toolbar and the right-click menu put a tag on, or take it off, every selected message at once (#1077)
  • Out of office: The vacation settings are now an Out of Office page: the period on top, then the automatic reply and forwarding, each with its own switch. Forwarding works with or without the reply, never forwards spam and can keep a copy in the inbox. The reply can go to all senders, internal senders only or external senders only (#1152, thanks @dealerweb)
  • Filters: A rule can be limited to a period, and the rule list shows whether it is scheduled, active or expired (#1152, thanks @dealerweb)
  • Filters: The new "All messages" condition matches every message (#1154, thanks @dealerweb)
  • Composer: "Attach from Files" attaches files from the Files app, including files shared with you, without downloading and uploading them again (#1179)
  • Composer: Typing @ in the message body offers the To and Cc recipients and inserts the chosen one's first name. Bcc recipients are never offered. "Mention recipients with @" in the composer settings turns it off (#1134, thanks @dealerweb)
  • Folders: The folder settings can select several folders, with Shift+click for a range, and move them together under another folder or to the top level (#1173)
  • Calendar: The day and week views can be limited to working hours, and the week view can leave out non-working days. Events outside the visible hours are counted at the top and bottom of each day and open from there, and a button in the view shows all hours (#1164)
  • Login: LOGIN_SHOW_TOKEN_LOGIN=true offers "Sign in with an access token", for JMAP servers that take API tokens instead of passwords, such as Fastmail
  • Login: A server in JMAP_SERVERS whose oauth block has both a clientId and a buttonLabel gets its own sign-in button on the login page, even while OAuth is off globally. This allows a "Sign in with Google" button for a Gmail bridge next to servers that use passwords (#1135, thanks @lucamzanon)
  • UI: The browser tab title names the active account, as in "Inbox - alice@example.com - Webmail", and Settings, Calendar, Contacts and Files set their own title. Turning off "Subject in Tab Title" under Admin > Policy keeps message subjects out of the title, and with it out of the browser history (#1186, thanks @oguzyilmaznet)
  • Unified: While logins reconnect after a page load, the "All accounts" header shows how many are already counted, such as "4/10" (#1140, thanks @lucamzanon)
  • Push: A message that reaches several of your accounts rings once. For 30 seconds after an alert, notifications from your other accounts arrive silently (#1141, thanks @lucamzanon)
  • Server: SOURCE_CODE_URL points the source code link in Settings > About at the code of a modified build, as AGPL section 13 asks of anyone running one (#1161)

Changes

  • Calendar: The day and week views show 08:00 to 20:00 by default. "Limit visible hours" in the calendar settings changes the range or turns it off (#1164)
  • Tags: Tag views and their counts leave out messages in Trash and Spam (#1156)
  • Mail: In a shared mailbox, the Move menus list that mailbox's folders first and your own folders after them, under your account name (#1149)
  • Dependencies: sharp 0.35.5 and source-map-js 1.2.2 (npm audit)
  • Docs: CONTRIBUTING.md explains what belongs in core and what in a plugin, and which changes need an agreed issue before a pull request

Fixes

  • Mail: Attachments, inline images and .eml downloads of messages in shared folders are fetched from the account that owns them. On Cyrus they failed with "failed to find blob by id" (#1188, thanks @VasilisNtovolos)
  • Mail: Archive creates an Archive folder when the account has none, instead of only reporting that it is missing (#1176, thanks @cybersmurf)
  • Mail: Opening the webmail starts in the inbox instead of a folder from an earlier visit, such as Trash
  • Mail: Opening another folder, tag, account or search starts the message list at the top instead of where the last one was scrolled to (#1138, thanks @dealerweb)
  • Mail: Previews no longer start with a style sheet ("@media screen and ...") in the message list and in push notifications (#1136, thanks @lucamzanon)
  • Search: Searching from the unified All mail view finds sent mail too
  • Send: A draft saved without a subject reopens with an empty subject, so Send warns about it again instead of sending "(No Subject)" (#1189)
  • Send: When the server does not confirm that a message was sent, the draft is kept and the composer asks you to check Sent before sending again (#1019, thanks @lucamzanon)
  • Send: A message the server refuses shows the server's reason instead of "Invalid reference to non-existing object"
  • Send: A forward sent from another account's address no longer fails with blobNotFound. Its attachments and inline images are copied to the sending account first (#1142, thanks @lucamzanon)
  • Push: Push turns itself back on when the browser lost its subscription, retrying at most every 15 minutes (#1147, thanks @lucamzanon)
  • Push: The notification settings check push again when you come back to the tab, so push turned off in the browser or another tab no longer shows as on (#1148, thanks @lucamzanon)
  • Push: When the new message cannot be read, the notification no longer announces another unread message from the Inbox in its place, and a failed lookup shows a generic notification instead of none (#1041, thanks @lucamzanon)
  • Filters: "Stop processing further rules" also stops after "Delete silently" and "Reject", so later rules no longer file the message. Rules whose name contains double spaces, a tab or a trailing space no longer gain a copy on every save, and the copies earlier saves left are removed (#1153, thanks @dealerweb)
  • Filters: The forwarding limit counts the forwards one message can collect, instead of adding up every enabled rule, and warns when the rule order lets one message go over it (#1155, thanks @dealerweb)
  • Filters: A condition with several values wraps inside its card in the expanded rule view (#1139, thanks @dealerweb)
  • Filters: An open rule dialog or Sieve editor, and what was typed in it, survives a filter change from another tab or device (#1162, thanks @dealerweb)
  • Templates: A tab or device that had not reloaded no longer deletes templates created elsewhere when it saves its settings
  • Calendar: Duplicating an event keeps its meeting link (#1170)
  • Calendar: The Calendar Agenda plugin shows events from shared and group calendars (#1175, thanks @cybersmurf)
  • Files: Folders shared with you can be opened, and your own folders shared, in both folder layouts (#1181)
  • Files: Office editing works behind a reverse proxy where the editor and the browser reach the webmail at different addresses. The WOPI client URL may be an internal address (#1130)
  • Login: When Stalwart accepts a password and TOTP code but refuses to issue tokens, the login page points at the OAuth client settings instead of opening the browser's own sign-in dialog and reporting a wrong code
  • Branding: With APP_NAME set, the authenticator app entry for two-factor sign-in, the About card and the Files preview use the configured name and logo (#1177, thanks @cybersmurf)
  • UI: Text fields in dialogs keep the focus when the page behind updates, which happened every 30 seconds and on new mail (#1162, thanks @dealerweb)
  • UI: Buttons, menu items, tabs and other controls show the pointer cursor again (#1184, thanks @gwku)
  • UI: The account group labels in the From dropdown are readable in dark themes (#1157, thanks @dealerweb)
  • Translations: Czech is fully translated (#1174, thanks @cybersmurf), and missing placeholders are restored in Persian, Hebrew, Hungarian, Mongolian and Slovak (#1165, thanks @owgreen-dev)

  •  

v5.57.0

5.57.0 (2026-10-07)

πŸš€ New feature

  • cli: add strapi enterprise install command (#27849)
  • content-type-builder: Preserve data on renaming attributes (#26749)
  • review-workflows: record workflow and review actions in audit logs (#27814)

πŸ”₯ Bug fix

  • updating xhmikosr/decompress (#27885)
  • documentId upload in content API (#27834)
  • admin: media library banner appears on every admin page instead of only the media library (9012e0ad5a)
  • admin: upsell banner stacked with the media library banner when both were shown (349aaea5ba)
  • admin: upsell banner briefly mounted and queried its trial data on the media library (ba5482ce21)
  • admin: guard RelativeTime against invalid dates (#27472)
  • admin: enumeration placeholder shown twice in select trigger (#27785)
  • admin: add strapi version to admin telemetry events (#27922)
  • admin|upload: stamp legacy media events and send login telemetry once (#27932)
  • content-manager: warn before discard removes relations to draft entries (#27815)
  • content-manager: preview click-to-edit breaks when the preview script is injected twice (#27796)
  • content-manager: relation list loses pages after opening the same document in a modal (#27831)
  • content-manager: stop relation fields rendering a full page loader (#27682)
  • core: strip empty documentId from create/update data to prevent … (#27766)
  • documentation: prevent relation schema generation from exhausting memory (#27780)
  • i18n: globe tooltip displays [object object] (#27890)
  • lint: make oxlint override globs match repo paths (#27863)
  • upload: add rotate to the media library image editor (#27714)
  • upload: open asset and folder actions on right-click (#27816)
  • upload: stamp mediaLibraryVersion v1 on legacy media library events (#27900)
  • utils: explain that status is root-only when used in nested populate (#27857)

πŸ“š Documentation Changes

  • architecture modeling (#26927)

βš™οΈ Chore

  • fix package version alignment on develop (#27871)
  • remove lodash/fp and prefer native javascript (#27819)
  • deps: bump @radix-ui/react-toolbar from 1.1.11 to 1.1.19 (5dc5ad318d)
  • email: migrate unit tests from jest to vitest (#27391)
  • graphql: migrate backend unit tests from jest to vitest (#27389)
  • i18n: remove type exports from server entry (#27817)

πŸ’… Enhancement

  • core: accept localization behavior from registered providers (#27806)
  • strapi: stop loading the admin build toolchain on every cli command (#27910)

🚨 Security

  • document DTS transfer-token trust model as a specific exclusion (#27483)
  • deps: upgrade vite to fix server.fs.deny bypass on windows (eadb0c9d82)
  • deps: resolve every qs copy in the lockfile to 6.16.0 (3be284aab1)

❀️ Thank You

  •  

v2.15.1

Note

This release fixes Compose path and image handling, improves backup and update reliability, and adds a setting for Signal notifications.
It also includes fixes for remote environments, authentication, and environment navigation.

Compose and updates

  • Interpolate variables in Compose include paths (#4298) β€” @kmendell
  • Preserve Compose image spelling during project updates and self-updates (#4330) β€” @kmendell
  • Keep the selected tag during self-updates and refresh stale project update status (commit e862615fc4e47c8bf7fbfc089254bf509d0a82c7) β€” @kmendell

Environments, notifications, and authentication

  • Resolve webhook target names in remote environments (#4299) β€” @kmendell
  • Default notifySelf to true and add a setting for Signal notifications (#4302) β€” @Shraymonks
  • Prevent logout from hanging on permission errors after OIDC login (#4309) β€” @kmendell
  • Navigate to the selected environment on environment-scoped routes (#4320) β€” @kmendell

Backups and maintenance

  • Prevent system backups from failing when project files are in use (#4311) β€” @kmendell
  • Allow deleting backups when their S3 repository no longer exists (#4319) β€” @kmendell
  • Report accurate reclaimed space in scheduled pruning (#4317) β€” @kmendell
  • Store Francis actor state in its own SQLite database (commit 93a740597df7a6aa47d5925d9d8dc5499934af05) β€” @kmendell
  • Use persistent Git storage for SSH host keys on native installs (#4300) β€” @kmendell

Interface and platform

  • Remove table header blur (commit 4d9bca092d6006b7265a6ce07928860b47ab84a5) β€” @kmendell
  • Release arcane-cli only for Apple Silicon (arm64), dropping amd64 support (commit b3acb52dd02f39e39489203ce04ab316b47de8f6) β€” @kmendell

Internal changes

  • Move the Docker utils package to go.getarcane.app/docker (#4296) β€” @kmendell
  • Inline logic in project services (commit 73b43dba1e83f9a630b81e21381b533e50cdc57d) β€” @kmendell

  •  

FreshRSS 1.30.1

This is a security-oriented release with several security patches and bug fixes in the continuation of 1.30.0.

Note that our rolling-release channel (edge) is recommended for faster security patches.

Bug fixes highlights πŸ›:

  • Some security attack scenarios patched
  • Fix domain-wide Retry-After
  • Fix muting of feeds gone with HTTP 410

Feature highlights✨:

  • CLI: Add optional feed argument to actualize-user.php

This release has been made by @Alkarex, @andris155, @fzlzjerry, @Inverle, @jamalkamaladdin, @jtracey, @Otolock and newcomers @akine, @colons, @ethanstoner, @gigioneggiando, @Juice-de-Orange, @pavel-miniutka, @qwist1233-cpu, @Sharawey74, @shcheglovnd, @TapuGithub, @yuchenshi, @ZainnQureshii

Full changelog:

  • Deployment
    • Reword recommendations and explanations for edge (rolling release) vs. latest (versioned release) channels #9270
  • Security
    • Config + increase default values for search max length and depth #9280
    • Accept a trusted proxy address given without a subnet #9301
    • Warn during session regenerate fail #9311, #9376
    • CI/CD add zizmor workflow for action security checks #9228, #9331
    • Use PHP #[\SensitiveParameter] #9322
    • Reject token access (RSS/OPML export, feed refresh) for disabled accounts #9336
    • Require POST+CSRF for self-update mutations #9335
    • Make the login challenge nonce one-time #9334
    • Bound ZIP import against decompression bombs #9332
    • Rotate session ID on all authenticated transitions #9333
    • Minz: Remove vulnerable and unused code path for displaying errors #9395
    • Fix NAT64 feed fetching on IPv6-only hosts #9372
  • Bug fixes
    • Fix domain-wide Retry-After #9390
    • Fix muting of feeds gone with HTTP 410 #9391
    • Fix infinite redirect loop due to SCRIPT_NAME in PATH_INFO #9282, #9287
    • Restore the automatic reading view after marking articles as read, while preserving explicit filters #9288
    • Fix adaptive reading state after marking articles read #9290
    • Fix regression sharing links #9303
    • Don’t disable anonymous refresh when anonymous feed access is disabled #9354
    • Fix regression with HTTPS proxies due to wrong TLS SNI resolution #9341
    • Better enforce limits for feeds and categories #9357
    • Fix JavaScript error when opening a label menu in sidebar #9377
    • Fix custom favicon with GReader API #9409
  • CLI
    • Add optional feed argument to actualize-user.php #9319
  • UI
  • Extensions
    • Call check_url_before_add hook when previewing a feed #9343
  • I18n
  • Misc.

  •  

v2.15.0

Note

This release adds registry browsing, mobile table sorting, and project deployment feedback. It also fixes issues with project and GitOps workflows, remote agents, job processing, and application reliability.

Features and interface

  • Browse repositories and tags in configured registries. (#4162) @Laval13
  • Add mobile sorting to the shared table menu. (#4225) @kmendell
  • Add unsaved-changes warnings when deploying or redeploying projects. (32f1e335) @kmendell
  • Add actor statuses to the diagnostics page. (01a8964d) @kmendell
  • Make several UI/UX improvements, support backup login, and show both digest values. (#4271) @kmendell
  • Update the dashboard header design. (#4269) @kmendell
  • Refresh the login screen layout. (32262306) @kmendell
  • Clean up crowded action buttons. (#4233) @kmendell

Fixes and reliability

  • Handle .env directories in project scans, environment saves, and workspaces. (#4213) @Mczubi
  • Honor *_FILE settings on the environment-managed settings path. (#4203) @mortencombat
  • Reduce manager polling and config-sync egress to remote agents. (#4218) @kmendell
  • Align editor themes with the selected application theme and prevent overlapping columns in virtualized tables. (#4219, #4220) @kmendell
  • Avoid duplicate deployment events on project redeploy. (1b31dd9c) @kmendell
  • Prevent GitOps directory sync from copying unrelated project data and stop loaded associations from overwriting repository updates. (#4222, #4243) @kmendell
  • Allow project redeploys with restricted bind sources. (#4260) @kmendell
  • Prevent volume detail-page errors when navigating away. (#4229) @kmendell
  • Include ECR Public in the Docker image list. (0d3cd419) @kmendell
  • Omit SQL parameters from query logs to prevent oversized logs. (#4221) @kmendell
  • Automatically clean up upgrade logs according to configurable retention. (#4230) @kmendell
  • Show upgrade status for Arcane self-upgrades. (#4278) @kmendell
  • Reject events from cancelled stream connections, and harden stream cleanup against stale cache fills. (#4241, #4267) @kmendell
  • Remove manual job review, fix Francis scheduling, and recover oversized legacy job histories on startup. (#4268, #4270) @kmendell

Performance and internal improvements

  • Reduce database queries and simplify frequently used queries. (#4239) @kmendell
  • Switch log streaming from JSON lines to SSE. (#4276) @kmendell
  • Simplify the JSON serializer. (b47a8b90) @kmendell
  • Adopt go.getarcane.app for common utilities. (#4223) @kmendell
  • Use Francis for distributed actors. (#4261) @kmendell
  • Standardize on Go standard-library errors. (#4263) @kmendell
  • Standardize domain package layouts. (7d41c588) @kmendell
  • Remove Viper config loading from the CLI in favor of raw YAML marshalling. (e4c1c0a3) @kmendell
  • Regroup CLI commands and add loading states. (0f6591f7) @kmendell

  •  

v0.21.0

What's Changed

  • Add pending package updates list to the system page (#2357, #2427)
  • Add Wi-Fi signal strength monitoring (#2367)
  • Add TLS certificate expiry check to HTTPS network monitors (#2401)
  • Add systemd service logs to service details (#2440)
  • Add option to set the DNS server queried by DNS monitors (#2389)
  • Add network monitor comparison across systems and within the same system (#2442, #2477)
  • Add SYNC_SYSTEM_NAMES environment variable to sync system names with hostnames (#1917)
  • Add DISABLE_SSH option to the hub to skip SSH fallback (#2469)
  • Add environment variable to disable container image update checks (#2371)
  • Add MB/s and GB/s unit selection to bandwidth alerts
  • Add log timestamp toggle (#2471)
  • Add view settings to the network monitors table (#2396)
  • Add Twemoji Country Flags font so flags always render (#2363)
  • Change active alerts grid to a banner and sheet (#2445)
  • Change network packet loss to a red line (#2377)
  • Improve Intel GPU monitoring by parsing intel_gpu_top JSON output (#2387)
  • Improve LXC guest CPU usage reporting using cgroup accounting (#2341)
  • Improve WebSocket and SSH fallback handling (#2441)
  • Fix LVM volumes not mapping to disk I/O by resolving device symlinks (#2486)
  • Fix ZFS pool I/O stats to include snapshot reads (#2474)
  • Fix inaccurate disk I/O on the first sample of an interval (#2420)
  • Fix Windows volume names being altered when matching I/O devices (#2419)
  • Fix 32-bit wrap of disk I/O time counters (#2407)
  • Fix partial NVMe SMART data handling (#2340)
  • Fix NVMe power-cycle SMART fields overflowing (#2484)
  • Fix nvethernet network counters (#2090)
  • Fix agent not reconnecting after an async WebSocket handshake failure (#2329, #2326)
  • Fix WebSocket reconnect loops on slow agent collections (#2294)
  • Fix SKIP_GPU not excluding GPU hwmon temperatures and fans (#2313)
  • Fix Docker image update check across all image repository digests (#2393)
  • Fix status alerts being lost during pending recovery (#2375)
  • Fix hub requiring system access for alert subscriptions and delivery (#2455)
  • Fix hub not honoring SSH request cancellation (#2450)
  • Fix hub not restarting beszel-hub.service after update (#2410)
  • Fix IP targets being accepted for DNS monitors (#2483)
  • Fix short monitor IDs failing schema validation (#2454)
  • Fix network monitor charts to show gaps for failed probes and disconnects (#2428)
  • Fix duplicate y-axis labels on network monitor response charts (#2426)
  • Fix translations not refreshing on locale change (#2405)
  • Fix scrollbar layout shifts (#2406)
  • Fix hub returning 200 for unknown frontend routes (#2414)
  • Fix proxy caching of systemd details (#2456)
  • Fix agent not exiting with code 0 when run without a key on Windows (#2376, #2247)
  • Fix OpenWrt user account handling in the install script (#2370)
  • Update Go dependencies

New Contributors

Full Changelog: v0.20.0...v0.21.0

  •  

v1.12.0 - Rules from the Message Menu, Copyable Sign-In Codes & Mobile App Linking for Every Account

1.12.0 (2026-09-30)

1.12.0 lets you create filter rules straight from a message, offers the code from sign-in mail for one-click copying, and gives a phone linked with "Link Mobile App" a sign-in of its own, for every kind of account. Search now leaves Spam and Trash out by default, and emptying an ordinary folder moves its mail to the Trash. Browsers with many logins start up much faster. It also contains three security fixes, so please update.

Thank you for your donations:

One-time

  • Anonymous

Monthly

Security

  • Auth: The password+TOTP login no longer sends the webmail's OAuth client secret to a mail server the user chose when custom JMAP endpoints are allowed. Only admin-configured servers get it
  • Auth: The identity provider round trip for "Link Mobile App" can no longer sign the browser in as whichever account answered it, and a re-authentication the provider answered from an existing session instead of a fresh login is refused
  • Mail: Opening a previewed SVG attachment in a new tab no longer runs the sender's script in the webmail origin

Features

  • Mail: A "Rules" entry in the message right-click menu creates filter rules from the message: always move mail from its sender, domain or mailing list, mark it read, tag it, or block the sender. A new rule can also run on the messages already in the folder, and it can be undone from the toast
  • Filters: The rule editor suggests conditions from the message it was opened from (subject, recipients, List-Id, sender domain), and the new "is the address" and "has the domain" conditions match an address exactly
  • Mail: Codes from sign-in and confirmation mail show as a copy chip in the message, and in the list for a day. "Show Verification Codes" in settings turns it off
  • Mail: In the unified view, rows can be tinted with their account's color instead of showing the account dot, and tags this browser has no definition for, such as ones set by a server-side filter, get a color of their own instead of grey (#1052, thanks @lucamzanon)
  • Search: The folder dropdown shows subfolders indented under their parents
  • Composer: Pasted plain-text lines that start with "- ", "* ", "β€’ ", "1. " or "1) " become real lists
  • Calendar: The event popover finds the join link of Teams, Zoom, Meet, Webex, Jitsi, Whereby and GoTo meetings in the location or description, and the location opens in maps, with a copy button next to it (#1095, thanks @lucletoffe)
  • Server: LIBRETRANSLATE_API_KEY_FILE, BULWARK_JWT_AUTH_SECRET_FILE, BULWARK_STALWART_MASTER_USER_FILE and BULWARK_STALWART_MASTER_PASSWORD_FILE read these secrets from files, and the admin config accepts oauthClientSecretFile and sessionSecretFile (#897, thanks @Cameo007)
  • Plugins: PLUGIN_SIGNING_KEY_FILE points at an existing Ed25519 key for signing managed plugin bundles, for read-only secret mounts (#996, thanks @mulatta)
  • Releases: Container images and release files come with a signed build provenance attestation, and the standalone tarballs get a .sha256. The README explains how to check them with gh attestation verify

Changes

  • Search: Search leaves out Spam and Trash unless "All folders" is picked in the folder dropdown. A search started in Spam or Trash searches that folder
  • Mail: Emptying a folder other than Trash or Junk moves its mail to the Trash, unless deleted mail is set to be removed permanently
  • Mobile app: "Link Mobile App" is offered for every account. Password and password+TOTP accounts confirm their password (and code) in the dialog. The phone gets a sign-in of its own, so signing out in the browser no longer signs it out, and a sign-in link to copy sits next to the QR code. Failed password attempts are limited per account
  • Calendar: Events are drawn as solid blocks of their calendar's color; declined and cancelled events are outlined
  • UI: Success and info toasts are plain cards; only errors and warnings are colored
  • Performance: With many logins, the browser restores them four at a time and no longer reloads every login's folders, identities and push connections each time one of them connects (#1132, thanks @lucamzanon)
  • License: An additional permission under section 7 of the AGPL allows distributing apps built from this code through app stores. It is provisional until every earlier contributor has agreed (consent request) and applies in full to contributions made since 30 September 2026
  • Docs: Guidelines for AI-assisted contributions in the README and CONTRIBUTING.md

Fixes

  • Mail: Clicking a folder's unread count lists only that folder's unread mail, not unread mail from every folder of every account
  • Mail: In "unread first" lists, a message you open stays in place until you open another
  • Mail: The message list no longer flashes a reload right after the page opens
  • Mail: On tablets, the message list comes back when the reading pane empties, for example after the open message is deleted or moved
  • Mail: Dividers between rows no longer disappear at 125% or 150% display scaling
  • Mail: The unread dot is centred on the sender avatar
  • Mail: Attachments declared with a type the browser cannot show, such as application/x-as400attachment from IBM i systems, application/x-pdf or a catch-all type, preview according to their file name (#1127, thanks @dealerweb)
  • Send: Recipients the server refuses at send are reported. When it refuses all of them, the message stays open as not sent; otherwise a warning names the refused ones (#1123)
  • Composer: The message body stays reachable in short reading panes, such as the bottom reading pane on a laptop (#1114)
  • Composer: Pasted plain text keeps its blank lines
  • Push: A notification link waits for a login that is still reconnecting instead of reporting the account as signed out, opens the folder of the right account, and no longer pulls you away from something you opened in the meantime (#1131, thanks @lucamzanon)
  • Push: A browser subscribed with another VAPID key resubscribes on its own, and Firefox can turn push on again when it cannot read its old subscription (#1121, thanks @shukiv)
  • Calendar: Dragged events no longer disappear: all-day events moved in the month view keep their start, and occurrences of recurring events with a UTC start, as in Google Calendar exports, no longer shift by the time-zone offset (#1119)
  • Calendar: A failed calendar fetch no longer hides every calendar or leaves only the birthday calendar selected
  • Calendar: The all-day area of the week view is sized from the visible week, stacks each day's tasks under its all-day events, and collapses to three rows with a toggle (#1122, thanks @sanitz)
  • Calendar: The Save button shows while an event is saving, and a save refused for its length says so (#921, thanks @texchi2)
  • Calendar: Invitations no longer carry blank participant names or an empty description (#748, thanks @lucletoffe)
  • Files: Files shared with you open and save in the office editor (#1094)
  • Files: Office editing works behind a reverse proxy at a sub-path (NEXT_PUBLIC_BASE_PATH) (#1101, thanks @dealerweb)
  • Accounts: Adding a sixth account through server-side SSO no longer overwrites the first account's sign-in
  • Mobile app: The app's "Sign in via webmail" keeps working past the first token expiry when the webmail uses a confidential OAuth client or an identity provider on another host
  • Admin: Admin sign-in works over plain HTTP. The admin cookie's Secure flag follows the request, or COOKIE_SECURE when it is set (#1063, thanks @lucamzanon)
  • Admin: The OAuth scope fields show the actual default scopes, which do not include offline_access (#1126)
  • Lite: SSO sessions survive a page reload with identity providers such as Rauthy that refuse an early token refresh (#552)
  • UI: The app retries loading its configuration after a timeout or a failed request instead of staying broken (#1112, thanks @theLucius7)
  • Docker: The image builds from a remote Git context (#1118)

  •  

2026-09-30

[BlueskyBridge] fix a TypeError on null for starter pack author havin…

  •  

v5.56.0

5.56.0 (2026-09-30)

πŸš€ New feature

  • admin: record admin account and password actions in audit logs (#27748)
  • admin: audit webhook create, update and delete (#27779)
  • strapi: compile Tailwind for the admin panel from one host stylesheet (#27550)

πŸ”₯ Bug fix

  • update create edit e2e test (#27751)
  • admin: build window.strapi before mount and type the project-type contract (#27683)
  • admin: reopen button on dismissed trial banner overlays page controls (#27777)
  • content-manager: create-relation option offered for relations targeting a Single Type (82a2ecb2dd)
  • content-manager: hide create-relation option for Single Type targets instead of disabling it (89b1efaeef)
  • content-manager: cannot re-assign a relation still present on the published version (#27602)
  • content-manager: relation-on-the-fly modal affects the background entry (584aa7b82a)
  • content-manager: nested relation-on-the-fly connects are lost on navigation (9c13d85f59)
  • content-type-builder: clear stale folder field in the edit modal (#27770)
  • core/core: correct "recieve" typo in content-structure service comment (#27825)
  • upload: folder deletion removes assets without permission (#27654)

πŸ“š Documentation Changes

  • fix typos across documentation pages (#27773)
  • point RFC contributions to GitHub Discussions (#27746)

βš™οΈ Chore

  • release v5.55.0 update develop (a82c2d8bab)
  • release v5.55.1 update develop (7a69d80b15)
  • add test:ts:back to packages with unchecked server code (#27811)
  • deps: drop React 17 from peer dependency ranges (#26194)
  • deps: bump js-yaml from 3.15.1 to 3.15.2 (#27516)
  • deps: bump fast-uri from 3.1.5 to 3.1.8 (#27808)
  • deps: bump postcss-selector-parser from 7.1.1 to 7.1.6 (#27541)
  • deps: bump baseline-browser-mapping from 2.10.8 to 2.11.26 (#27809)
  • deps: bump browserslist from 4.28.1 to 4.28.7 (#27531)
  • deps: bump qs from 6.15.3 to 6.16.0 (#27532)
  • deps: bump mysql2 from 3.20.0 to 3.23.1 (#27538)
  • deps: bump react-router-dom from 6.30.4 to 6.30.6 (#27586)
  • deps: bump sharp from 0.35.3 to 0.35.4 (#27600)
  • deps: bump brace-expansion from 1.1.18 to 1.1.21 (#27840)
  • deps: bump browserslist from 4.28.7 to 4.28.8 (#27838)
  • deps: bump undici from 6.28.1 to 6.29.0 (#27839)
  • deps: align react-router-dom in app-template (#27858)
  • tooling: make jest lcov paths repo-relative for Sonar (#27763)

πŸ’… Enhancement

  • ci: require an explicit QA label to merge (#27464)
  • upload: support custom AI providers for metadata generation (#27684)

❀️ Thank You

  •  

Release 2026.09.29

Docker Images

Docker images have been built and pushed:

Docker Hub:

  • alexta69/metube:latest
  • alexta69/metube:2026.09.29

GitHub Container Registry:

  • ghcr.io/alexta69/metube:latest
  • ghcr.io/alexta69/metube:2026.09.29

Changes

  • fix: apply the connect-time address guard to playlist/channel metadata files (a389660)

  •  

BookStack v26.09.1

Links

Full List of Changes

This release contains the following fixes and changes:

  • Updated audit log to use the configured display timezone. Thanks to @assyrus-favolo. (#6170)
  • Updated translations with latest changes from Crowdin. (#6229)
  • Updated ZIP import handling to verify the actual uncompressed size before extraction.
  • Updated PHP package versions.
  • Fixed page permissions not being regenerated on chapter promotion. (#6226)
  • Fixed API attachment list endpoint showing attachments for pages in the recycle bin. (#6194)

Thanks to ma4ter (GitHub) for responsibly reporting the ZIP import scenario.

  •  
❌