Release 2026.09.23
Docker Images
Docker images have been built and pushed:
Docker Hub:
alexta69/metube:latestalexta69/metube:2026.09.23
GitHub Container Registry:
ghcr.io/alexta69/metube:latestghcr.io/alexta69/metube:2026.09.23
Changes
Docker images have been built and pushed:
Docker Hub:
alexta69/metube:latestalexta69/metube:2026.09.23GitHub Container Registry:
ghcr.io/alexta69/metube:latestghcr.io/alexta69/metube:2026.09.23
Updated MapLibre GL JS from 1.15.3 to 6.9.0 (#28216)
The map layout and the geometry interface now require WebGL2, which MapLibre has mandated since v3. Browsers that only support WebGL1, chiefly Safari 14 and earlier and older Android devices, will no longer render maps.
Dragging with a pointer or a mouse wheel keeps the hovered item popup pinned to the cursor as before. Touch drags no longer reposition it, since the underlying touch event carries no cursor coordinates.
Updated Unhead from 1.11.20 to 3.4.1 (#28248)
@directus/themes now requires @unhead/vue 3.x as a peer dependency. Projects that pair it with their own Unhead instance need to upgrade and follow the v2 and v3 migration guides.
Updated outdated type definitions for directus_comments, directus_flows, directus_operations, directus_presets, directus_roles, and directus_versions (#27956)
The following fields are now correctly marked as nullable:
@directus/types: Comment.user_created, Comment.user_updated, FlowRaw.user_created, OperationRaw.options, OperationRaw.user_created, Preset.collection, Role.description, and ContentVersion.hash@directus/sdk: DirectusRole.parent and DirectusVersion.hashUpdated outdated type definitions for directus_relations, directus_policies, directus_shares, directus_access, directus_comments, and directus_versions (#27970)
Breaking changes in @directus/sdk:
DirectusRelation.meta and DirectusRelation.schema are now nullableDirectusPolicy.ip_access and DirectusRelation.meta.one_allowed_collections are now correctly typed as string[]Breaking changes in @directus/types:
Policy.enforce_tfa is no longer nullableShare.name, role, password, user_created, date_created and times_used are now nullableFixed read permissions not enforced when resolving item keys for updateByQuery and deleteByQuery (#28143)
Update/delete by query now resolves the affected items with the read permissions enforced:
Added native mailtrap email transport support via EMAIL_TRANSPORT=mailtrap (#27873)
The transport is configured through the following environment variables:
EMAIL_MAILTRAP_TOKEN β an API token from https://mailtrap.io/api-tokens. Required.
EMAIL_MAILTRAP_SANDBOX β send to the testing inbox instead of real recipients.
EMAIL_MAILTRAP_TEST_INBOX_ID β which testing inbox to send to. Required in sandbox mode.
EMAIL_MAILTRAP_BULK β send via the bulk stream. Cannot be combined with sandbox mode.
@directus/app
@directus/themes
@directus/types
@directus/sdk
mailtrap email transport support via EMAIL_TRANSPORT=mailtrap (#27873 by @tsokolovs)mailtrap email transport support via EMAIL_TRANSPORT=mailtrap (#27873 by @tsokolovs)directus_comments, directus_flows, directus_operations, directus_presets, directus_roles, and directus_versions (#27956 by @kheiner)directus_relations, directus_policies, directus_shares, directus_access, directus_comments, and directus_versions (#27970 by @kheiner)COLLECTION_INACTIVE error (#27792 by @br41nslug)lodash with lodash-es in the Studio (#28245 by @Nitwel)directus_comments, directus_flows, directus_operations, directus_presets, directus_roles, and directus_versions (#27956 by @kheiner)directus_relations, directus_policies, directus_shares, directus_access, directus_comments, and directus_versions (#27970 by @kheiner)COLLECTION_INACTIVE error (#27792 by @br41nslug)updateByQuery and deleteByQuery (#28143 by @br41nslug)json() function returning quoted strings for scalar string values (#28264 by @wofiporia)FilesService.uploadOne to prevent client payloads from overwriting system fields (e.g., uploaded_by, created_on etc) (#28208 by @br41nslug)year() function on Oracle returning the ISO week-numbering year instead of the calendar year, and made the Oracle date part functions (year, month, week, day, weekday, hour, minute, second) return numbers instead of zero padded strings (#28257 by @galshir)uploaded_on not being set for TUS uploads (#28043 by @kheiner)directus_comments, directus_flows, directus_operations, directus_presets, directus_roles, and directus_versions (#27956 by @kheiner)COLLECTION_INACTIVE error (#27792 by @br41nslug)directus_comments, directus_flows, directus_operations, directus_presets, directus_roles, and directus_versions (#27956 by @kheiner)readRelationByCollection, createField, deleteCollection, utilsExport, utilsImport, utilitySort, triggerFlow, and readShareInfo (#27970 by @kheiner)directus_users, directus_settings, directus_deployment_runs (#28129 by @kheiner)COLLECTION_INACTIVE error (#27792 by @br41nslug)COLLECTION_INACTIVE error (#27792 by @br41nslug)COLLECTION_INACTIVE error (#27792 by @br41nslug)setMax values as updates (#28172 by @jashkarangiya)setMax. (#28194 by @jashkarangiya)@directus/app@18.0.0@directus/api@39.2.0@directus/cli@12.3.0@directus/composables@11.6.3create-directus-extension@12.1.5@directus/env@6.3.0@directus/errors@2.5.2@directus/extensions@4.0.5@directus/extensions-registry@4.0.4@directus/extensions-sdk@18.0.5@directus/memory@4.0.5@directus/pressure@4.0.5@directus/release-notes-generator@3.0.2@directus/schema-builder@1.0.3@directus/specs@15.2.0@directus/storage-driver-azure@13.0.5@directus/storage-driver-cloudinary@14.0.2@directus/storage-driver-gcs@13.0.5@directus/storage-driver-s3@14.0.2@directus/storage-driver-supabase@5.0.2@directus/system-data@4.7.0@directus/themes@3.0.0@directus/types@17.0.0@directus/utils@13.5.5@directus/validation@3.0.5@directus/sdk@26.0.0
If you are upgrading from v0.16.x, replace the binary (or run docker pull). If you are upgrading from v0.15.x and below, please read the upgrading documentation for more information on how to upgrade from previous versions.
bit_and function.RCPT TO and then rejected at local delivery with 550 5.5.0 Mailbox not found.spf elements per record and the version element of a DMARC aggregate report is written as 1 instead of 1.0.addr-type in Original-Recipient (rfc822;rfc822;user@example.org).TOP msg n counts the n lines from the first byte of the message instead of from the first byte of the body.. is not byte-stuffed.envelope "orcpt" yields the bare address for an ORCPT supplied over SMTP. It now carries the addr-type prefix in every case, as required by RFC 6009._acme-challenge TXT records published for a DNS-01 authorization are never removed.hickory-resolver race that cancels the TCP retry when two nameservers return a truncated response in parallel.email, preferred_username or upn claim are always authenticated against the default directory.failOnTimeout is disabled, so an index whose batches take longer than pollInterval x maxRetries never completes an indexing task and resubmits the same batch indefinitely.Application offline.INCR and EXPIRE as a MULTI/EXEC transaction, whose MOVED redirects collapse into a single EXECABORT that never refreshes the slot map.PING.
General
RTSP
Quantization < 127RTMP
HLS
WebRTC
Dependencies
Binaries are compiled from source code by the Release workflow, which is a fully-visible process that prevents any change or external interference in produced artifacts.
Checksums of binaries are also published in a public blockchain by using GitHub Attestations, and they can be verified by running:
ls mediamtx_* | xargs -L1 gh attestation verify --repo bluenviron/mediamtx
You can verify checksums of binaries by downloading checksums.sha256 and running:
cat checksums.sha256 | grep "$(ls mediamtx_*)" | sha256sum --check
Docker images have been built and pushed:
Docker Hub:
alexta69/metube:latestalexta69/metube:2026.09.20GitHub Container Registry:
ghcr.io/alexta69/metube:latestghcr.io/alexta69/metube:2026.09.20
Full Changelog: v0.8.5...v0.8.6
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
$β¦$ (#5446) by @Jocs in #5449Full Changelog: v0.20.0-rc.4...v0.20.0-rc.5
Device addresses can now be configured using a fully qualified domain name instead of an IPv4 address. UpSnap resolves regular hostnames through DNS and .local hostnames through mDNS before pinging, waking, shutting down, or putting a device to sleep.
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
Full Changelog: v0.8.4...v0.8.5
Docker images have been built and pushed:
Docker Hub:
alexta69/metube:latestalexta69/metube:2026.09.15GitHub Container Registry:
ghcr.io/alexta69/metube:latestghcr.io/alexta69/metube:2026.09.15
Full Changelog: v0.8.3...v0.8.4
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.2...v0.20.0-rc.3
If you are upgrading from v0.16.x, replace the binary (or run docker pull). If you are upgrading from v0.15.x and below, please read the upgrading documentation for more information on how to upgrade from previous versions.
PROPFIND responses do not declare the namespace of every requested property on the DAV:multistatus element.STARTTLS is discarded once the TLS handshake completes, as required by RFC 3207.match expressions evaluate their if/then conditions.fail instead of none in logs.temperror instead of fail.p tag is only applied, as p=none, when it contains a rua tag, even if it declares sp or np.Application is discarded when its resourceUrl changes or the record is deleted, so the next unpack fetches the new resource.. to MX record hostnames.fileinto by a user script are treated as ham and are no longer moved to Junk when classified as spam.SELECT, EXAMINE and STATUS on a shared mailbox require the r (read) right.AUTHENTICATE is refused on clear-text connections unless allowPlainTextAuth is enabled, and the greeting and CAPABILITY response advertise LOGINDISABLED instead of the AUTH= mechanisms in that case.STARTTLS or STLS are discarded once the TLS handshake completes.STARTTLS, are aborted after the listener's tlsTimeout, releasing the connection slot.encryptionKey or HMAC signatureKey cannot be read, instead of an empty key.{local} and {domain} filter placeholders are escaped.CalendarEvent/set stores useDefaultAlerts per user, and CalendarEvent/get returns false when it was never set.CalendarEvent/get returns null for baseEventId unless the id is a synthetic recurrence instance.CalendarEvent/get returns null for requested recurrenceRule and recurrenceOverrides properties on synthetic recurrence instances.CalendarEvent/get and ContactCard/get return only id when the properties argument is an empty list, instead of every property.
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.1...v0.20.0-rc.2
Logs are merged with PocketBase logs and not a seperate console-only feature anymore.
/logs page backed by PocketBase built-in logs.UPSNAP_LOG_LEVEL: DEBUG, INFO, WARN, ERROR, OFF.
If you are upgrading from v0.16.x, replace the binary (or run docker pull). If you are upgrading from v0.15.x and below, please read the upgrading documentation for more information on how to upgrade from previous versions.
SieveUserInterpreter.dkimSignDomain setting, which defaults to the account's own domain.CalendarEvent/set requests that ask for scheduling messages are rejected with a forbidden error when the account cannot send them.Calendar/get and AddressBook/get return every property when the properties argument is omitted or null.ping events advertise the interval in seconds rather than milliseconds.STATUS or FETCH batch receives its tagged completion, instead of the first failing command dropping the responses for all commands queued behind it.DAV:quota-available-bytes.METHOD:REQUEST carrying the RECURRENCE-ID instead of a METHOD:ADD.fileinto :specialuse and specialuse_exists accept special-use attributes in the \Trash form.[::]) fall back to IPv4 when socket creation fails with EPROTONOSUPPORT.
PathNavigator and PathConnection for exploring the footpath network as a graph.Release created in https://github.com/OpenRCT2/OpenRCT2/actions/runs/34024796628
SHA256 checksums:
f5d8aac771931b5cf683a34de92f6fc34dc5460fb6c606f987a4000d4016ed79 ./OpenRCT2-v0.5.5-Linux-noble-x86_64.tar.gz
23b50a9f8a6fae33e9c86c3638b0d7575a582ff8bee1e0d20bc791bd1759e1c4 ./OpenRCT2-v0.5.5-windows-symbols-x64.zip
790068a44ee461dd80f0cad22090d2cd2bda58ba1270746285fa912bdcf55e36 ./OpenRCT2-v0.5.5-Linux-resolute-x86_64.tar.gz
db233a2cde7861057f5d70982cb7299066222888f7c796540085ee4eb9a0a7a0 ./OpenRCT2-v0.5.5-Linux-bookworm-x86_64.tar.gz
56c8bade89ca207be137da7853635a572ac9bde0c8fe024371859539ed584606 ./OpenRCT2-v0.5.5-sha256sums.txt
ee677d5d3db4f62213634e21950406b92f23b9391b10485b2d2b6cac779efa55 ./OpenRCT2-v0.5.5-windows-symbols-win32.zip
30fc440e7296f90e90d397e9dc123141a52e7d597c92aef5eddddc4dcadff24c ./OpenRCT2-v0.5.5-windows-symbols-arm64.zip
6810120d5b7409d1a6f8622a48306f31aeede203bfc51b96b3336ba7cb9faf90 ./OpenRCT2-v0.5.5-windows-portable-x64.zip
47ad04a020dde36265d90854d13f61377ce376bcec2c77b0e191231a10a45eca ./OpenRCT2-v0.5.5-windows-installer-arm64.exe
0c69b2cc7f278854fe1ba24ba70e03313e83ebc4c80ef4e979c44108bfc1a12a ./OpenRCT2-v0.5.5-windows-portable-arm64.zip
f5922dd3df9985ef75eb984537b9205bc5b8c795711141a20f2b3d04cb3cd4b3 ./OpenRCT2-v0.5.5-windows-portable-win32.zip
c36b216d3378c9c29a36e29bfc498a7ed93357a48ec06f61f7f658489dc9eb01 ./OpenRCT2-v0.5.5-windows-installer-x64.exe
f04c1c0ba160671389fabe3c09601abec8180d8615a34a57d5c38bec883100ec ./OpenRCT2-v0.5.5-windows-installer-win32.exe
f3debb61bd9b6cc4c85e4ca4f17c46f76834a1e89f1faac2b694e0a563d9ad7c ./OpenRCT2-v0.5.5-linux-x86_64.AppImage
fe2117cd916e01e7544964cb5b39b94a31a2380126d09fa5d5995cc9e2224d3a ./OpenRCT2-v0.5.5-Linux-trixie-x86_64.tar.gz
d02f0a3054106e60186805268828cc80068485ffa324aca7363ae1d69081fb0d ./OpenRCT2-v0.5.5-macos-universal.zip
8dcabe11c87a5ea8de00a7e083ee3f54bd37239def6cb6f14d2b192492707111 ./OpenRCT2-v0.5.5-android.apk
Media-over-QUIC
API
General
alwaysAvailableRecorded parameter that controls whether recording happens during offline periods for always-available paths. When set to false, recording only starts when a real source is connected.API
Media-Over-QUIC
RTSP
RTMP
HLS
WebRTC
RPI Camera
Dependencies
Binaries are compiled from source code by the Release workflow, which is a fully-visible process that prevents any change or external interference in produced artifacts.
Checksums of binaries are also published in a public blockchain by using GitHub Attestations, and they can be verified by running:
ls mediamtx_* | xargs -L1 gh attestation verify --repo bluenviron/mediamtx
You can verify checksums of binaries by downloading checksums.sha256 and running:
cat checksums.sha256 | grep "$(ls mediamtx_*)" | sha256sum --check
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-beta.5...v0.20.0-rc.1
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
c++/h++ as aliases for the cpp code grammar by @Jocs in #4794\% as a comment by @Jocs in #4795Full Changelog: v0.20.0-beta.4...v0.20.0-beta.5
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-beta.3...v0.20.0-beta.4
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-beta.2...v0.20.0-beta.3
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
/ trigger when quick-inserting front matter by @Jocs in #4481_ prefix for private members via lint by @Jocs in #4535Full Changelog: v0.19.0...v0.20.0-beta.2
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.19.0...v0.19.1