Telegram-iOS/submodules/TelegramUI/Sources
isaac 69bfc65da7 Postbox refactor waves 138–276: 168-commit squash
Consolidates 137 wave commits + 31 supporting commits (CLAUDE.md bump,
typealias additions, AnyObject→EngineMedia restoration) into one squashed
commit. Migrates dozens of consumer-side public APIs, struct fields,
protocol methods, and enum payloads from Postbox protocols/structs to
TelegramEngine engine wrappers and typealiases. Drops `import Postbox`
from many files. Adds new TelegramCore typealiases and one
TelegramEngineUnauthorized facade.

Notable changes by category:

**TelegramCore typealias additions** (rule 2 — narrow utility typealiases):
- EngineChatListIndex, EngineTempBoxFile, EngineItemCollectionItemIndex,
  EngineItemCollectionViewEntryIndex, EngineValueBoxEncryptionParameters,
  EngineMessageAndThreadId, EnginePeerStoryStats, EngineMessageHistoryAnchorIndex,
  EngineChatListTotalUnreadStateCategory, EngineChatListTotalUnreadStateStats,
  EnginePeerSummaryCounterTags, EngineChatListTotalUnreadState,
  EngineItemCacheEntryId, EngineHashFunctions,
  EngineCachedMediaResourceRepresentationResult,
  EngineMediaResourceDataFetchResult, EngineMediaResourceDataFetchError,
  EngineMediaResourceStatus, EngineCachedPeerData

**TelegramCore engine extensions/forwarders**:
- EngineMessage.engineMedia, EngineMessage.enginePeers,
  EngineMessage.adAttribute, EngineMessage.effectivelyIncoming
- engineFileSize forwarder
- TelegramEngine.Resources.clearCachedMediaResources(mediaResourceIds: Set<EngineMediaResource.Id>)
- TelegramEngine.Resources.fetchStatus(id:resourceSize:)
- TelegramEngineUnauthorized.UnauthorizedResources facade with storeResourceData

**Public API/struct migrations to engine types**:
- ChatAvailableMessageActions.banAuthor/banAuthors → EnginePeer?/[EnginePeer]
- WebSessionsContextState.peers → [EnginePeer.Id: EnginePeer]
- CacheUsageStats.peers → [EnginePeer.Id: EnginePeer]
- PeerCommand.peer → EnginePeer
- PeerInfoControllerMode.calls(messages:) → [EngineMessage]
- CallControllerNodeProtocol.updatePeer → EnginePeer params
- ChatHistoryListNode.messageInCurrentHistoryView (and 4 variants) → EngineMessage?
- ChatHistorySearchContainerNode.messageForGallery → EngineMessage?
- PeerInfoPaneNode.findLoadedMessage / ensureMessageIsVisible /
  transitionNodeForGallery → engine-typed
- GalleryHiddenMediaTarget.getTransitionInfo /
  GalleryHiddenMediaManager.findTarget → engine-typed
- ChatPanelInterfaceInteraction.presentReactionDeletionOptions /
  presentBan*MessageOptions → EnginePeer
- DrawingMessageRenderer.messages → [EngineMessage]
- ChatVideoGalleryItemScrubberView.setFetchStatusSignal →
  EngineMediaResource.FetchStatus
- ChannelDiscussionGroupActionSheetItem.peer, VoiceChatPeerEntry.peer,
  VoiceChatFullscreenParticipantItem.peer, MediaStreamComponent.chatPeer,
  MediaStreamVideoComponent.callPeer, ChatMessageContactBubbleContentNode.contactPeer,
  ChatMessageForwardInfoNode.peer, ChatMessageCommentFooterContentNode.replyPeers,
  ChatReportPeerTitlePanelNode.peer, ChatMessageActionUrlAuthController.bot,
  PeerMediaCollectionInterfaceState.peer, ChatMessageCallBubbleContentNode.peopleAvatars,
  ChatLoadingNode.renderedPeer (→ EngineRenderedPeer) — all to engine types

