Skip to content

[pull] main from appwrite:main - #269

Merged
pull[bot] merged 648 commits into
djacidfx:mainfrom
appwrite:main
Sep 29, 2026
Merged

pull[bot] merged 648 commits into
djacidfx:mainfrom
appwrite:main

Conversation

@pull

@pull pull Bot commented Sep 29, 2026 •

Copy link
Copy Markdown

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

abnegate and others added 30 commits January 15, 2025 15:36
Feat: Implement AppwriteTablesDB adapter
HarshMN2345 and others added 27 commits September 29, 2026 16:11
docs(flutter): explain that native OAuth2 must use the default redirect
Keep the pending document when the joined file could not be removed after an unclean scan, report a failed document delete, and have Local::abort() succeed only when the joined file no longer exists.
A CreateMultipartUpload or conditional PUT answered with InternalError, or dropped mid-flight, may already have been applied: replaying the first can orphan an upload, the second reports a false precondition failure. Retry those only when the request was rejected (throttled or never sent). Also recognise Swoole's refused connection.
…-realtime

Notify related documents when deleting two-way relationships
Completions are now retried after a timeout, so a copy whose first completion landed can get NoSuchUpload on the replay. Treat it as success when the target exists, as finalize() already does, instead of aborting and reporting failure.
…eletes

An existing target made NoSuchUpload look like a landed copy, so move() could delete its source for a copy that never completed; accept it only when the target's ETag is the multipart ETag of these parts. Batch deletes (POST ?delete) were replayable after an ambiguous outcome and could remove an object written in between; CompleteMultipartUpload is now the only POST replayed.
…rent-resolution

fix: resolve the current session under JWT auth
The MQTT payload delivered to clients carried no campaign id, so a client
could not dedup a message received over another channel (e.g. APNs in the
background). Add messageId to buildPayload()'s envelope; it was already the
ledger's dedup key.
…its ETag format

The multipart ETag formula is AWS's and other S3-compatible providers may not follow it, which turned a landed copy back into a reported failure. Record the target's ETag before the copy and accept NoSuchUpload on the completion only when the target has since changed to an object of the source's size.
The unit test only checked the payload recorded by a fake broker. Assert
messageId in the payload delivered to the live MQTT subscriber too, so a
regression dropping the campaign id from the wire is caught.
…able

fix(storage): clean up uploads when the antivirus scan cannot run
fix(locale): fix typos in the Arabic recovery email
Nothing distinguishes a copy whose replayed completion finds the upload gone from one that was aborted or overwritten; every inference tried could report a false success, letting move() delete a source that was never copied. Keep copyObject() as on main: repeating a copy is safe, a false success is not.
feat(messaging): include messageId in the Appwrite push payload
fix(teams): allow 81-character roles on team create
feat(messaging): allow filtering messages by user and target
…-advisory

fix(queue): dead-letter a message whose every attempt died, without the advisory
fix(storage): retry S3 internal errors and replayable transport failures
@pull pull Bot locked and limited conversation to collaborators Sep 29, 2026
@pull pull Bot added the ⤵️ pull label Sep 29, 2026
@pull
pull Bot merged commit 5c1bf95 into djacidfx:main Sep 29, 2026
0 of 7 checks passed
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.