Skip to content

fix(channels): preserve command progress detail#94868

Merged
vincentkoc merged 1 commit into
mainfrom
fix/forward-port-channel-command-progress-detail
Jun 19, 2026
Merged

fix(channels): preserve command progress detail#94868
vincentkoc merged 1 commit into
mainfrom
fix/forward-port-channel-command-progress-detail

Conversation

@vincentkoc

Copy link
Copy Markdown
Member

Summary

Verification

  • pnpm test:serial src/channels/streaming.test.ts src/plugin-sdk/channel-streaming.test.ts extensions/discord/src/monitor/message-handler.process.test.ts extensions/telegram/src/bot-message-dispatch.test.ts extensions/matrix/src/matrix/monitor/handler.test.ts extensions/msteams/src/reply-dispatcher.test.ts
  • .agents/skills/autoreview/scripts/autoreview --mode branch --base origin/main
  • Testbox tbx_01kvfehj0r36z7t904qdvtp07z: pnpm check:changed

@openclaw-barnacle openclaw-barnacle Bot added channel: discord Channel integration: discord channel: matrix Channel integration: matrix channel: msteams Channel integration: msteams channel: telegram Channel integration: telegram size: S maintainer Maintainer-authored PR labels Jun 19, 2026
@vincentkoc vincentkoc self-assigned this Jun 19, 2026
@vincentkoc vincentkoc marked this pull request as ready for review June 19, 2026 08:16
@clawsweeper

clawsweeper Bot commented Jun 19, 2026

Copy link
Copy Markdown
Contributor

Codex review: needs maintainer review before merge. Reviewed June 19, 2026, 4:35 AM ET / 08:35 UTC.

Summary
The branch changes shared channel streaming command-output formatting and merge logic, then updates Discord, Telegram, Matrix, MS Teams, and SDK tests to preserve useful command progress detail after successful completion.

PR surface: Source +3, Tests +2. Total +5 across 7 files.

Reproducibility: yes. Current main source rewrites successful no-title command output to generic completed and blocks completed-output detail recovery; the PR tests encode the corrected preserved-detail path.

Review metrics: 1 noteworthy metric.

  • Channel regression coverage: 4 transport expectations + 2 shared helper expectations changed. The bug is owned by one shared formatter/merge helper but is visible across multiple chat adapters, so cross-channel expectations reduce drift before merge.

Root-cause cluster
Relationship: canonical
Canonical: #94868
Summary: This PR is the current main forward-port for the command-progress-detail regression already hotfixed on the release branch.

Members:

Proposal only: this assessment does not dispatch repair, suppress jobs, mutate sibling items, close, or merge anything.

Merge readiness
Overall: 🐚 platinum hermit
Proof: 🌊 off-meta tidepool
Patch quality: 🐚 platinum hermit
Result: ready for maintainer review.

Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch.

Rank-up moves:

  • none.

Mantis proof suggestion
Native Telegram proof would directly show successful command progress keeping command detail instead of changing the draft to generic completed text. A maintainer can ask Mantis to capture proof by posting this exact PR comment:

@openclaw-mantis telegram desktop proof: verify that successful command progress keeps the command detail instead of changing the draft to completed.

Risk before merge

  • [P1] I did not run the focused test suite in this read-only review, and several live GitHub checks were still queued for head 3217f45 at inspection time; normal maintainer landing should wait for current-head checks.

Maintainer options:

  1. Decide the mitigation before merge
    Land the shared helper fix after normal maintainer and current-head check gates, keeping command detail visible while still suppressing stale terminal details.
  2. Pause or close
    Do not merge this PR until maintainers decide whether the risk is worth taking.

Next step before merge

  • [P2] No repair lane is needed because there is no actionable review finding; this maintainer-labeled PR should proceed through normal maintainer and CI landing gates.

Security
Cleared: The patch only changes channel progress formatting logic and tests; no security or supply-chain sensitive surface is modified.

Review details

Best possible solution:

Land the shared helper fix after normal maintainer and current-head check gates, keeping command detail visible while still suppressing stale terminal details.

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

Yes. Current main source rewrites successful no-title command output to generic completed and blocks completed-output detail recovery; the PR tests encode the corrected preserved-detail path.

Is this the best way to solve the issue?

Yes. The shared streaming helper owns command progress construction, merge identity, and rendering across the affected channels, so this is narrower and less drift-prone than per-channel rewrites.

AGENTS.md: found and applied where relevant.

Codex review notes: model internal, reasoning high; reviewed against dbd5689ea199.

Label changes

Label justifications:

  • P2: This is a bounded user-visible multi-channel progress-draft regression rather than an outage, data-loss, security, or speculative cleanup item.
  • rating: 🐚 platinum hermit: Overall readiness is 🐚 platinum hermit; proof is 🌊 off-meta tidepool and patch quality is 🐚 platinum hermit.
  • status: 👀 ready for maintainer look: ClawSweeper has no concrete contributor-facing blocker left for this PR. Not applicable: This is a maintainer-labeled PR, so the external contributor proof gate does not apply; the body still records focused tests, autoreview, and Testbox changed-check proof.
  • mantis: telegram-visible-proof: Mantis should capture Telegram visible proof. The PR changes visible Telegram progress draft text, so a short Telegram Desktop recording can directly demonstrate the behavior.
Evidence reviewed

PR surface:

Source +3, Tests +2. Total +5 across 7 files.

View PR surface stats
Area Files Added Removed Net
Source 1 14 11 +3
Tests 6 26 24 +2
Docs 0 0 0 0
Config 0 0 0 0
Generated 0 0 0 0
Other 0 0 0 0
Total 7 40 35 +5

