Repository navigation
feat(schema): import Telegram Layer 232 and regenerate exact profiles - #4
Merged
Merged
Conversation
Protocol compatibility line. Canonical Layer 232 comes from official Telegram Desktop dev@850fb90eb6db96c124b6da1349060f9ed00f4fe4 (blob 8319b7d); exact profiles 225-231 remain. Based on iamxvbaba#4 with review corrections: - historical payments.getStarGiftWithdrawalUrl requests are rejected at admission instead of dropping their SRP proof; canonical requests are never encoded for 225-231 - quote_rich drops for 225-231 with a stated server obligation to carry the flat quote fallback - tlprofile/layer232_test.go locks retag oracles, field non-leakage and the withdrawal policy; the 231 URL-auth test no longer pins canonical - LAYER232_REVIEW.md corrects the field table and records downstream: telesrv needs a separate tmp_password change before consuming this No PTS/update or MTProto transport schema change. Co-authored-by: SandyTAP <Zankin12@Yandex.ru> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Canonical Layer 232 comes from official Telegram Desktop
dev@850fb90eb6db96c124b6da1349060f9ed00f4fe4. The last change toTelegram/SourceFiles/mtproto/scheme/api.tlis the same commit;manifest.jsonlocks its Git blob8319b7df634d145390c299404129fd161a5dbd2aand the normalized SHA-25676922ce265441d3f2f5188f56b69b41e1cb11354657ea547707507f8c3b93826. The TDesktop source path is clean and the schema commit is reachable fromorigin/dev. No client patch is part of the schema import.Relative to Layer 231 the schema adds 24 constructors and reshuffles seven constructor ids. Canonical moves to 232; exact profiles 225–231 remain available.
channel#d49f34c6#7ad15240(addslinked_community_id)channelFull#a04e8d3a#c4c4dd40(addsshare_theme)userFull#6cbe645#b90c2afd(addswallet_card,note)messageReplyHeader#1b97dd66#ddb5ab75(addsquote_rich)inputReplyToMessage#3bd4b7c2#75c1ad70(addsquote_rich)wallet.nftItem#3441fd1c#173dfaf3(addsgift)payments.getStarGiftWithdrawalUrl#d06e93a8#c8ca817b(password:InputCheckPasswordSRP→tmp_password:bytes)New constructors:
messageActionNoPaidMessagesTokenUsed,walletTransactionPeerChannel,walletTransactionPeerTelegramGift,exportedNoPaidMessagesToken,shareThemeDefault,shareThemeEmojiBackdrop,shareThemeGift,inputShareThemeGift,shareThemeBackdropOption,shareThemeBackdropsNotModified,shareThemeBackdrops,inputWalletCardSticker,wallet.cardSticker,wallet.card,payments.starGiftDepositPayload,contacts.exportNoPaidMessagesToken,contacts.importNoPaidMessagesToken,messages.setShareTheme,messages.getShareThemeBackdrops,payments.withdrawStarGift,payments.depositStarGift,payments.displayStarGift,payments.deleteStarGift,wallet.setCardStickers.No update constructor or
pts/pts_countfield changed; the MTProto service schema is unchanged.Compatibility decisions
payments.getStarGiftWithdrawalUrlin exact 232 carriestmp_password:bytes. A non-empty temporary password is a Telegram temporary-password proof this fork does not issue, so a server withoutaccount.getTmpPasswordmust refuse it rather than treat it as a 2FA proof.password:InputCheckPasswordSRPis discarded on the way to canonical 232. The SRP material has no canonical counterpart and must never be promoted into a temporary password. Dropping it keeps the empty-password check authoritative: an account that owns a 2FA password still fails closed, and a passwordless account is unaffected.tmp_passwordprojected to exact 225–231 is rejected. It cannot be encoded as the legacy SRP challenge, and inventing an empty SRP challenge would downgrade an authenticated request to an unauthenticated one.tmp_passwordprojects to canonical 232 as empty bytes: "no temporary password supplied".The reviewed policy document grows from 249 to 270 entries; the 21 new entries are exactly the
payments.getStarGiftWithdrawalUrlprojections above. The locked generator budgets were re-measured for the eighth profile: 714 projected families, 2538 rewrite variants, 957 unavailable variants, 259 body obligations, 4 result obligations, 1899/1148/969 execution plans, 1527 typed codec wires and 399 unprofiled wrapper invariants.Verification
canonical_layermoved to 232 andlayer-232.tlwas written with its provenance.go generate .is deterministic and reproduced the canonicaltgmodel plus thetlprofilesidecar withProfile232andProfileCanonical = 232.go test ./tlprofile/... ./gen/... ./cmd/gotdgen/...is green.telesrv(internal/rpc,internal/mtprotoedge) builds, vets and passes its full suite against this release.The review record is
_schema/layers/LAYER232_REVIEW.md.