Files
Telegram-iOS/submodules/TelegramUI/Components
isaacandClaude Opus 4.7 c0acc09cb1 Postbox -> TelegramEngine wave 44
Migrate RenderedChannelParticipant.peers from [PeerId: Peer] to
[EnginePeer.Id: EnginePeer]. Closes the wave-41 ratchet — the public
struct no longer leaks raw Peer types in any field (presences stays
Postbox-typed; separate migration).

Consumer-surface: -10 bridges. Dropped 6 EnginePeer(peer) read-wraps
at participant.peers[...] extraction sites across
ChannelAdminsController, ChannelMembersSearchContainerNode,
ChannelBlacklistController. Dropped 5 .mapValues({ $0._asPeer() })
constructor-unwrap transforms in ChannelAdminsController,
ChannelMembersSearchContainerNode, ChannelMembersSearchControllerNode.
Added 2 ._asPeer() unwraps in ChatRecentActionsHistoryTransition at
the two iteration sites (line 673 via participant.peers, line 2273
via new.peers in participantSubscriptionExtended) where the iterated
value is inserted into a raw-Peer SimpleDictionary.

TelegramCore producers: 8 files build the local peers dict inside
postbox.transaction and wrap at the insertion point. ChannelMembers,
RequestStartBot, ChannelOwnershipTransfer, JoinChannel, AddPeerMember,
PeerAdmins, ChannelBlacklist, Ranks.

2-iteration build convergence. Iteration-1 surfaced new.peers at
ChatRecentActionsHistoryTransition:2272 that the plan's participant.peers
pre-flight grep missed; wider grep now confirms the two iteration sites
are the complete surface.

No unit tests in this project; full Telegram/Telegram build verified
under configuration=debug_sim_arm64.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-24 23:21:05 +04:00
..
2026-02-23 13:51:13 +04:00
2026-04-07 11:31:22 +02:00
2026-04-14 15:33:19 +02:00
2026-04-16 21:45:26 +02:00
2026-02-02 15:54:43 +04:00
2026-04-22 23:03:51 +02:00
2026-04-14 03:33:34 +02:00
2026-04-24 23:21:05 +04:00
2026-01-25 22:17:49 +04:00
2026-04-18 08:41:08 +02:00
2026-03-11 18:51:44 +01:00
2026-04-24 04:55:22 +02:00
2026-04-24 04:55:22 +02:00
2026-03-24 22:51:44 +08:00
2026-03-28 00:52:16 +08:00
2026-04-07 11:31:22 +02:00
2026-04-07 11:31:22 +02:00
2026-01-25 22:17:49 +04:00
2026-02-03 20:17:44 +08:00
2026-04-07 11:31:22 +02:00
2026-04-24 03:16:14 +02:00
2026-04-15 23:12:53 +02:00
2026-03-13 11:04:33 +01:00
2026-03-27 16:48:23 +01:00
2026-04-20 18:55:27 +02:00
2026-04-24 03:16:14 +02:00
Fix
2026-03-07 15:33:36 +01:00
2026-03-22 05:17:29 +03:00
2026-02-27 14:34:18 +04:00
2026-01-25 22:17:49 +04:00
2026-04-24 04:55:22 +02:00
2026-03-10 19:33:45 +01:00
2026-01-25 00:31:18 +08:00
2026-04-15 23:12:53 +02:00
2026-04-07 11:31:22 +02:00
2026-04-24 23:21:05 +04:00
2026-04-24 04:55:22 +02:00
2026-03-30 02:55:35 +02:00
2026-04-16 01:18:22 +02:00
2026-02-25 04:38:32 +04:00
2026-02-20 13:28:58 +04:00
2026-01-25 00:31:18 +08:00
2026-01-16 21:23:32 +08:00
2026-02-13 12:23:53 +04:00
2026-03-22 05:17:29 +03:00
2026-03-22 13:44:04 +01:00
2026-04-24 23:21:05 +04:00
2026-03-22 05:17:29 +03:00
2026-03-22 05:17:29 +03:00
2026-04-14 15:33:19 +02:00
2026-02-13 17:08:48 +04:00
2026-03-03 20:26:45 +04:00