core: attach badge proofs to files over size limit (#7455)

* core: attach badge proofs to files over size limit

* types

* more types

* implement file badge proofs

* tests

* move file limits to config, add tests

* more tests, work correctly in "send as group" case

* fix races in tests

* group badge tests

* query plans

* add history support, fixes

* simplify

* refactor

* refactor

* type

* restructure schema for proofs

* rename, refactor

* refactor

* fix, refactor

* refactor

* ui

* comments

* alerts

* update nix, ios library

* updare sharing

* update simplexmq

* update text

* improve messages

* api types

* postgres schema

* fix

* test

* query plans

---------

Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>
This commit is contained in:
Evgeny
2026-09-12 14:33:52 +01:00
committed by GitHub
co-authored by Evgeny @ SimpleX Chat
parent 47d32b674a
commit 5ffbe733a8
53 changed files with 1659 additions and 315 deletions
@@ -488,6 +488,7 @@ class CIFile(TypedDict):
fileStatus: "CIFileStatus"
fileProtocol: "FileProtocol"
fileExpires: NotRequired[str] # ISO-8601 timestamp
fileProhibited: NotRequired["FileProhibited"]
class CIFileStatus_sndStored(TypedDict):
type: Literal["sndStored"]
@@ -1725,6 +1726,11 @@ class FileInvitation(TypedDict):
fileConnReq: NotRequired[str]
fileInline: NotRequired["InlineFileMode"]
fileDescr: NotRequired["FileDescr"]
fileBadge: NotRequired["BadgeProof"]
class FileProhibited(TypedDict):
maxSize: int # int64
badgeStatus: NotRequired["BadgeStatus"]
FileProtocol = Literal["SMP", "XFTP", "LOCAL"]
@@ -2670,6 +2676,7 @@ class RcvFileTransfer(TypedDict):
fileId: int # int64
xftpRcvFile: NotRequired["XFTPRcvFile"]
fileInvitation: "FileInvitation"
fileProhibited: NotRequired["FileProhibited"]
fileStatus: "RcvFileStatus"
fileType: "FileType"
rcvFileInline: NotRequired["InlineFileMode"]