From aa41454ae95224e1d08109efcdfca1cd01d509ab Mon Sep 17 00:00:00 2001 From: Capsizer Date: Sat, 7 Nov 2026 01:16:34 +0330 Subject: [PATCH] Version 2.5.0: the Go worker becomes the forwarder's execution engine (PRs #277-#342) The forwarder's execution moves out of the Python core and into the Go worker. The Go engine owns the whole delivery decision and its pipeline: execution engine and Telegram runtime boundary (#284), PostgreSQL persistence and the real rule store (#286), bot transport, branding stage and durable scheduler (#288), canonical content policy, link classifier and codepoint length parity (#290), Go transform authority - cleaner, links, replacements (#293) with target-scoped overrides (#294), header placeholder rendering (#295), the paid-addon entitlement gate (#296), filter tenant boundaries (#302), forward-every-N cadence (#310), the dedup plane (#309), routing and loop prevention (#308), the effective-settings ownership layer (#311), the AI provider execution path (#313), channel-to-channel AI rewriting (#314), the PVA/autoreply port (#315) with structured decision logging (#320, #318), and the AI rewrite stage wired into the production worker main (#325). The core serves the Telegram transport gateway in-process (#321) and ships the proto stubs and runtime the worker resolves (#322, #323). Delivery guarantees are verified end to end with observability correlation (#312). Delivery reliability got its root causes fixed instead of patched around: re-upload staging now carries the real file extension - the PHOTO_EXT_INVALID root cause (#339), and one dispatch per job - fence lease, album ambiguity, bot-route media rescue, staged-file hygiene (#341). Poll cursors release past terminal gaps (#278), failures land in a canonical taxonomy with raw Telegram error capture (#279), and empty-session probe semantics plus the missing SendMedia RPC are in (#330). The lane-roster claim makes the queue 5-7x faster at backlog scale (#328). The web dashboard becomes a premium application: application shell, design system, task workspace and delivery timeline (#316, #280, #281), the DevOps flight deck (#282, #283) with working worker controls (#335-#338), logging-pipeline health (#317), task monitor sort and needs-attention filter (#332), throughput aggregation windows (#333), and poll backoff with stale-data labelling (#331). The branding/replace/AI suite upgrades end to end (#342): the channel-only hop gate (a user message ships direct with its own "Forwarded from" header, channel content takes the branded hop), replace any link / any @ID maps with entity-aware rewriting on both engines, the prompt library with enable/disable across bot, dashboard and mobile, the branding failure trail into the Rust log store, and 1:1 i18n across all ten locales. Ops: deploy actually ships the worker (#340), percentile accessors, Postgres ops-store CI and the worker master key (#329), compose overlay tests (#326), truthful stage health with correlation on every sink, and the architecture/behavior contract is documented (#289, #277). --- VERSION | 2 +- mobile/pubspec.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/VERSION b/VERSION index 9183195a..fad066f8 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2.4.0 \ No newline at end of file +2.5.0 \ No newline at end of file diff --git a/mobile/pubspec.yaml b/mobile/pubspec.yaml index ee492013..b77d0797 100644 --- a/mobile/pubspec.yaml +++ b/mobile/pubspec.yaml @@ -1,7 +1,7 @@ name: autoforward_mobile description: "AutoTelegramForward — production mobile client for the AutoTelegramForward forwarding engine." publish_to: "none" -version: 2.4.0+10 +version: 2.5.0+11 environment: sdk: ^3.13.0