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:
shum
2026-06-23 12:28:56 +00:00
191 changed files with 11177 additions and 1653 deletions
@@ -1,6 +1,6 @@
{
"name": "@simplex-chat/types",
"version": "0.8.0",
"version": "0.10.0",
"description": "TypeScript types for SimpleX Chat bot libraries",
"main": "dist/index.js",
"types": "dist/index.d.ts",
@@ -193,6 +193,33 @@ export interface AutoAccept {
acceptIncognito: boolean
}
export interface BadgeInfo {
badgeType: BadgeType
badgeExpiry?: string // ISO-8601 timestamp
badgeExtra: string
}
export interface BadgeProof {
badgeKeyIdx: number // int
presHeader: string
proof: string
badgeInfo: BadgeInfo
}
export enum BadgeStatus {
Active = "active",
Expired = "expired",
ExpiredOld = "expiredOld",
Failed = "failed",
UnknownKey = "unknownKey",
}
export enum BadgeType {
Supporter = "supporter",
Legend = "legend",
Investor = "investor",
}
export interface BlockingInfo {
reason: BlockingReason
notice?: ClientNotice
@@ -2083,6 +2110,7 @@ export interface ContactShortLinkData {
profile: Profile
message?: MsgContent
business: boolean
localBadge?: LocalBadge
}
export enum ContactStatus {
@@ -2393,6 +2421,11 @@ export interface FileTransferMeta {
cancelled: boolean
}
export enum FileType {
Normal = "normal",
Roster = "roster",
}
export type Format =
| Format.Bold
| Format.Italic
@@ -2623,6 +2656,7 @@ export interface GroupInfo {
uiThemes?: UIThemeEntityOverrides
customData?: object
groupSummary: GroupSummary
rosterVersion?: number // int64
membersRequireAttention: number // int
viaGroupLinkUri?: string
groupKeys?: GroupKeys
@@ -2989,6 +3023,11 @@ export interface LinkPreview {
content?: LinkContent
}
export interface LocalBadge {
badge: BadgeInfo
status: BadgeStatus
}
export interface LocalProfile {
profileId: number // int64
displayName: string
@@ -2999,6 +3038,7 @@ export interface LocalProfile {
simplexName?: SimplexNameInfo
preferences?: Preferences
peerType?: ChatPeerType
localBadge?: LocalBadge
localAlias: string
}
@@ -3382,6 +3422,7 @@ export interface Profile {
simplexName?: SimplexNameInfo
preferences?: Preferences
peerType?: ChatPeerType
badge?: BadgeProof
}
export type ProxyClientError =
@@ -3688,6 +3729,7 @@ export interface RcvFileTransfer {
xftpRcvFile?: XFTPRcvFile
fileInvitation: FileInvitation
fileStatus: RcvFileStatus
fileType: FileType
rcvFileInline?: InlineFileMode
senderDisplayName: string
chunkSize: number // int64
@@ -3859,6 +3901,7 @@ export enum RelayStatus {
New = "new",
Invited = "invited",
Accepted = "accepted",
AcknowledgedRoster = "acknowledgedRoster",
Active = "active",
Inactive = "inactive",
Rejected = "rejected",
@@ -4966,7 +5009,7 @@ export interface UserContactRequest {
cReqChatVRange: VersionRange
localDisplayName: string
profileId: number // int64
profile: Profile
profile: LocalProfile
createdAt: string // ISO-8601 timestamp
updatedAt: string // ISO-8601 timestamp
xContactId?: string