mirror of
https://github.com/simplex-chat/simplex-chat.git
synced 2026-07-02 02:41:41 +00:00
Merge origin/master into sh/namespace
The names (simplex_name / RSLV) feature and master's badge feature both extended the contact/group profile row layer. Resolution keeps both, with simplex_name ordered last (chronological - it is the newer column): - Profile/LocalProfile gain badge + simplex_name; simplex_name last in the data types, record builds, schema, and SQL row types/SELECTs/INSERTs - SQL row types, SELECTs and INSERT/UPDATE lists carry both badge_* and simplex_name columns (simplex_name after badge) - migration lists ordered by date (master 0601/0602 before names 0603+) - SQLite chat_schema.sql regenerated; Postgres chat_schema.sql hand-merged Verified: lib + test suite build; SchemaDump, Operators, Protocol and direct/group profile round-trip tests pass.
This commit is contained in:
@@ -5,5 +5,5 @@ Bump both together for normal releases. For wrapper-only fixes use a PEP 440
|
||||
post-release: __version__ = "6.5.2.post1", LIBS_VERSION unchanged.
|
||||
"""
|
||||
|
||||
__version__ = "6.5.4" # PEP 440 — read by hatchling for wheel metadata
|
||||
LIBS_VERSION = "6.5.4" # simplex-chat-libs release tag (no 'v' prefix)
|
||||
__version__ = "7.0.0b0" # PEP 440 — read by hatchling for wheel metadata
|
||||
LIBS_VERSION = "7.0.0-beta.0" # simplex-chat-libs release tag (no 'v' prefix)
|
||||
|
||||
@@ -143,6 +143,21 @@ AgentErrorType_Tag = Literal["CMD", "CONN", "NO_USER", "SMP", "NTF", "XFTP", "FI
|
||||
class AutoAccept(TypedDict):
|
||||
acceptIncognito: bool
|
||||
|
||||
class BadgeInfo(TypedDict):
|
||||
badgeType: "BadgeType"
|
||||
badgeExpiry: NotRequired[str] # ISO-8601 timestamp
|
||||
badgeExtra: str
|
||||
|
||||
class BadgeProof(TypedDict):
|
||||
badgeKeyIdx: int # int
|
||||
presHeader: str
|
||||
proof: str
|
||||
badgeInfo: "BadgeInfo"
|
||||
|
||||
BadgeStatus = Literal["active", "expired", "expiredOld", "failed", "unknownKey"]
|
||||
|
||||
BadgeType = Literal["supporter", "legend", "investor"]
|
||||
|
||||
class BlockingInfo(TypedDict):
|
||||
reason: "BlockingReason"
|
||||
notice: NotRequired["ClientNotice"]
|
||||
@@ -1469,6 +1484,7 @@ class ContactShortLinkData(TypedDict):
|
||||
profile: "Profile"
|
||||
message: NotRequired["MsgContent"]
|
||||
business: bool
|
||||
localBadge: NotRequired["LocalBadge"]
|
||||
|
||||
ContactStatus = Literal["active", "deleted", "deletedByUser"]
|
||||
|
||||
@@ -1683,6 +1699,8 @@ class FileTransferMeta(TypedDict):
|
||||
chunkSize: int # int64
|
||||
cancelled: bool
|
||||
|
||||
FileType = Literal["normal", "roster"]
|
||||
|
||||
class Format_bold(TypedDict):
|
||||
type: Literal["bold"]
|
||||
|
||||
@@ -1843,6 +1861,7 @@ class GroupInfo(TypedDict):
|
||||
uiThemes: NotRequired["UIThemeEntityOverrides"]
|
||||
customData: NotRequired[dict[str, object]]
|
||||
groupSummary: "GroupSummary"
|
||||
rosterVersion: NotRequired[int] # int64
|
||||
membersRequireAttention: int # int
|
||||
viaGroupLinkUri: NotRequired[str]
|
||||
groupKeys: NotRequired["GroupKeys"]
|
||||
@@ -2095,6 +2114,10 @@ class LinkPreview(TypedDict):
|
||||
image: str
|
||||
content: NotRequired["LinkContent"]
|
||||
|
||||
class LocalBadge(TypedDict):
|
||||
badge: "BadgeInfo"
|
||||
status: "BadgeStatus"
|
||||
|
||||
class LocalProfile(TypedDict):
|
||||
profileId: int # int64
|
||||
displayName: str
|
||||
@@ -2105,6 +2128,7 @@ class LocalProfile(TypedDict):
|
||||
simplexName: NotRequired["SimplexNameInfo"]
|
||||
preferences: NotRequired["Preferences"]
|
||||
peerType: NotRequired["ChatPeerType"]
|
||||
localBadge: NotRequired["LocalBadge"]
|
||||
localAlias: str
|
||||
|
||||
MemberCriteria = Literal["all"]
|
||||
@@ -2379,6 +2403,7 @@ class Profile(TypedDict):
|
||||
simplexName: NotRequired["SimplexNameInfo"]
|
||||
preferences: NotRequired["Preferences"]
|
||||
peerType: NotRequired["ChatPeerType"]
|
||||
badge: NotRequired["BadgeProof"]
|
||||
|
||||
class ProxyClientError_protocolError(TypedDict):
|
||||
type: Literal["protocolError"]
|
||||
@@ -2592,6 +2617,7 @@ class RcvFileTransfer(TypedDict):
|
||||
xftpRcvFile: NotRequired["XFTPRcvFile"]
|
||||
fileInvitation: "FileInvitation"
|
||||
fileStatus: "RcvFileStatus"
|
||||
fileType: "FileType"
|
||||
rcvFileInline: NotRequired["InlineFileMode"]
|
||||
senderDisplayName: str
|
||||
chunkSize: int # int64
|
||||
@@ -2709,7 +2735,7 @@ class RelayProfile(TypedDict):
|
||||
shortDescr: NotRequired[str]
|
||||
image: NotRequired[str]
|
||||
|
||||
RelayStatus = Literal["new", "invited", "accepted", "active", "inactive", "rejected"]
|
||||
RelayStatus = Literal["new", "invited", "accepted", "acknowledgedRoster", "active", "inactive", "rejected"]
|
||||
|
||||
ReportReason = Literal["spam", "content", "community", "profile", "other"]
|
||||
|
||||
@@ -3493,7 +3519,7 @@ class UserContactRequest(TypedDict):
|
||||
cReqChatVRange: "VersionRange"
|
||||
localDisplayName: str
|
||||
profileId: int # int64
|
||||
profile: "Profile"
|
||||
profile: "LocalProfile"
|
||||
createdAt: str # ISO-8601 timestamp
|
||||
updatedAt: str # ISO-8601 timestamp
|
||||
xContactId: NotRequired[str]
|
||||
|
||||
Reference in New Issue
Block a user