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
+74 -1
View File
@@ -10,6 +10,10 @@ This file is generated automatically.
- [AgentCryptoError](#agentcryptoerror)
- [AgentErrorType](#agenterrortype)
- [AutoAccept](#autoaccept)
- [BadgeInfo](#badgeinfo)
- [BadgeProof](#badgeproof)
- [BadgeStatus](#badgestatus)
- [BadgeType](#badgetype)
- [BlockingInfo](#blockinginfo)
- [BlockingReason](#blockingreason)
- [BrokerErrorType](#brokererrortype)
@@ -84,6 +88,7 @@ This file is generated automatically.
- [FileProtocol](#fileprotocol)
- [FileStatus](#filestatus)
- [FileTransferMeta](#filetransfermeta)
- [FileType](#filetype)
- [Format](#format)
- [FormattedText](#formattedtext)
- [FullGroupPreferences](#fullgrouppreferences)
@@ -123,6 +128,7 @@ This file is generated automatically.
- [LinkContent](#linkcontent)
- [LinkOwnerSig](#linkownersig)
- [LinkPreview](#linkpreview)
- [LocalBadge](#localbadge)
- [LocalProfile](#localprofile)
- [MemberCriteria](#membercriteria)
- [MsgChatLink](#msgchatlink)
@@ -359,6 +365,49 @@ INACTIVE:
- acceptIncognito: bool
---
## BadgeInfo
**Record type**:
- badgeType: [BadgeType](#badgetype)
- badgeExpiry: UTCTime?
- badgeExtra: string
---
## BadgeProof
**Record type**:
- badgeKeyIdx: int
- presHeader: string
- proof: string
- badgeInfo: [BadgeInfo](#badgeinfo)
---
## BadgeStatus
**Enum type**:
- "active"
- "expired"
- "expiredOld"
- "failed"
- "unknownKey"
---
## BadgeType
**Enum type**:
- "supporter"
- "legend"
- "investor"
---
## BlockingInfo
@@ -1797,6 +1846,7 @@ ContactViaAddress:
- profile: [Profile](#profile)
- message: [MsgContent](#msgcontent)?
- business: bool
- localBadge: [LocalBadge](#localbadge)?
---
@@ -2089,6 +2139,15 @@ NO_FILE:
- cancelled: bool
---
## FileType
**Enum type**:
- "normal"
- "roster"
---
## Format
@@ -2305,6 +2364,7 @@ MemberSupport:
- uiThemes: [UIThemeEntityOverrides](#uithemeentityoverrides)?
- customData: JSONObject?
- groupSummary: [GroupSummary](#groupsummary)
- rosterVersion: int64?
- membersRequireAttention: int
- viaGroupLinkUri: string?
- groupKeys: [GroupKeys](#groupkeys)?
@@ -2710,6 +2770,15 @@ Unknown:
- content: [LinkContent](#linkcontent)?
---
## LocalBadge
**Record type**:
- badge: [BadgeInfo](#badgeinfo)
- status: [BadgeStatus](#badgestatus)
---
## LocalProfile
@@ -2724,6 +2793,7 @@ Unknown:
- simplexName: [SimplexNameInfo](#simplexnameinfo)?
- preferences: [Preferences](#preferences)?
- peerType: [ChatPeerType](#chatpeertype)?
- localBadge: [LocalBadge](#localbadge)?
- localAlias: string
@@ -3090,6 +3160,7 @@ count=<count>
- simplexName: [SimplexNameInfo](#simplexnameinfo)?
- preferences: [Preferences](#preferences)?
- peerType: [ChatPeerType](#chatpeertype)?
- badge: [BadgeProof](#badgeproof)?
---
@@ -3320,6 +3391,7 @@ Cancelled:
- xftpRcvFile: [XFTPRcvFile](#xftprcvfile)?
- fileInvitation: [FileInvitation](#fileinvitation)
- fileStatus: [RcvFileStatus](#rcvfilestatus)
- fileType: [FileType](#filetype)
- rcvFileInline: [InlineFileMode](#inlinefilemode)?
- senderDisplayName: string
- chunkSize: int64
@@ -3444,6 +3516,7 @@ ParseError:
- "new"
- "invited"
- "accepted"
- "acknowledgedRoster"
- "active"
- "inactive"
- "rejected"
@@ -4275,7 +4348,7 @@ Handshake:
- cReqChatVRange: [VersionRange](#versionrange)
- localDisplayName: string
- profileId: int64
- profile: [Profile](#profile)
- profile: [LocalProfile](#localprofile)
- createdAt: UTCTime
- updatedAt: UTCTime
- xContactId: string?