mirror of
https://github.com/permissionlesstech/bitchat.git
synced 2026-07-25 02:25:20 +00:00
Cut views over to ConversationStore; delete legacy store, bridge, resolver
Feature models observe per-conversation objects directly: PublicChatModel forwards the active Conversation's objectWillChange, PrivateInboxModel republishes only for the selected peer's conversation - background appends no longer invalidate foreground views. LegacyConversationStore, the coalescing bridge, and IdentityResolver are deleted (resolver canonicalization proved display-invisible: nothing enumerates direct conversations, lookups are by exact peer ID, and raw keying is strictly more robust - documented as a design deviation). Selection state moves into the store. ChatViewModel.messages/privateChats survive as derived read views for coordinators that genuinely need them; hot paths use a new store-direct privateMessages(for:) witness. Final numbers vs pre-migration baselines: pipeline.privateIngest 9.7k -> 24.0k msg/s (2.5x) pipeline.publicIngest 6.8k -> 13.7k msg/s (2.0x) delivery updates 38k -> 117-133k/s Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -41,10 +41,7 @@ private func makeMessage(
|
||||
private func makeDirectConversationID(_ suffix: String) -> ConversationID {
|
||||
.direct(PeerHandle(
|
||||
id: "noise:\(suffix)",
|
||||
routingPeerID: PeerID(str: "peer-\(suffix)"),
|
||||
displayName: "peer \(suffix)",
|
||||
noisePublicKeyHex: suffix,
|
||||
nostrPublicKey: nil
|
||||
routingPeerID: PeerID(str: "peer-\(suffix)")
|
||||
))
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user