🎉 gramiojs/[email protected] - CLAUDE.md: document guards and hash.txt behavior - Mojibake guard (UTF-8 → CP1251 detection) feat: add schema guards and bump parser dep to 1.2.0- Formattable/parse_mode invariant guard (must be 1:1 paired) release v10.2.2 Compare release changes

Channel
gramio
@gramiojs
On this record: Growth · Engagement · What this channel posts · Posts · Citations · Cite this entry
9subscribers
+0 since we began measuring on 7 August 2026
Risers and fallers across the register · movement among entries of Under 1,000.
Register entry
| Telegram ID | -1002133155824 |
|---|---|
| Type | Channel |
| Username | @gramiojs |
| Description | gramio @gramio_forum |
| Created | Between 1 November 2023 and 31 May 2024— estimated from Telegram’s id allocation, not measured. How this range is calculated. |
| First recorded | 12 August 2026 |
| Last confirmed live | 12 August 2026 |
| Measurements held | 2 |
| On Telegram | t.me/gramiojs |
Growth
| Measured (UTC) | Subscribers | Change |
|---|---|---|
| 12 Aug 2026, 13:01 | 9 | no change |
| 7 Aug 2026, 19:06 | 9 | first reading |
Engagement
20 posts held, back to 3 June 2026 — the reader has not yet reached the start of this channel’s public history, so older posts may sit further back, unread. Read across 1 pageof Telegram’s post history, 20 posts per page.
- ERR · 30 days
- 33.3%
- avg views ÷ 9 subscribers
- Avg views / post
- 3.0
- 10 posts measured
- Reaction rate
- —
- this channel exposes no reaction counts
- Posts in window
- 10
- of 20 held
ERR is average views per post over the last 30 days divided by subscribers, the definition TGStat uses, so this figure is comparable with the one you will see elsewhere. It falls structurally as a channel grows: a high ERR on a small channel and a low one on a large channel describe reach mathematics, not quality. We publish the figure and the sample it came from and pass no verdict on it.
ER is defined industry-wide as (forwards + reactions + comments) ÷ views— note the denominator is views, not subscribers. Telegram’s public web preview carries views and reactions but not forward or comment counts, so the reaction rate above is the reactions term only and is therefore a floor: the true ER for this channel is higher by an amount we have not measured and will not estimate.
| Window | Rolling 30 days · latest post in window 10 August 2026 |
|---|---|
| Posts held | 20 (3 June 2026 – 10 August 2026) |
| Views total | 30 |
| Reactions total | — |
| Forwards / comments | not exposed by the public surface — not measured, not estimated |
| Readings taken | 12 Aug 2026, 13:01 UTC |
Views are a single reading per post, taken at the time above. A post published in the last day or two is still accumulating views, which pulls the 30-day average down slightly. That is a property of the standard definition rather than a fault in it, so we keep the definition rather than “correcting” the number into something nobody can reproduce.
Precision. Telegram publishes view counts on its public widget in short form — 8.12K, 3.7M — so any reading at or above 1,000 reaches us rounded to three significant figures, and only counts below 1,000 are exact. Averages and rates derived from them are shown to the same precision rather than to the unit: a figure like 3,701,250 would assert digits nobody measured.
Reaction counts are published per emoji and rounded the same way, so a total below 1,000 is exact and a larger one is a sum that may carry a rounded component from each emoji above 1,000. Because it is a sum, it does not look rounded — read a large reaction total as three significant figures per contributing emoji rather than as the figure it prints.
What this channel posts
- Photos
- 3
- Videos
- 2
- Links
- 151
Lifetime counters from Telegram’s own channel header, read 12 August 2026 — not the date at the top of this page, which is when the subscriber count was last read. Below Telegram’s rounding threshold, so these counts are exact.
Recent posts
🎉 gramiojs/[email protected] - 4 new tests covering the edge cases (SuggestedPostRefunded.reason: "24" no longer leaks) - enum extraction ignores prose numbers when quoted values exist - fixes regression where editMessageText.text lost FormattableString - description "after entit(y|ies) parsing" is redundant but still matches (bare parse_mode claims the field it is documented under) feat: structural form…
🎉 gramiojs/[email protected] Closes #32 comparison) instead of assigning the status. Also fixes koa's `unauthorized()` writing `ctx.status === 401` (a no-op web-standard `Headers#get`) keep using the canonical casing. Adapters with a case-insensitive lookup (express/koa/hono helpers, `undefined` and every update was rejected with 401 once `secretToken` was set. lowercased keys, so `headers["X-Telegram-Bot-Ap…
🎉 gramiojs/[email protected] Pin @gramio/types ^10.2.1. - Wired into ContextsMapping / EVENTS / service-message list / exports. - Message getters: receiverUser, ephemeralMessageId, communityChatAdded/Removed. - Community structure; ChatFullInfo.community getter. isCanceled/isActive/isFailed), CommunityChatAdded/RemovedContext. feat: Bot API 10.2 — Communities, subscription update, ephemeral getters (0.10.0)- Su…
🎉 gramiojs/[email protected] ^10.2.1 / schema-parser ^1.1.1. the recursive InputRichBlock graph (provably output-preserving). Pin types scripts/generate.ts: barren-subtree pruning to stop combinatorial explosion on Text/Caption, sendRichMessage/Draft, InputMediaVoiceNote caption branches. feat: Bot API 10.2 mutator regen + generator explosion fix (0.10.0)Regenerated FormattableMap for Bot API 10.2 (39 methods): edit…
🎉 gramiojs/[email protected] thumbnail/photo/cover blob detection). Pin @gramio/types ^10.2.1. feat: Bot API 10.2 — editEphemeralMessageMedia upload support (0.7.0)Regenerated MEDIA_METHODS to include editEphemeralMessageMedia (media/ Compare release changes
🎉 gramiojs/[email protected] release v10.2.1 Compare release changes
🎉 gramiojs/[email protected] docs: document gh-based publish workflow and status monitoring in CLAUDE.md formattable (FormattableString) typing. Match either wording + regression tests. matched the plural "after entities parsing", so those methods silently lost parsing" (singular) when rich_message landed in Bot API 10.1. The detector only fix: match singular "after entity parsing" so edit-text methods keep …
🎉 gramiojs/[email protected] collision instead of silently desyncing. as-is — the gated middleware captured the id by value — and throws on so their runtime semantics are unchanged. `extend()` keeps legacy ids `dispatchActive` checks the flag and routes them down the legacy path, Legacy steps push a placeholder entry (`legacy: true`, no composer); `~scene.steps` is now the complete ordered registry of every step. …
🎉 gramiojs/[email protected] Closes #3 Closes #4 without a default — it is simply absent from the result. - deserialize() no longer console.error()s for an omitted optional field cryptic TypeError (or silently packing false for booleans). "Missing value for required field '<key>'" at pack() instead of a - undefined for a required field throws `{id}`; schemas with required fields always reach the s…
🎉 gramiojs/[email protected] release v9.4.0 release v10.1.0 release v10.2.0 Compare release changes
🎉 gramiojs/[email protected] Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]> - D2-1: createDialogs().background edits the last message with no update - D2-5: over-long callback_data throws a named error into onError - D2-2: concurrent taps on one stack don't lost-update (withLock + reload) three fixes that previously had no e2e coverage: test: cover D2-1/D2-2/D2-5 end-to-end via @gramio/testA…
Showing the 12 most recent of 20 posts we hold for @gramiojs. View and reaction counts are the latest single reading for each post, not a live figure, and a recent post is still accumulating both. A view count marked ≈ was rounded by Telegram before we ever saw it — t.me prints views in full below 1,000 and to three significant figures above, so ≈1,200,000 means somewhere between 1,150,000 and 1,249,999. Unmarked counts are exact. Text is reproduced from the public post preview and truncated for length.
Citation-graph rank
Citation-graph rank — 589,359 of 1,480,944entries in the measured graph. A weighted position computed from the forward and mention edges below — republished posts weigh more than named mentions — and recomputed periodically, over the whole graph. Published only as this ordinal position, never as a score: a position is a fact, and a score printed beside one channel’s name would read as a verdict this register does not make. The two counts beneath stay separate for the same reason mentions are never summed with forwards anywhere else on this page — a named-by count costs nothing to manufacture. The top 100 by this measure, or how it is computed.
Forward network
Republished by
Channels on the register that have forwarded this channel's posts into their own feed.
Built only from forwarded posts we have actually read, on both sides. Coverage is early and deliberately incomplete: a missing link means we have not read the post that would prove it, never that the relationship does not exist. Counts are distinct forwarded posts observed, so they only ever go up as we read more.
Cite this entry
A live page changes as we take new readings, so a citation should name the measurement it is based on, not just the URL. The line below cites the subscriber count as measured 12 August 2026 — this entry's latest reading, not the date you are reading this.
“gramio” (@gramiojs), 9 subscribers as measured 12 August 2026. Telegram Register, tgregister.com/channel/gramiojs.
Full measurement history, CC BY 4.0. Every reading this register holds for this entry, not just the latest one, as a dated, downloadable record: CSV · JSON. Free to use with attribution to tgregister.com. Each file carries its own generation timestamp, which is the figure to cite for exactly when the data was retrieved.