isaac
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
7919556375
Postbox -> TelegramEngine wave 20: shortLivedResourceCachePathPrefix consumer sweep
...
22 call sites across 16 consumer modules migrated to the wave-19 facade:
context.account.postbox.mediaBox.shortLivedResourceCachePathPrefix(resource.id)
->
context.engine.resources.shortLivedResourceCachePathPrefix(id: EngineMediaResource.Id(resource.id))
ItemListStickerPackItem additionally drops the wave-18 `let rawResource` intermediate.
Skipped: MediaEditorComposerEntity.swift:245 (uses local `postbox:` init-param,
not `context.account.postbox`; needs its own wave). No modules become Postbox-free
this wave — each still has other Postbox usage.
2026-04-21 02:27:39 +04:00
Isaac
4ae15b42a7
Postbox -> TelegramEngine wave 3: MediaBox fetch/status/data facades + SaveToCameraRoll
...
Adds three thin forwarding methods on TelegramEngine.Resources
(fetch, status, data) over MediaBox, then migrates SaveToCameraRoll's
three public functions to use them, drops import Postbox from the
module (source + Bazel dep), and updates all 23 call sites across 14
caller files atomically.
Bundled: spec + fix + plan + C1 facades + C2 SaveToCameraRoll rewrite
+ BUILD dep drop + CLAUDE.md outcome.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-04-19 23:45:34 +02:00
Isaac
16c630b946
Refactoring
2026-04-03 15:50:39 +08:00
Isaac
9a4327116d
Refactor
2026-03-10 00:38:36 +01:00
Isaac
4a13c3830a
Glass
2025-12-26 20:29:30 +08:00
Isaac
0c3530d8a8
Glass
2025-12-10 00:16:36 +08:00
Ilya Laktyushin
6bc1fe1939
Various improvements
2025-12-01 19:54:58 +04:00
Isaac
c57aa07d7d
Fit more text
2025-11-15 02:55:41 +08:00
Ilya Laktyushin
3886b847ae
Various improvements
2025-11-13 08:27:11 +04:00
Ilya Laktyushin
85092482f3
Various improvements
2025-10-17 17:01:25 +04:00
Ilya Laktyushin
cb1f5058a7
Update API
2025-08-25 17:23:25 +04:00
Ilya Laktyushin
3985c538a8
Update localization
2025-05-26 01:05:11 +02:00
Ilya Laktyushin
ff29e58d4b
Various improvements
2025-05-24 16:38:39 +02:00
Ilya Laktyushin
81e11d6d36
Various improvements
2025-05-20 22:30:48 +02:00
Isaac
6c4070eb52
Serialization update
2025-02-14 19:11:58 +04:00
Isaac
df9e27f4fb
[Temp] video v2
2024-12-25 00:18:02 +08:00
Isaac
af267cae64
Video player and calls
2024-09-20 22:33:36 +08:00
Isaac
c474162cff
Fix build
2024-09-19 01:01:52 +08:00
Isaac
21d5fe177b
Fix build
2024-09-19 00:37:24 +08:00
Isaac
46646a41a9
Support Xcode 16
2024-09-18 22:43:19 +08:00
Ilya Laktyushin
914dbc46f6
Recent actions improvements
2024-04-23 12:01:28 +04:00
Isaac
efae3b90a7
Support Xcode 15.3
2024-04-02 19:16:00 +04:00
Ilya Laktyushin
90f09a13e4
Various improvements
2023-11-22 03:24:33 +04:00
Ali
165b23570b
Refactoring [skip ci]
2023-11-16 19:37:07 +04:00