@@ -109,15 +109,35 @@ with the chat-management and query work in Phase 5).
109109
110110## Phase 5 — Files, queries, chat management
111111
112- - ☐ ` GetFile ` + download; ` file_id ` /` file_unique_id ` (resolve the stub)
113- - ☐ ` UploadStickerFile ` , sticker set methods
114- - ☐ ` AnswerCallbackQuery ` , ` AnswerInlineQuery ` , ` AnswerPreCheckoutQuery ` ,
115- ` AnswerShippingQuery `
116- - ☐ Chat members: ban/unban/restrict/promote, ` GetChatMember(s) ` ,
117- ` GetChatAdministrators ` , ` GetChatMemberCount `
118- - ☐ Chat admin: pin/unpin, photo, title, permissions, invite links (partly done)
119- - ☐ Commands: ` Set/Get/DeleteMyCommands ` (done in seed — re-point)
120- - ☐ Live location: ` EditMessageLiveLocation ` , ` StopMessageLiveLocation `
112+ ** Mostly done** on ` main ` . The methods are on ` *Bot ` with the same
113+ functional-option style as Phase 3. See ` file.go ` , ` answer.go ` , ` commands.go ` ,
114+ ` chat_member_methods.go ` , ` chat_admin.go ` , ` invite_links.go ` ,
115+ ` live_location.go ` .
116+
117+ - ☑ ` GetFile ` + download (` DownloadFile ` /` DownloadFileToPath ` );
118+ ` file_unique_id ` resolved — derived locally from the decoded ` file_id ` with
119+ the TDLib scheme (web/document exact; legacy photos via volume/local id, newer
120+ photo sources fall back to media id). Resolves Decisions-needed #1 . No HTTP
121+ file server in the MTProto-native model, so ` GetFile ` is decode-only.
122+ - ◐ ` AnswerCallbackQuery ` done (+ ` Context.AnswerCallback ` ).
123+ ` AnswerInlineQuery ` (needs the ` InlineQueryResult ` union) and the payment
124+ answers ` AnswerPreCheckoutQuery ` /` AnswerShippingQuery ` (need payment-update
125+ plumbing) deferred.
126+ - ☑ Chat members: ` Ban ` /` Unban ` /` Restrict ` /` PromoteChatMember ` ,
127+ ` GetChatMember ` , ` GetChatAdministrators ` , ` GetChatMemberCount `
128+ (supergroups/channels via ` channels.* ` ); ` ChatPermissions ` /` ChatAdminRights `
129+ with MTProto rights mapping; participant → ` ChatMember ` converter.
130+ - ☑ Chat admin: pin/unpin (` PinChatMessage ` /` UnpinChatMessage ` /
131+ ` UnpinAllChatMessages ` ), ` SetChatTitle ` /` SetChatDescription ` ,
132+ ` SetChatPermissions ` , ` LeaveChat ` ; invite links
133+ (` Export ` /` Create ` /` Edit ` /` RevokeChatInviteLink ` ). Chat photo set/delete
134+ deferred (needs the upload path).
135+ - ☑ Commands: ` Set ` /` Get ` /` DeleteMyCommands ` with the ` BotCommandScope ` union.
136+ - ☑ Live location: ` EditMessageLiveLocation ` , ` StopMessageLiveLocation ` .
137+
138+ Deferred within Phase 5: ` UploadStickerFile ` and sticker-set methods (large,
139+ needs sticker-set type surface); ` AnswerInlineQuery ` (` InlineQueryResult `
140+ union); payment answers; chat photo set/delete.
121141
122142## Phase 6 — Errors, rate limiting, resilience
123143
@@ -154,7 +174,9 @@ with the chat-management and query work in Phase 5).
154174
155175## Decisions needed (maintainer)
156176
157- 1 . ** ` file_unique_id ` ** — derive properly now (Phase 5) or keep stubbed initially?
177+ 1 . ~~ ** ` file_unique_id ` ** ~~ — ** Resolved (Phase 5): derived locally** from the
178+ decoded ` file_id ` with the TDLib scheme (web/document exact; photos best
179+ effort, stable per file).
1581802 . ~~ ** HTTP Bot-API compatibility** ~~ — ** Resolved (Phase 4): MTProto-native
159181 handlers only, no ` getUpdates ` /webhook shim.**
1601823 . ~~ ** Unions** ~~ — ** Resolved (Phase 2): sealed interfaces** , guarded by the
0 commit comments