What I checked:

  • Root policy read and applied: Root AGENTS.md was read fully, and scoped channel/plugin/extension policy plus the Telegram maintainer note were applied because the PR touches shared channel streaming, plugin SDK tests, and visible Telegram progress drafts. (AGENTS.md:22, dbd5689ea199)
  • Current main rewrites successful no-title command output: On current main, successful command-output with no title is converted to detail/text completed, which can hide the prior useful command detail. (src/channels/streaming.ts:446, dbd5689ea199)
  • Current main blocks completed-output detail recovery: On current main, mergeProgressDraftLineUpdate returns early for incoming completed command-output lines, so completion cannot inherit previous non-terminal command detail. (src/channels/streaming.ts:1153, dbd5689ea199)
  • PR head removes both blockers: PR head leaves successful no-title command output as the tool label and allows completed command-output to recover previous non-terminal detail while avoiding stale terminal failed/completed detail. (src/channels/streaming.ts:455, 3217f45e61fe)
  • Shared regression coverage matches the behavior: The SDK test now expects completed command output to keep install dependencies, and separately verifies that a recovered stale failed command does not retain the failed detail. (src/plugin-sdk/channel-streaming.test.ts:600, 3217f45e61fe)
  • Transport callers share the fixed helper: Discord, Telegram, Matrix, MS Teams, and Slack command-output progress callbacks route through the shared channel streaming helpers, so the central fix covers the sibling channel surfaces instead of duplicating per-channel behavior. (extensions/telegram/src/bot-message-dispatch.ts:2485, dbd5689ea199)

Likely related people:

  • vincentkoc: Current-main history ties the generic completed reset to commit 5ee0f13, and nearby test alignment touched the same successful command progress expectations. (role: recent area contributor; confidence: high; commits: 5ee0f13a5484, 0105a17bcf91; files: src/channels/streaming.ts, src/channels/streaming.test.ts, src/plugin-sdk/channel-streaming.test.ts)
  • obviyus: Authored the merged release-branch hotfix and the cherry-picked commit used for this main forward-port. (role: release hotfix author; confidence: high; commits: 392039a27c9c, 3217f45e61fe; files: src/channels/streaming.ts, src/plugin-sdk/channel-streaming.test.ts, extensions/telegram/src/bot-message-dispatch.test.ts)
  • bdjben: Authored the earlier merged Matrix command-progress replacement PR that established the recovered-command replacement behavior this fix builds on. (role: initial related behavior contributor; confidence: medium; commits: 3fc850fe8685; files: extensions/matrix/src/matrix/monitor/handler.ts, extensions/matrix/src/matrix/monitor/handler.test.ts, src/channels/streaming.ts)
  • jesse-merhi: Co-authored the merged shared command-progress identity work that touched the same helper and sibling progress behavior. (role: recent adjacent contributor; confidence: medium; commits: 3fc850fe8685; files: src/channels/streaming.ts, extensions/telegram/src/bot-message-dispatch.test.ts, extensions/matrix/src/matrix/monitor/handler.test.ts)
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.

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.

@clawsweeper clawsweeper Bot added rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. mantis: telegram-visible-proof Mantis should capture Telegram visible proof. P2 Normal backlog priority with limited blast radius. labels Jun 19, 2026
@vincentkoc vincentkoc force-pushed the fix/forward-port-channel-command-progress-detail branch from 19d38b9 to 3217f45 Compare June 19, 2026 08:27
@vincentkoc

Copy link
Copy Markdown
Member Author

Forward-port is land-ready on exact head 3217f45e61fe63cb3dbc30ab82c076d0085d5072.

Verification:

  • Targeted channel and extension behavior: OPENCLAW_VITEST_MAX_WORKERS=1 pnpm test:serial src/channels/streaming.test.ts src/plugin-sdk/channel-streaming.test.ts extensions/discord/src/monitor/message-handler.process.test.ts extensions/telegram/src/bot-message-dispatch.test.ts extensions/matrix/src/matrix/monitor/handler.test.ts extensions/msteams/src/reply-dispatcher.test.ts
  • Review: .agents/skills/autoreview/scripts/autoreview --mode branch --base origin/main (clean)
  • Changed gate: Testbox tbx_01kvfehj0r36z7t904qdvtp07z, pnpm check:changed (passed)
  • Hosted exact-head gate: CI release gate 27814686964 (passed)
  • Hosted exact-head gate: Workflow Sanity 27814616340 (passed)

scripts/pr prepare-run 94868 passed with hosted_exact_head on this SHA.

@vincentkoc vincentkoc merged commit 5e329f4 into main Jun 19, 2026
156 checks passed
@vincentkoc vincentkoc deleted the fix/forward-port-channel-command-progress-detail branch June 19, 2026 08:36
@vincentkoc

Copy link
Copy Markdown
Member Author

Merged via squash.

Thanks @vincentkoc!

github-actions Bot pushed a commit to Desicool/openclaw that referenced this pull request Jun 20, 2026
Merged via squash.

Prepared head SHA: 3217f45
Co-authored-by: vincentkoc <25068+vincentkoc@users.noreply.github.com>
Co-authored-by: vincentkoc <25068+vincentkoc@users.noreply.github.com>
Reviewed-by: @vincentkoc
cxbAsDev pushed a commit to cxbAsDev/openclaw that referenced this pull request Jun 23, 2026
Merged via squash.

Prepared head SHA: 3217f45
Co-authored-by: vincentkoc <25068+vincentkoc@users.noreply.github.com>
Co-authored-by: vincentkoc <25068+vincentkoc@users.noreply.github.com>
Reviewed-by: @vincentkoc
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

channel: discord Channel integration: discord channel: matrix Channel integration: matrix channel: msteams Channel integration: msteams 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: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. size: S status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants