Skip to content

fix(telegram): honor table mode in outbound chunks#85455

Merged
steipete merged 1 commit into
mainfrom
codex/85085-telegram-outbound-table-mode
May 22, 2026
Merged

fix(telegram): honor table mode in outbound chunks#85455
steipete merged 1 commit into
mainfrom
codex/85085-telegram-outbound-table-mode

Conversation

@steipete

Copy link
Copy Markdown
Contributor

Summary:

  • thread outbound formatting.tableMode into Telegram markdown chunk rendering
  • keep explicit HTML parse-mode chunking unchanged
  • add regression coverage for table-to-bullets rendering through the outbound adapter chunker

Verification:

  • pnpm test extensions/telegram/src/telegram-outbound.test.ts
  • .agents/skills/autoreview/scripts/autoreview --mode local

Behavior addressed:
Telegram outbound markdown chunking accepted formatting metadata but dropped tableMode, so table rendering could differ from the configured Telegram markdown behavior once messages were chunked.

Real environment tested:
Local macOS checkout with the Telegram extension Vitest shard.

Exact steps or command run after this patch:
pnpm test extensions/telegram/src/telegram-outbound.test.ts

Evidence after fix:
The outbound adapter test now sends a markdown table through the chunker with formatting.tableMode: "bullets" and verifies the rendered chunk contains the bullet-form table content instead of the raw table syntax.

Observed result after fix:
1 Vitest file passed, 3 tests passed; autoreview reported no accepted/actionable findings.

What was not tested:
A live Telegram send; the fix is isolated to the deterministic outbound markdown chunker before network delivery.

Fixes #85085.

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

clawsweeper Bot commented May 22, 2026

Copy link
Copy Markdown
Contributor

Codex review: needs real behavior proof before merge.

Latest ClawSweeper review: 2026-05-22 17:24 UTC / May 22, 2026, 1:24 PM ET.

Workflow note: Future ClawSweeper reviews update this same comment in place.

How this review workflow works
  • ClawSweeper keeps one durable marker-backed review comment per issue or PR.
  • Re-runs edit this comment so the latest verdict, findings, and automation markers stay together instead of adding duplicate bot comments.
  • A fresh review can be triggered by eligible @clawsweeper re-review comments, exact-item GitHub events, scheduled/background review runs, or manual workflow dispatch.
  • PR/issue authors and users with repository write access can comment @clawsweeper re-review or @clawsweeper re-run on an open PR or issue to request a fresh review only.
  • Maintainers can also comment @clawsweeper review to request a fresh review only.
  • Fresh-review commands do not start repair, autofix, rebase, CI repair, or automerge.
  • Maintainer-only repair and merge flows require explicit commands such as @clawsweeper autofix, @clawsweeper automerge, @clawsweeper fix ci, or @clawsweeper address review.
  • Maintainers can comment @clawsweeper explain to ask for more context, or @clawsweeper stop to stop active automation.

Summary
The PR forwards formatting.tableMode into Telegram outbound markdown chunk rendering, preserves explicit HTML chunking, adds a regression test, and adds a changelog entry.

Reproducibility: yes. source inspection gives a high-confidence path: call telegramOutbound.chunker on a Markdown table with formatting.tableMode: "bullets"; current main drops that option before markdownToTelegramChunks, while the PR forwards it.

PR rating
Overall: 🦪 silver shellfish
Proof: 🦪 silver shellfish
Patch quality: 🐚 platinum hermit
Summary: The patch is small and well targeted with focused regression coverage, but merge readiness is capped by missing real Telegram proof.

Rank-up moves:

  • Add a redacted live Telegram screenshot, recording, transcript, terminal output, or log showing chunked table output with markdown.tables: bullets after this patch.
What the crustacean ranks mean
  • 🦀 challenger crab: rare, exceptional readiness with strong proof, clean implementation, and convincing validation.
  • 🦞 diamond lobster: very strong readiness with only minor maintainer review expected.
  • 🐚 platinum hermit: good normal PR, likely mergeable with ordinary maintainer review.
  • 🦐 gold shrimp: useful signal, but proof or patch confidence is still limited.
  • 🦪 silver shellfish: thin signal; proof, validation, or implementation needs work.
  • 🧂 unranked krab: not merge-ready because proof is missing/unusable or there are serious correctness or safety concerns.
  • 🌊 off-meta tidepool: rating does not apply to this item.

Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics.

Real behavior proof
Needs real behavior proof before merge: The PR body provides local Vitest/autoreview output only and explicitly says a live Telegram send was not tested; a redacted screenshot, recording, transcript, terminal output, or log from a real Telegram send is still needed. After adding proof, update the PR body; ClawSweeper should re-review automatically. If it does not, the PR author or someone with repository write access can comment @clawsweeper re-review.

Mantis proof suggestion
A native Telegram Desktop proof would directly show whether the configured chunked table renders as bullet-style content rather than raw pipes. A maintainer can ask Mantis to capture proof by posting a new PR comment that starts with the OpenClaw Mantis account mention, followed by:

telegram desktop proof: send a chunked Telegram message with markdown.tables=bullets and verify the table renders as bullet-style content, not raw pipes.

Risk before merge

  • No redacted live Telegram transcript, screenshot, recording, or log proves a configured chunked table renders correctly after the patch; the PR body explicitly says live Telegram was not tested.

Maintainer options:

  1. Decide the mitigation before merge
    Merge the focused table-mode threading after adding visible Telegram proof that a chunked Markdown table with markdown.tables: bullets renders as bullet-style content rather than raw pipes.
  2. Pause or close
    Do not merge this PR until maintainers decide whether the risk is worth taking.

Next step before merge
This needs contributor or maintainer-supplied live Telegram proof and protected-label handling, not an automated code repair.

Security
Cleared: The current diff only touches Telegram source/test code and the changelog, and the live Socket comment reports no dependency changes.

Review details

Best possible solution:

Merge the focused table-mode threading after adding visible Telegram proof that a chunked Markdown table with markdown.tables: bullets renders as bullet-style content rather than raw pipes.

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

Yes, source inspection gives a high-confidence path: call telegramOutbound.chunker on a Markdown table with formatting.tableMode: "bullets"; current main drops that option before markdownToTelegramChunks, while the PR forwards it.

Is this the best way to solve the issue?

Yes, the PR is the narrow maintainable fix for the functional bug because it reuses the existing outbound formatting contract and keeps explicit HTML parse-mode chunking unchanged.

Label changes:

  • remove merge-risk: 🚨 compatibility: Current PR review selected no merge-risk labels.

Label justifications:

  • P2: This fixes a normal Telegram rendering bug with a narrow channel/outbound chunking surface and no evidence of data loss, security impact, or core runtime outage.
  • rating: 🦪 silver shellfish: Current PR rating is 🦪 silver shellfish because proof is 🦪 silver shellfish, patch quality is 🐚 platinum hermit, and The patch is small and well targeted with focused regression coverage, but merge readiness is capped by missing real Telegram proof.
  • status: 📣 needs proof: The PR needs real behavior proof before ClawSweeper can clear the contributor ask. Needs real behavior proof before merge: The PR body provides local Vitest/autoreview output only and explicitly says a live Telegram send was not tested; a redacted screenshot, recording, transcript, terminal output, or log from a real Telegram send is still needed. After adding proof, update the PR body; ClawSweeper should re-review automatically. If it does not, the PR author or someone with repository write access can comment @clawsweeper re-review.
  • mantis: telegram-visible-proof: Mantis should capture Telegram visible proof. This changes visible Telegram chat rendering for chunked Markdown tables, which is straightforward to show in a short Telegram Desktop proof.

What I checked:

Likely related people:

  • steipete: Local git blame on current main attributes the current Telegram outbound chunker and formatter wrapper lines to Peter Steinberger, and the related issue review also identifies him with recent markdown table configuration work. (role: recent area contributor; confidence: high; commits: c21ca883b0cc, b77e73065775, bd7d362d3b32; files: extensions/telegram/src/format.ts, extensions/telegram/src/outbound-adapter.ts, src/config/markdown-tables.ts)
  • scoootscooob: The related issue review identifies the Telegram extension move/refactor as carrying the affected formatter and outbound adapter surfaces into extensions/telegram/src. (role: major Telegram refactor contributor; confidence: medium; commits: e5bca0832fbd; files: extensions/telegram/src/format.ts, extensions/telegram/src/outbound-adapter.ts)
  • George Zhang: The related issue review identifies prior Telegram Markdown table conversion work in the Markdown IR and Telegram formatter path as relevant to this bug's table-mode behavior. (role: introduced Telegram table rendering behavior; confidence: medium; commits: a1413a011e86; files: src/markdown/ir.ts, extensions/telegram/src/format.ts)

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

@steipete steipete requested a review from a team as a code owner May 22, 2026 16:59
@github-actions github-actions Bot added the dependencies-changed PR changes dependency-related files label May 22, 2026
@socket-security

socket-security Bot commented May 22, 2026

Copy link
Copy Markdown

No dependency changes detected. Learn more about Socket for GitHub.

👍 No dependency changes detected in pull request

@clawsweeper clawsweeper Bot added rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. mantis: telegram-visible-proof Mantis should capture Telegram visible proof. P2 Normal backlog priority with limited blast radius. merge-risk: 🚨 compatibility 🚨 May break existing users, config, migrations, defaults, or upgrade paths. labels May 22, 2026
@clawsweeper

clawsweeper Bot commented May 22, 2026

Copy link
Copy Markdown
Contributor

ClawSweeper PR egg

🎁 Pass real behavior proof to wake the egg and unlock a hatchable treat.

Where did the egg go?
  • The egg game starts only after the PR passes the real-behavior proof check.
  • Before that, no creature or rarity is rolled. The treat waits for real proof.
  • This is still just collectible flavor: proof affects review readiness, not creature quality.

@steipete steipete force-pushed the codex/85085-telegram-outbound-table-mode branch from defd48c to 78cfe7e Compare May 22, 2026 17:10
@github-actions github-actions Bot removed the dependencies-changed PR changes dependency-related files label May 22, 2026
@openclaw-barnacle openclaw-barnacle Bot removed channel: discord Channel integration: discord channel: whatsapp-web Channel integration: whatsapp-web extensions: diagnostics-otel Extension: diagnostics-otel extensions: memory-lancedb Extension: memory-lancedb channel: twitch Channel integration: twitch labels May 22, 2026
@steipete steipete force-pushed the codex/85085-telegram-outbound-table-mode branch from 78cfe7e to d914881 Compare May 22, 2026 17:13
@github-actions github-actions Bot removed the dependencies-changed PR changes dependency-related files label May 22, 2026
@steipete steipete force-pushed the codex/85085-telegram-outbound-table-mode branch from d914881 to e697596 Compare May 22, 2026 17:18
@clawsweeper clawsweeper Bot removed the merge-risk: 🚨 compatibility 🚨 May break existing users, config, migrations, defaults, or upgrade paths. label May 22, 2026
@steipete steipete force-pushed the codex/85085-telegram-outbound-table-mode branch from e697596 to 4d3223a Compare May 22, 2026 17:25
@steipete steipete merged commit 7fc691a into main May 22, 2026
18 checks passed
@steipete steipete deleted the codex/85085-telegram-outbound-table-mode branch May 22, 2026 17:26
SebTardif pushed a commit to SebTardif/openclaw that referenced this pull request May 24, 2026
SebTardif pushed a commit to SebTardif/openclaw that referenced this pull request May 24, 2026
SebTardif pushed a commit to SebTardif/openclaw that referenced this pull request May 24, 2026
github-actions Bot pushed a commit to Desicool/openclaw that referenced this pull request May 24, 2026
galiniliev pushed a commit to galiniliev/openclaw that referenced this pull request May 25, 2026
SebTardif pushed a commit to SebTardif/openclaw that referenced this pull request May 26, 2026
SebTardif pushed a commit to SebTardif/openclaw that referenced this pull request May 26, 2026
SebTardif pushed a commit to SebTardif/openclaw that referenced this pull request May 26, 2026
jameslcowan pushed a commit to jameslcowan/openclaw that referenced this pull request Jun 2, 2026
SYU8384 pushed a commit to SYU8384/openclaw that referenced this pull request Jun 3, 2026
sablehead pushed a commit to sablehead/openclaw that referenced this pull request Jun 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

channel: telegram Channel integration: telegram maintainer Maintainer-authored PR mantis: telegram-visible-proof Mantis should capture Telegram visible proof. P2 Normal backlog priority with limited blast radius. rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. size: XS status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug] markdown.tables config is ignored during Telegram outbound message chunking / streaming

1 participant