isaac and Claude Opus 4.8
0050cc7a08
Rich-message media in gallery/shared-media/preview pipelines via Message.effectiveMedia
...
Add Message/EngineMessage.effectiveMedia (= message.media when non-empty, else
richText.instantPage.allMedia()) and route the media-consuming sites through it
so a rich message's instant-page media participates in the same pipelines as
normal message.media: shared-media grids/file-rows, search media grid, gallery
open + item nodes + footer, the peer audio/voice playlist, secret-media preview,
resource-by-id resolution, recent downloads, downloaded-media store, delete-time
resource cleanup, cache-usage stats, the in-chat download manager, and the
context-menu / share actions (Save to Camera Roll, copy image, save audio/music
to files). For normal messages effectiveMedia == message.media, so each swap is
behavior-preserving; rich messages render their own bubble via
ChatMessageRichDataBubbleContentNode (not the text/file bubbles), so those paths
are deliberately untouched, as are the forward path (the attribute travels with
the forward) and the markdown-based rich-edit path. First-media scope for now.
See docs/instantpage-richtext.md for the full architecture + invariants.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-04 23:46:56 +02:00
isaac
13a153aff2
WIP
2026-05-20 00:33:08 +08:00
isaac and Claude Opus 4.7
e918b353ec
Postbox refactor waves 278-356: squash
...
Squashes 79 sequential refactor waves into a single commit.
Highlights:
- Drop `import Postbox` (and matching `//submodules/Postbox` BUILD deps) from a wide swath of consumer files: ChatList, ChatMessage*BubbleContentNode subclasses, ListMessageNode/ListMessageItem, GalleryData, ChatHistorySearchContainerNode, ChatPanelInterfaceInteraction, ChatControllerInteraction, ChatMessageStickerItemNode, ChatMessageReplyInfoNode, ChatMessageInstantVideoItemNode, ChatPresentationInterfaceState, BrowserMarkdown/Readability, MediaResources, LocalMediaResources, ICloudResources, FetchManager, ShareController, OpenChatMessage, GalleryController, GroupStickerSearchContainerNode, GroupStickerPackCurrentItem, ChatPinnedMessageTitlePanelNode, OverlayAudioPlayerController, PresentationThemeSettings, StatisticsUI/StoryIconNode, TextFormat/StringWithAppliedEntities, GalleryUI/VideoAdComponent, StickerPackPreviewUI, WallpaperPreviewMedia, WallpaperResources, YoutubeEmbedImplementation, InstantPageExternalMediaResource, PlatformRestrictionMatching, TelegramUIDeclareEncodables, ChatListNode/ChatListSearchContainerNode.
- Add `TelegramEngine` facades: `Themes.wallpapers`, `Themes.themes`, `AccountData.addAppLogEvent`.
- Add `EngineMessageHistoryEntryLocation` wrapper.
- Add `EngineRaw*` escape-hatch typealiases (`EngineRawMessage`, `EngineRawPeer`, `EngineRawMedia`, `EngineRawMediaResource`, `EngineRawMediaResourceData`, `EngineRawItemCollectionItem`, `EngineRawItemCollectionInfo`) and `engineDeclareEncodable` forwarder.
- Drop unused `account:`/`postbox:`/`network:` parameters from several public functions and delete the dead overloads/types/functions left over: `automaticThemeShouldSwitchNow`, `cancelFreeMediaFileInteractiveFetch`, `legacyEnqueueVideoMessage`, `TelegramMediaFileReference`, plus assorted dead public TelegramCore/AccountContext SecureId entry points.
- Delete entire dead modules: `LegacyDataImport`, `TonBinding`, `SpotlightSupport`, `SvgRendering`, third-party `AppCenter`/`VectorPlus`/`SwiftColor`/`SwiftSVG`.
- Drop orphan `//submodules/Postbox` BUILD deps across 3 cleanup rounds.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-05 14:11:06 +02:00
Ilya Laktyushin
73d25e7be3
Various improvements
2026-04-28 14:31:17 +02:00
isaac and Claude Opus 4.7
d1aa0db537
Postbox -> TelegramEngine waves 46-93 (squashed)
...
Squash of 63 commits spanning waves 46-93 (plus interspersed docs commits)
of the gradual Postbox->TelegramEngine consumer-side migration.
Scope: 139 files changed, 2123 insertions(+), 452 deletions(-).
## Themes by wave-block
**Waves 46-58 — Peer field migrations + facade additions**
Foundational EnginePeer convenience init additions (PeerReference, RenderedPeer,
SelectivePrivacyPeer). Multiple `peer: Peer` field migrations across PeerInfo,
ChatList, and SettingsUI components.
**Waves 59-73 — peer field cascade + EnginePeer wrap drops**
Series of single- to two-file peer-field migrations; consumer-side wrap
removal (`EnginePeer(peer)` -> direct EnginePeer use); `as? TelegramUser`
cast conversion to `case let .user(...)` enum match. Wave 64: RenderedPeer
convenience init. Wave 68: SelectivePrivacyPeer convenience init.
**Waves 74-83 — controller-Node bridge cleanup + small migrations**
Wave-71 shadow-pattern cleanup at controller->Node bridges. Migrations of
ChatRecentActionsController.peer (74), PeerInfoMember (75), MentionChatInputPanelItem
(76), PassportUI SecureIdAuthController (77), AccountWithInfo + ShareController
(78), peerInputActivitiesPromise (79), InactiveChannel (80), BlockedPeers (81),
openHashtag resolveSignal (82), NotificationExceptionsList (83).
**Waves 84-90 — TelegramEngine.Resources facade migrations**
Per-method Shape-A/B sweeps converting `<ctx>.account.postbox.mediaBox.X(...)`
to `<ctx>.engine.resources.X(...)`. Wave 90 was a single-commit big sweep:
40 fetchedMediaResource sites in 25 files migrated to engine.resources.fetch
facade in one atomic pass with first-pass-clean build.
Methods covered: storeResourceData, completedResourcePath, cancelInteractiveResourceFetch,
resourceRangesStatus, resourceStatus, fetch (fetchedMediaResource).
**Waves 91-92 — additional type migrations**
Wave 91: ItemListWebsiteItem.peer + RecentSessionsController enum-case payload
+ openWebSession callback Peer? -> EnginePeer?.
Wave 92: ChatListController StateHolder.EntryContext status type
MediaResourceStatus -> EngineMediaResource.FetchStatus.
**Wave 93 — speculative `import Postbox` drop sweep**
Drop import from 7 wave-touched files where it became unused; restore in 5
files where bare PeerId/Message/MediaId/StoryId references escaped the
pre-flight regex. Includes one MediaId(...) -> EngineMedia.Id(...) swap in
InAppPurchaseManager to unlock its import drop.
## Build state
Final state at squash: clean Telegram/Telegram build at debug_sim_arm64.
## Persistent-state notes
- Pre-existing WIP unchanged across the squashed range:
- build-system/bazel-rules/sourcekit-bazel-bsp submodule marker
- Untracked: build-system/tulsi/, submodules/TgVoip/, third-party/libx264/
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-04-25 20:48:15 +04:00
isaac and Claude Opus 4.7
493f3103b3
Postbox -> TelegramEngine waves 37-43 + wave 44 design/plan (squashed)
...
Squashes 20 commits — the implementation and outcome commits of
waves 37 through 43 plus wave 44's spec and implementation-plan
docs — into a single commit. Per-wave lessons remain recorded in
docs/superpowers/postbox-refactor-log.md. The unrelated "Add swift
svg" commit is preserved separately outside this squash.
Wave 37 — peerTokenTitle: peer Peer → EnginePeer (1 file)
Wave 38 — canSendMessagesToPeer: peer Peer → EnginePeer (12 files)
Wave 39 — AccountContext.makePeerInfoController: peer Peer → EnginePeer (52 files)
Wave 40 — makeChatQrCodeScreen + makeChatRecentActionsController bundle (8 files)
Wave 41 — RenderedChannelParticipant.peer: Peer → EnginePeer (28 files)
Wave 42 — PeerInfoScreenData.peer: Peer? → EnginePeer? (17 files)
Wave 43 — PeerInfoScreen 6 helpers: peer Peer? → EnginePeer? (12 files)
Wave 44 — RenderedChannelParticipant.peers design doc + implementation plan
(impl and outcome land in subsequent commits, not part of squash)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-04-24 23:19:43 +04:00
Ilya Laktyushin
0df319742a
Update API
2026-04-16 01:18:22 +02:00
Isaac
72fbe5d7a7
Various improvements
2026-03-13 14:54:44 +01:00
Isaac
efb828e61b
Metrics
2026-03-10 11:54:23 +01:00
Isaac and Claude Opus 4.5
d2cf720e0a
Refactor constructor use sites for types 180-189 to struct pattern
...
Refactored constructors:
- JSON types: jsonObjectValue, jsonArray, jsonBool, jsonNumber, jsonObject, jsonString
- Invoice types: invoice, labeledPrice
- Keyboard button types: keyboardButton, keyboardButtonCallback, keyboardButtonUrl, etc.
- Lang pack types: langPackDifference, langPackString, langPackStringPluralized, langPackStringDeleted, langPackLanguage
- Input web file types: inputWebFileLocation, inputWebFileAudioAlbumThumbLocation
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-17 22:27:04 +08:00
Ilya Laktyushin
85f8bde398
Various fixes
2025-09-25 23:19:21 +04:00
Ilya Laktyushin
934ed73331
Fix build
2025-09-25 15:37:49 +04:00
Mikhail Filimonov
526ad333f0
Merge branch 'master' of gitlab.com:peter-iakovlev/telegram-ios
2025-09-19 12:26:46 +04:00
Ilya Laktyushin
a0e96582dd
Update API [skip ci]
2025-09-19 12:20:21 +04:00
Mikhail Filimonov
96f2740607
small fix
2025-09-18 12:02:43 +04:00
Isaac
1d06c3f058
Bot forums v2
2025-09-05 15:25:50 +02:00
Isaac
ee749050f0
Bot forums
2025-08-19 17:24:33 +02:00
Isaac
8843fbe5cb
Support typing drafts
2025-08-15 09:18:11 +02:00
Isaac
7512f7f017
Cleanup
2025-06-28 13:14:15 +02:00
Isaac
2ca01d18eb
Fix monoforum search
2025-06-05 19:59:04 +08:00
Mikhail Filimonov
7fe9ce7321
- additional method
2025-05-28 12:49:27 +01:00
Mikhail Filimonov
f0ceabd6f7
monoforums
2025-05-20 16:43:39 +01:00
Mikhail Filimonov
7afac7e0e9
-bugfixes
2025-05-19 09:55:09 +01:00
Isaac
1a56afcb48
[WIP] Monoforums
2025-05-16 01:02:25 +08:00
Isaac
0e119dd6f1
[WIP] Monoforums
2025-05-08 20:56:55 +01:00
Ilya Laktyushin
c9c4d78e30
Various fixes
2025-05-02 00:45:42 +04:00
Isaac
2739a839ed
Fix flatbuffers serialization
2025-03-25 12:36:31 +01:00
Isaac
7e2c6da812
FlatBuffers implementation debugging
2025-03-19 18:56:39 +01:00
Isaac
383ab9e479
Various improvements
2025-03-07 17:52:50 +01:00
Isaac
faa765b601
Various optimizations
2025-03-04 14:13:07 +01:00
Isaac
1fb93ab298
Various improvements
2025-02-25 14:46:07 +00:00
Isaac
c37cc451ec
Merge commit 'eecb2ef5c088434f55d4e29a47349681904c828d'
...
# Conflicts:
# submodules/TelegramCore/Sources/SyncCore/SyncCore_TelegramUser.swift
2025-02-21 16:47:32 +01:00
Isaac
da48b145e9
Various improvements
2025-02-21 16:17:15 +01:00
Ilya Laktyushin
4f42e41180
Update API [skip ci]
2025-02-21 17:23:25 +04:00
Mikhail Filimonov
39e8c7bb2e
macos and other stuff
2025-02-17 12:41:04 +02:00
Ilya Laktyushin
c5b39cfefe
Update API [skip ci]
2025-01-16 18:29:00 +04:00
Mikhail Filimonov
0794a1cdb9
Merge branch 'master' of gitlab.com:peter-iakovlev/telegram-ios
...
# Conflicts:
# submodules/MediaPlayer/Sources/FFMpegFileReader.swift
2025-01-16 11:30:14 +01:00
Ilya Laktyushin
6e850130fd
Update API [skip ci]
2024-12-26 07:27:14 +04:00
Ilya Laktyushin
26ff9da7d1
Update API [skip ci]
2024-12-19 16:12:17 +04:00
Ilya Laktyushin
fdb4b80e27
Various improvements
2024-12-06 09:31:49 +04:00
Ilya Laktyushin
37c91f89c5
Various improvements
2024-11-07 16:32:33 +01:00
Isaac
caf10fe889
Various improvements
2024-10-25 11:24:06 +02:00
Ilya Laktyushin
5a8506c3a4
Fix build
2024-09-20 18:52:28 +04:00
Ilya Laktyushin
987befccc4
Ads and codes improvements
2024-09-19 17:47:49 +04:00
Isaac
923587b0da
[WIP] Dynamic video streaming
2024-09-18 01:04:29 +08:00
Isaac
7313e25029
Merge commit '5d9d794f159b6056ba49c819aabe0322e5598be2'
2024-08-12 22:34:43 +08:00
Isaac
ce0e2ba62d
Send as improvements
2024-08-12 22:34:30 +08:00
Ilya Laktyushin
9adbb61a02
Update API
2024-08-12 12:20:41 +02:00
Ilya Laktyushin
83c7fdd228
Various improvements
2024-08-11 06:32:41 +02:00
Isaac
6e13876636
Star reactions
2024-08-09 16:55:53 +04:00