Skip to content

Fix Telegram forum topic final delivery#76764

Merged
obviyus merged 3 commits into
mainfrom
fix/telegram-topic-final-delivery
May 3, 2026
Merged

Fix Telegram forum topic final delivery#76764
obviyus merged 3 commits into
mainfrom
fix/telegram-topic-final-delivery

Conversation

@obviyus

@obviyus obviyus commented May 3, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Require an observed Telegram send, edit, or fallback before treating an inbound Telegram turn as visibly answered.
  • Keep the silent fallback path available for forum-topic queued finals that never reach Telegram.
  • Add regression coverage for the forum topic delivery miss and update the changelog.

Verification

  • Live repro confirmed: transcript final existed for topic 2, but no Telegram send was observed before this fix.
  • pnpm test extensions/telegram/src/bot-message-dispatch.test.ts
  • pnpm exec oxfmt --check --threads=1 CHANGELOG.md extensions/telegram/src/bot-message-dispatch.ts extensions/telegram/src/bot-message-dispatch.test.ts
  • git diff --check

Fixes #76554

@openclaw-barnacle openclaw-barnacle Bot added channel: telegram Channel integration: telegram size: S maintainer Maintainer-authored PR labels May 3, 2026
@clawsweeper

clawsweeper Bot commented May 3, 2026

Copy link
Copy Markdown
Contributor

Codex review: needs maintainer review before merge.

Summary
The PR changes Telegram final-delivery accounting so queued forum-topic finals require an observed send, edit, or fallback, adds a forum-topic regression test, and updates the changelog.

Reproducibility: yes. Current main's source path treats queuedFinal as a final response even when Telegram delivery was not observed, and the PR adds a focused forum-topic queued-final regression case; I did not execute tests in this read-only sweep.

Next step before merge
The protected maintainer label requires explicit maintainer handling rather than an automated repair lane.

Security
Cleared: The diff only changes Telegram plugin delivery logic, tests, and changelog text; it introduces no dependency, workflow, secret, or supply-chain surface.

Review details

Best possible solution:

Review and land this PR after maintainer approval and exact-head checks, keeping the fix local to the Telegram plugin delivery path.

Do we have a high-confidence way to reproduce the issue?

Yes. Current main's source path treats queuedFinal as a final response even when Telegram delivery was not observed, and the PR adds a focused forum-topic queued-final regression case; I did not execute tests in this read-only sweep.

Is this the best way to solve the issue?

Yes. The PR uses the existing Telegram delivery tracker as the authoritative signal, preserves message-tool-only suppression, and avoids changing the shared helper contract for other channels.

What I checked:

Likely related people:

  • @steipete: Recent current-main history includes the shared channel turn dispatch result helper and inbound turn kernel refactors that define how queuedFinal is interpreted. (role: recent maintainer and shared dispatch refactor owner; confidence: high; commits: 02ebac6250bf, ffe67e9cdc9e, e65b490f11f5; files: src/channels/turn/dispatch-result.ts, src/plugin-sdk/inbound-reply-dispatch.ts, extensions/telegram/src/bot-message-dispatch.ts)
  • @thats2easyyy: The latest local history for the Telegram dispatch file is fix message-tool-only telegram fallback (#76272), adjacent to the fallback suppression logic this PR preserves. (role: recent adjacent Telegram fallback owner; confidence: medium; commits: 796c1e67c3d9; files: extensions/telegram/src/bot-message-dispatch.ts)
  • @obviyus: Current-main GitHub history shows prior merged work on Telegram draft preview transport in the same dispatch path, beyond authorship of this PR. (role: recent Telegram draft delivery contributor; confidence: medium; commits: 2a4dd8925323; files: extensions/telegram/src/bot-message-dispatch.ts)
  • @rubencu: Recent merged Telegram work adjusted stale preview final delivery, which shares the lane delivery and observed-delivery surface affected here. (role: adjacent Telegram preview/final delivery contributor; confidence: medium; commits: a08b65a90a45; files: extensions/telegram/src/bot-message-dispatch.ts, extensions/telegram/src/lane-delivery-text-deliverer.ts)

Codex review notes: model gpt-5.5, reasoning high; reviewed against d0497d13d18e.

@obviyus

obviyus commented May 3, 2026

Copy link
Copy Markdown
Contributor Author

@clawsweeper automerge

@clawsweeper clawsweeper Bot added the clawsweeper:automerge Maintainer opted this PR into bounded ClawSweeper-reviewed automerge label May 3, 2026
@clawsweeper

clawsweeper Bot commented May 3, 2026

Copy link
Copy Markdown
Contributor

ClawSweeper 🐠 automerge status

ClawSweeper took another look; no safe branch change was available on this pass.

Executor outcome: source PR branch changed while the repair worker was preparing its push; requeue against the latest head.
Worker summary: Canonical path is the open contributor this PR. It is useful, narrow, same-repo writable, and covered by exact-head passing checks, but GitHub preflight reports it as dirty/unmergeable against current main, so the next deterministic action is to repair/rebase that PR branch and re-review before any merge. No close or merge actions are emitted because this job blocks both.

Worker actions:

  • fix_needed on this PR: planned - Repair the existing contributor branch, resolve dirty merge state against current main, rerun focused Telegram validation plus pnpm check:changed, then require a fresh ClawSweeper/Codex review before any later merge a...
  • build_fix_artifact on cluster:automerge-openclaw-openclaw-76764: planned - Build an executable repair artifact for the existing canonical PR branch.
  • keep_related on #76554: planned - The issue is covered by the canonical repair path, but closure is blocked until the canonical fix lands and this job does not allow close actions.
  • keep_closed on #76272: skipped - Already closed related context; no mutation needed.

No push, rebase, replacement PR, merge, or ClawSweeper re-review happened on this pass.

fish notes: model gpt-5.5, reasoning high.

Automerge progress:

  • 2026-05-03 15:19:34 UTC review queued [`f9bdd078dc0e`](https://github.com/openclaw/openclaw/commit/f9bdd078dc0ee0927829f40ab4c441c79c91d7fe) (queued)
  • 2026-05-03 15:20:47 UTC repair queued [`f9bdd078dc0e`](https://github.com/openclaw/openclaw/commit/f9bdd078dc0ee0927829f40ab4c441c79c91d7fe) (autonomous) Run: https://github.com/openclaw/clawsweeper/actions/runs/25282990414
  • 2026-05-03 16:18:07 UTC repair completed (no branch change) in 31m 51s Run: https://github.com/openclaw/clawsweeper/actions/runs/25283308533 source PR branch changed while the repair worker was preparing its push; requeue against the latest head

@obviyus obviyus self-assigned this May 3, 2026
@obviyus obviyus force-pushed the fix/telegram-topic-final-delivery branch from f9bdd07 to 3a6d6b4 Compare May 3, 2026 16:01
@obviyus obviyus merged commit 7f67980 into main May 3, 2026
93 of 94 checks passed
@obviyus obviyus deleted the fix/telegram-topic-final-delivery branch May 3, 2026 16:01
@obviyus

obviyus commented May 3, 2026

Copy link
Copy Markdown
Contributor Author

Landed on main.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

channel: telegram Channel integration: telegram clawsweeper:automerge Maintainer opted this PR into bounded ClawSweeper-reviewed automerge maintainer Maintainer-authored PR size: S

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: Telegram forum topic final replies generated but not delivered on 2026.5.2

1 participant