**Wave-71-shadow stored-field migrations** (Postbox Peer/Message → Engine wrapper):
- LegacyCallControllerNode.peer
- CallStatusBarNode.currentPeer

**Dead-code / dead-field removals**:
- CallController.peer, CallControllerNodeV2.account,
  ContactMultiselectionController PeerNameIndex fields,
  preparedChatListNodeViewTransition account: Account param,
  FetchResource.swift entirely (unused function)

**Module-level Postbox import drops**: 30+ files including TelegramRootController,
EditStories, GiftViewScreen, AnimatedStickerUtils, FetchPhotoLibraryImageResource,
PeerInfoGiftsPaneNode, PeerInfoPaneContainerNode, PresentAddMembers,
PeerInfoProfileItems, ChatControllerAdminBanUsers, PresentationData typealiases,
DefaultDayPresentationTheme, ChatListViewTransition, GalleryHiddenMediaManager,
RecentSessionsController, GifContext, AuthorizationSequenceController,
PeerInfoHeaderEditingContentNode, PeerInfoHeaderNode,
PeerAllowedReactionListController, CallControllerNodeV2, and 6 PeerInfo pane files.

**AnyObject restoration**: rule 8 added (never substitute Postbox protocols
with Any/AnyObject) — undid previous AnyObject substitutions in waves 141/143
back to EngineMedia.

