Files
go-telegram/docs/reference
lukaszraczylo d666cda3b1 feat(genapi): derive discriminators and decode RichText alternates
The generator gated all union decoder emission behind knownDiscriminators, a
hand-curated map of 13 entries. Any sealed union absent from that map received
no decoder, so decoding must fail. Bot API v10 added RichBlock and RichText,
which were absent. Roughly 8.6 percent of Telegram updates failed with HTTP 400.

The generator now derives discriminators from the specification instead of a
fixed list. A gate check fails the build when a union resolves no discriminator.
Eleven unions gain decoders that never had one: BotCommandScope, InputMedia,
InputPaidMedia, InputPollMedia, InputPollOptionMedia, InputProfilePhoto,
InputRichBlock, InputStoryContent, PassportElementError, RichBlock and RichText.

RichText can also appear as a bare string or an array of RichText. The scraper
now extracts these alternate shapes into the intermediate representation. The
emitter adds RichTextPlain and RichTextSequence. The decoder dispatches on the
first JSON byte before it reads any discriminator.

Unions without alternates must regenerate byte for byte. The golden test proves
this.

Claude-Session: https://claude.ai/code/session_01Fu2wXqGUrfVBi5aLafKk8U
2026-09-15 10:59:48 +01:00
..

API Reference

Auto-generated from Go source comments by gomarkdoc. Do not edit by hand — run make docs to regenerate.

Packages

Package Description
api Telegram Bot API types and method wrappers — 176 methods, 301 types, fully generated
client Bot client, codec, HTTP doer, retry middleware
transport Long-poll and webhook transports
dispatch Update router, filters, handler groups, named handlers
dispatch/conversation Multi-step conversation state machines
dispatch/filters/message Message filters — Command, Text, IsReply, etc.
dispatch/filters/callback Callback query filters
dispatch/filters/inline Inline query filters
dispatch/filters/chatmember Chat member update filters
dispatch/filters/chatjoinrequest Join request filters
dispatch/filters/precheckoutquery Pre-checkout filters for payments

Also see