Skip to content

Commit d722a24

Browse files
ernadoclaude
andcommitted
docs(roadmap): record Phase 5 progress
Mark commands, file download/file_unique_id, chat members, chat admin, invite links and live location done; note deferred sticker-set, AnswerInlineQuery, payment answers and chat photo. Resolve Decisions-needed #1 (file_unique_id derived locally). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1 parent 922b318 commit d722a24

1 file changed

Lines changed: 32 additions & 10 deletions

File tree

docs/roadmap.md

Lines changed: 32 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -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).
158180
2. ~~**HTTP Bot-API compatibility**~~**Resolved (Phase 4): MTProto-native
159181
handlers only, no `getUpdates`/webhook shim.**
160182
3. ~~**Unions**~~**Resolved (Phase 2): sealed interfaces**, guarded by the

0 commit comments

Comments
 (0)