Doc maintenance: CLAUDE.md updated to reflect new typealiases and forwarders.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-05 00:44:27 +02:00
..
Chat Postbox refactor waves 138–276: 168-commit squash 2026-05-05 00:44:27 +02:00
AccountContext.swift Postbox -> TelegramEngine waves 27-36 2026-04-24 11:24:13 +04:00
AppDelegate.swift Fix build 2026-04-23 00:07:09 +02:00
ApplicationContext.swift Postbox -> TelegramEngine waves 27-36 2026-04-24 11:24:13 +04:00
ApplicationShortcutItem.swift
AudioRecordningToneData.swift
ChatBusinessLinkTitlePanelNode.swift Refactoring 2026-04-03 15:50:39 +08:00
ChatController.swift Postbox refactor waves 138–276: 168-commit squash 2026-05-05 00:44:27 +02:00
ChatControllerAdminBanUsers.swift Postbox refactor waves 138–276: 168-commit squash 2026-05-05 00:44:27 +02:00
ChatControllerContentData.swift Update localization 2026-04-29 21:23:36 +04:00
ChatControllerDisplayBusinessBotMessageTooltip.swift Postbox -> TelegramEngine wave 6: unused import Postbox batch sweep 2026-04-19 23:46:13 +02:00
ChatControllerDisplayDiceTooltip.swift Postbox -> TelegramEngine wave 6: unused import Postbox batch sweep 2026-04-19 23:46:13 +02:00
ChatControllerEditChat.swift Postbox -> TelegramEngine wave 6: unused import Postbox batch sweep 2026-04-19 23:46:13 +02:00
ChatControllerForwardMessages.swift Various improvements 2026-04-24 03:16:14 +02:00
ChatControllerKeyShortcuts.swift Postbox -> TelegramEngine wave 6: unused import Postbox batch sweep 2026-04-19 23:46:13 +02:00
ChatControllerNode.swift Postbox refactor waves 138–276: 168-commit squash 2026-05-05 00:44:27 +02:00
ChatControllerOpenAttachmentMenu.swift Postbox refactor waves 138–276: 168-commit squash 2026-05-05 00:44:27 +02:00
ChatControllerOpenCalendarSearch.swift Postbox -> TelegramEngine waves 107-137 (squashed) 2026-05-03 10:28:50 +02:00
ChatControllerOpenMessageReactionContextMenu.swift Postbox refactor waves 138–276: 168-commit squash 2026-05-05 00:44:27 +02:00
ChatControllerOpenMessageReplies.swift Postbox -> TelegramEngine waves 107-137 (squashed) 2026-05-03 10:28:50 +02:00
ChatControllerOpenMessageShareMenu.swift Various improvements 2026-04-22 23:03:51 +02:00
ChatControllerRemoveAd.swift Postbox -> TelegramEngine wave 6: unused import Postbox batch sweep 2026-04-19 23:46:13 +02:00
ChatControllerScrollToPointInHistory.swift Postbox -> TelegramEngine waves 107-137 (squashed) 2026-05-03 10:28:50 +02:00
ChatControllerTitlePanelNodeContainer.swift
ChatControllerUpdateSearch.swift Postbox -> TelegramEngine waves 107-137 (squashed) 2026-05-03 10:28:50 +02:00
ChatHistoryEntriesForView.swift Postbox refactor waves 138–276: 168-commit squash 2026-05-05 00:44:27 +02:00
ChatHistoryListNode.swift Postbox refactor waves 138–276: 168-commit squash 2026-05-05 00:44:27 +02:00
ChatHistoryNavigationButtonNode.swift Unseen polls 2026-03-27 18:30:01 +08:00
ChatHistoryNavigationButtons.swift Update 2026-03-27 19:23:09 +08:00
ChatHistoryNavigationStack.swift Postbox -> TelegramEngine waves 107-137 (squashed) 2026-05-03 10:28:50 +02:00
ChatHistoryNode.swift Postbox refactor waves 138–276: 168-commit squash 2026-05-05 00:44:27 +02:00
ChatHistoryViewForLocation.swift Various improvements 2026-04-07 16:47:08 +02:00
ChatInterfaceInputContextPanels.swift Various improvements 2026-04-24 03:16:14 +02:00
ChatInterfaceInputContexts.swift Postbox -> TelegramEngine waves 37-43 + wave 44 design/plan (squashed) 2026-04-24 23:19:43 +04:00
ChatInterfaceInputNodes.swift Postbox -> TelegramEngine wave 6: unused import Postbox batch sweep 2026-04-19 23:46:13 +02:00
ChatInterfaceStateAccessoryPanels.swift Various fixes 2026-04-27 03:07:38 +02:00
ChatInterfaceStateContextMenus.swift Postbox refactor waves 138–276: 168-commit squash 2026-05-05 00:44:27 +02:00
ChatInterfaceStateContextQueries.swift Postbox -> TelegramEngine waves 27-36 2026-04-24 11:24:13 +04:00
ChatInterfaceStateInputPanels.swift Disable AI button in secret chats 2026-04-03 13:15:06 +08:00
ChatInterfaceStateNavigationButtons.swift Various fixes 2026-04-28 19:16:08 +02:00
ChatInterfaceTitlePanelNodes.swift AI editing 2026-03-20 18:23:45 +01:00
ChatInviteRequestsTitlePanelNode.swift Postbox refactor waves 138–276: 168-commit squash 2026-05-05 00:44:27 +02:00
ChatLinkPreview.swift Postbox -> TelegramEngine waves 27-36 2026-04-24 11:24:13 +04:00
ChatManagingBotTitlePanelNode.swift Postbox -> TelegramEngine waves 37-43 + wave 44 design/plan (squashed) 2026-04-24 23:19:43 +04:00
ChatMessageActionSheetController.swift
ChatMessageActionSheetControllerNode.swift
ChatMessageActionUrlAuthController.swift Postbox refactor waves 138–276: 168-commit squash 2026-05-05 00:44:27 +02:00
ChatMessageContextControllerContentSource.swift Postbox refactor waves 138–276: 168-commit squash 2026-05-05 00:44:27 +02:00
ChatMessageReportInputPanelNode.swift Postbox -> TelegramEngine waves 107-137 (squashed) 2026-05-03 10:28:50 +02:00
ChatMessageThrottledProcessingManager.swift Postbox refactor waves 138–276: 168-commit squash 2026-05-05 00:44:27 +02:00
ChatMessageTransitionNode.swift Postbox -> TelegramEngine waves 107-137 (squashed) 2026-05-03 10:28:50 +02:00
ChatOverlayNavigationBar.swift
ChatPinnedMessageTitlePanelNode.swift Postbox -> TelegramEngine waves 46-93 (squashed) 2026-04-25 20:48:15 +04:00
ChatPremiumRequiredInputPanelNode.swift Merge commit '23c4d94748' 2026-04-19 23:54:22 +02:00
ChatReportPeerTitlePanelNode.swift Postbox refactor waves 138–276: 168-commit squash 2026-05-05 00:44:27 +02:00
ChatRequestInProgressTitlePanelNode.swift Glass 2025-12-01 22:13:33 +08:00
ChatRestrictedInputPanelNode.swift Merge commit '23c4d94748' 2026-04-19 23:54:22 +02:00
ChatSearchResultsContollerNode.swift Unseen polls 2026-03-27 18:30:01 +08:00
ChatSearchResultsController.swift Postbox -> TelegramEngine waves 27-36 2026-04-24 11:24:13 +04:00
ChatSearchState.swift Postbox -> TelegramEngine wave 6: unused import Postbox batch sweep 2026-04-19 23:46:13 +02:00
ChatSearchTitleAccessoryPanelNode.swift Postbox -> TelegramEngine waves 107-137 (squashed) 2026-05-03 10:28:50 +02:00
ChatSecretAutoremoveTimerActionSheet.swift
ChatSlowmodeHintController.swift
ChatStatusChecksTooltipContentNode.swift
ChatTagSearchInputPanelNode.swift Postbox -> TelegramEngine waves 107-137 (squashed) 2026-05-03 10:28:50 +02:00
ChatToastAlertPanelNode.swift Glass 2025-12-01 22:13:33 +08:00
ChatUnblockInputPanelNode.swift Merge commit '23c4d94748' 2026-04-19 23:54:22 +02:00
ChatVerifiedPeerTitlePanelNode.swift Postbox -> TelegramEngine wave 6: unused import Postbox batch sweep 2026-04-19 23:46:13 +02:00
CheckDiskSpace.swift
ClearNotificationsManager.swift Postbox -> TelegramEngine waves 107-137 (squashed) 2026-05-03 10:28:50 +02:00
CommandChatInputContextPanelNode.swift Postbox refactor waves 138–276: 168-commit squash 2026-05-05 00:44:27 +02:00
CommandChatInputPanelItem.swift Postbox refactor waves 138–276: 168-commit squash 2026-05-05 00:44:27 +02:00
CommandMenuChatInputContextPanelNode.swift Postbox refactor waves 138–276: 168-commit squash 2026-05-05 00:44:27 +02:00
CommandMenuChatInputPanelItem.swift Postbox -> TelegramEngine wave 6: unused import Postbox batch sweep 2026-04-19 23:46:13 +02:00
ComposeController.swift Postbox refactor waves 138–276: 168-commit squash 2026-05-05 00:44:27 +02:00
ComposeControllerNode.swift Postbox -> TelegramEngine waves 107-137 (squashed) 2026-05-03 10:28:50 +02:00
ContactMultiselectionController.swift Postbox refactor waves 138–276: 168-commit squash 2026-05-05 00:44:27 +02:00
ContactMultiselectionControllerNode.swift Postbox refactor waves 138–276: 168-commit squash 2026-05-05 00:44:27 +02:00
ContactSelectionController.swift Postbox refactor waves 138–276: 168-commit squash 2026-05-05 00:44:27 +02:00
ContactSelectionControllerNode.swift Postbox -> TelegramEngine waves 27-36 2026-04-24 11:24:13 +04:00
ConvertToWebP.swift
CreateChannelController.swift Postbox refactor waves 138–276: 168-commit squash 2026-05-05 00:44:27 +02:00
CreateGroupController.swift Various fixes 2026-04-27 04:40:29 +02:00
CreatePeerAvatarSetup.swift Various improvements 2026-04-24 03:16:14 +02:00
DeleteChatInputPanelNode.swift Merge commit '23c4d94748' 2026-04-19 23:54:22 +02:00
DeviceContactDataManager.swift Postbox -> TelegramEngine waves 107-137 (squashed) 2026-05-03 10:28:50 +02:00
DisabledContextResultsChatInputContextPanelNode.swift Various improvements 2026-04-24 03:16:14 +02:00
DocumentPreviewController.swift
EditAccessoryPanelNode.swift
EmojisChatInputContextPanelNode.swift Postbox -> TelegramEngine waves 107-137 (squashed) 2026-05-03 10:28:50 +02:00
EmojisChatInputPanelItem.swift Postbox -> TelegramEngine wave 6: unused import Postbox batch sweep 2026-04-19 23:46:13 +02:00
FetchCachedRepresentations.swift Add swift svg 2026-04-24 23:19:15 +04:00
GalleryHiddenMediaManager.swift Postbox refactor waves 138–276: 168-commit squash 2026-05-05 00:44:27 +02:00
HashtagChatInputContextPanelNode.swift Postbox -> TelegramEngine wave 6: unused import Postbox batch sweep 2026-04-19 23:46:13 +02:00
HashtagChatInputPanelItem.swift Postbox -> TelegramEngine wave 6: unused import Postbox batch sweep 2026-04-19 23:46:13 +02:00
HorizontalListContextResultsChatInputContextPanelNode.swift Various improvements 2026-04-28 16:58:04 +04:00
HorizontalListContextResultsChatInputPanelItem.swift Postbox -> TelegramEngine waves 107-137 (squashed) 2026-05-03 10:28:50 +02:00
HorizontalStickerGridItem.swift Various fixes 2026-04-15 23:12:53 +02:00
HorizontalStickersChatContextPanelNode.swift Postbox -> TelegramEngine waves 107-137 (squashed) 2026-05-03 10:28:50 +02:00
IconButtonNode.swift
ID3ArtworkReader.swift Various fixes 2026-04-16 21:45:26 +02:00
InChatPrefetchManager.swift
Info.plist
InlineReactionSearchPanel.swift Postbox -> TelegramEngine waves 107-137 (squashed) 2026-05-03 10:28:50 +02:00
LargeEmojiActionSheetItem.swift Postbox -> TelegramEngine wave 6: unused import Postbox batch sweep 2026-04-19 23:46:13 +02:00
LegacyDataImportSplash.swift
ListMessagePlaybackOverlayNode.swift
LockedWindowCoveringView.swift
MakeTempAccountContext.swift Postbox refactor waves 138–276: 168-commit squash 2026-05-05 00:44:27 +02:00
ManagedAudioRecorder.swift
MediaManager.swift Postbox -> TelegramEngine waves 94-102 (squashed) 2026-04-26 02:46:44 +04:00
MentionChatInputContextPanelNode.swift Postbox -> TelegramEngine waves 46-93 (squashed) 2026-04-25 20:48:15 +04:00
MentionChatInputPanelItem.swift Postbox -> TelegramEngine waves 107-137 (squashed) 2026-05-03 10:28:50 +02:00
MusicListenTracker.swift Various improvements 2026-03-18 00:27:13 +01:00
NavigateToChatController.swift Fix external text sharing 2026-04-28 21:18:02 +02:00
NotificationContainerController.swift
NotificationContainerControllerNode.swift Alerts 2025-12-22 00:19:11 +04:00
NotificationContentContext.swift
NotificationItemContainerNode.swift Various improvements 2026-02-06 15:18:17 +04:00
OpenAddContact.swift Postbox -> TelegramEngine waves 37-43 + wave 44 design/plan (squashed) 2026-04-24 23:19:43 +04:00
OpenChatMessage.swift Postbox refactor waves 138–276: 168-commit squash 2026-05-05 00:44:27 +02:00
OpenResolvedUrl.swift Update localization 2026-04-29 21:23:36 +04:00
OpenUrl.swift Postbox -> TelegramEngine waves 107-137 (squashed) 2026-05-03 10:28:50 +02:00
OverlayAudioPlayerController.swift Various improvements 2026-04-24 04:55:22 +02:00
OverlayAudioPlayerControllerNode.swift Postbox refactor waves 138–276: 168-commit squash 2026-05-05 00:44:27 +02:00
OverlayAudioPlayerControlsNode.swift Postbox -> TelegramEngine waves 46-93 (squashed) 2026-04-25 20:48:15 +04:00
OverlayInstantVideoDecoration.swift
OverlayInstantVideoNode.swift
OverlayMediaController.swift Postbox -> TelegramEngine wave 6: unused import Postbox batch sweep 2026-04-19 23:46:13 +02:00
OverlayMediaControllerNode.swift Postbox -> TelegramEngine wave 6: unused import Postbox batch sweep 2026-04-19 23:46:13 +02:00
PeerMediaCollectionInterfaceState.swift Postbox refactor waves 138–276: 168-commit squash 2026-05-05 00:44:27 +02:00
PeerMediaCollectionInterfaceStateButtons.swift
PeerMediaCollectionSectionsNode.swift
PollResultsController.swift Postbox -> TelegramEngine waves 37-43 + wave 44 design/plan (squashed) 2026-04-24 23:19:43 +04:00
PrefetchManager.swift Postbox -> TelegramEngine waves 27-36 2026-04-24 11:24:13 +04:00
PreparedChatHistoryViewTransition.swift [WIP] Polls 2026-03-16 18:07:12 +01:00
ProcessedPeerRestrictionText.swift
RadialProgressNode.swift
RadialTimeoutNode.swift
SaveMediaToFiles.swift Postbox refactor waves 138–276: 168-commit squash 2026-05-05 00:44:27 +02:00
SecretChatHandshakeStatusInputPanelNode.swift Merge commit '23c4d94748' 2026-04-19 23:54:22 +02:00
ServiceSoundManager.swift
SharedAccountContext.swift Postbox refactor waves 138–276: 168-commit squash 2026-05-05 00:44:27 +02:00
SharedMediaPlayer.swift Postbox -> TelegramEngine waves 94-102 (squashed) 2026-04-26 02:46:44 +04:00
SharedNotificationManager.swift
SharedVideoContextManager.swift
SharedWakeupManager.swift Postbox -> TelegramEngine waves 107-137 (squashed) 2026-05-03 10:28:50 +02:00
SpotlightContacts.swift
StoreDownloadedMedia.swift Various improvements 2026-02-19 21:53:26 +04:00
SuppressContactsWarning.swift
TelegramRootController.swift Postbox refactor waves 138–276: 168-commit squash 2026-05-05 00:44:27 +02:00
TextLinkHandling.swift Postbox -> TelegramEngine waves 37-43 + wave 44 design/plan (squashed) 2026-04-24 23:19:43 +04:00
ThemeUpdateManager.swift Postbox -> TelegramEngine waves 103-105 (squashed) 2026-04-26 16:57:55 +04:00
TonePlayer.swift
TransformOutgoingMessageMedia.swift Various improvements 2026-03-12 13:51:27 +01:00
VerticalListContextResultsChatInputContextPanelNode.swift Postbox -> TelegramEngine waves 94-102 (squashed) 2026-04-26 02:46:44 +04:00
VerticalListContextResultsChatInputPanelButtonItem.swift Glass 2025-12-26 20:29:30 +08:00
VerticalListContextResultsChatInputPanelItem.swift Postbox -> TelegramEngine waves 94-102 (squashed) 2026-04-26 02:46:44 +04:00
WallpaperUploadManager.swift Postbox -> TelegramEngine waves 94-102 (squashed) 2026-04-26 02:46:44 +04:00
Weak.swift
WebpagePreviewAccessoryPanelNode.swift
WidgetDataContext.swift Postbox -> TelegramEngine waves 107-137 (squashed) 2026-05-03 10:28:50 +02:00