Skip to content

fix(auto-reply): hide recovered failed tool progress#97135

Open
litang9 wants to merge 14 commits into
openclaw:mainfrom
litang9:codex/hide-recovered-failed-progress
Open

fix(auto-reply): hide recovered failed tool progress#97135
litang9 wants to merge 14 commits into
openclaw:mainfrom
litang9:codex/hide-recovered-failed-progress

Conversation

@litang9

@litang9 litang9 commented Jun 27, 2026

Copy link
Copy Markdown
Contributor

What Problem This Solves

Recovered helper/tool failures could leak as visible failed progress in regular verbose auto-reply delivery even when the turn later produced a successful final reply. This made a recovered chat turn look failed. The PR hides those recovered failed progress events in regular verbose mode while preserving full-verbose diagnostics and terminal failure policy.

Evidence

Runtime proof was captured on PR head 076f03256a30d164453efbade434e395e72e6383 with OPENCLAW_PROOF_HEAD=$(git rev-parse HEAD) node --import tsx /tmp/openclaw-pr97135-proof.ts. The script used a disposable OpenClaw home/session store, imported the real dispatchReplyFromConfig entrypoint, and ran the actual dispatch path twice.

Observed after-fix runtime result: with verboseLevel: "on", failed command/item/tool-result progress produced commandOutput: 0, itemEvents: 0, toolResultCallback: 0, tool: 0, and still delivered final: 1. With verboseLevel: "full", diagnostics remained visible with commandOutput: 1, itemEvents: 1, toolResultCallback: 1, tool: 1, and final: 1.

Focused validation also passed: pnpm test -- --run src/auto-reply/reply/dispatch-from-config.test.ts src/auto-reply/reply/followup-runner.test.ts, pnpm exec oxfmt --check --threads=1 ..., and git diff --check.

Summary

Suppress recovered failed tool progress from regular verbose delivery while keeping full verbose diagnostics visible.

  • Hide failed onCommandOutput, failed item events, and failed tool-result progress in regular verbose mode.
  • Keep failed progress visible in verbose=full and for forced tool progress.
  • Apply the same policy to queued follow-up runs so delayed progress delivery does not surface recovered helper failures later.

Why

A transient helper/tool failure can be recovered by a later successful tool call or final assistant response. Showing the failed progress immediately makes the chat look like the turn failed even when the agent recovered and produced a valid answer.

This keeps the actual error classification intact: tool failures still remain in the run state/transcript, and terminal tool-error warnings remain available when the failure is not recovered. The change only gates user-visible progress delivery for ordinary verbose mode.

Real behavior proof

Behavior addressed: in regular verbose delivery, a failed helper command/item/tool-result progress event could be shown to the user immediately even when the agent later recovered and produced a successful final reply. This made a recovered turn look failed.

Real environment tested: local OpenClaw source checkout on macOS, PR head 076f03256a30d164453efbade434e395e72e6383, Node v24.13.1, using a disposable OpenClaw home/session store under /tmp. This is a direct runtime proof, not a Vitest assertion: the proof script imports the PR-head dispatchReplyFromConfig entrypoint and lets the real dispatch pipeline call the dispatcher and verbose progress callbacks.

Exact command run after this patch:

OPENCLAW_PROOF_HEAD=$(git rev-parse HEAD) node --import tsx /tmp/openclaw-pr97135-proof.ts

Runtime proof script shape:

  • Creates a disposable OPENCLAW_HOME and per-scenario session store.
  • Runs dispatchReplyFromConfig twice through the real runtime dispatch path.
  • Scenario A sets session verboseLevel: "on", emits failed onCommandOutput, failed onItemEvent, failed onToolResult, then returns a normal final reply.
  • Scenario B sets session verboseLevel: "full" with the same failed progress and final reply.
  • Records the actual dispatcher sends and actual progress callback invocations.

Observed runtime output:

{
  "marker": "PR97135-RUNTIME-PROOF-2026-06-27T14:36:02.903Z",
  "head": "076f03256a30d164453efbade434e395e72e6383",
  "proofRoot": "/var/folders/r8/x37z43b52tv63kn_ss3571t40000gp/T/openclaw-pr97135-proof-QY2c1J",
  "scenarios": [
    {
      "verboseLevel": "on",
      "dispatchResult": {
        "queuedFinal": true,
        "counts": {
          "tool": 0,
          "block": 0,
          "final": 1
        }
      },
      "callbackCounts": {
        "commandOutput": 0,
        "itemEvents": 0,
        "toolResultCallback": 0
      },
      "callbacks": {
        "commandOutput": [],
        "itemEvents": [],
        "toolResultCallback": []
      },
      "sentCounts": {
        "tool": 0,
        "block": 0,
        "final": 1
      },
      "sent": [
        {
          "kind": "final",
          "payload": {
            "text": "PR97135 on final reply delivered"
          }
        }
      ]
    },
    {
      "verboseLevel": "full",
      "dispatchResult": {
        "queuedFinal": true,
        "counts": {
          "tool": 1,
          "block": 0,
          "final": 1
        }
      },
      "callbackCounts": {
        "commandOutput": 1,
        "itemEvents": 1,
        "toolResultCallback": 1
      },
      "callbacks": {
        "commandOutput": [
          {
            "phase": "end",
            "title": "Exec",
            "name": "exec",
            "status": "failed",
            "exitCode": 1
          }
        ],
        "itemEvents": [
          {
            "itemId": "proof-item-full",
            "kind": "tool",
            "name": "exec",
            "status": "failed"
          }
        ],
        "toolResultCallback": [
          {
            "text": "PR97135 full recovered helper failure output",
            "isError": true
          }
        ]
      },
      "sentCounts": {
        "tool": 1,
        "block": 0,
        "final": 1
      },
      "sent": [
        {
          "kind": "tool",
          "payload": {
            "text": "PR97135 full recovered helper failure output",
            "isError": true
          }
        },
        {
          "kind": "final",
          "payload": {
            "text": "PR97135 full final reply delivered"
          }
        }
      ]
    }
  ]
}

Observed result after fix: regular verbose=on recovered failed progress produced no user-visible tool send and no progress callback delivery, while the final reply was still delivered (final: 1). Full verbose preserved the failed command output, item event, and tool-result diagnostic callbacks, and delivered both the failed tool payload and final reply.

Additional focused validation:

  • pnpm test -- --run src/auto-reply/reply/dispatch-from-config.test.ts src/auto-reply/reply/followup-runner.test.ts
  • pnpm exec oxfmt --check --threads=1 src/auto-reply/reply/dispatch-from-config.ts src/auto-reply/reply/dispatch-from-config.test.ts src/auto-reply/reply/followup-runner.ts src/auto-reply/reply/followup-runner.test.ts
  • git diff --check

What was not tested: a native Telegram Desktop/Mantis recording. The proof above exercises the shared dispatch layer that feeds channel delivery; channel adapters are not changed by this PR.

Tests

  • pnpm test -- --run src/auto-reply/reply/dispatch-from-config.test.ts src/auto-reply/reply/followup-runner.test.ts
  • pnpm exec oxfmt --check --threads=1 src/auto-reply/reply/dispatch-from-config.ts src/auto-reply/reply/dispatch-from-config.test.ts src/auto-reply/reply/followup-runner.ts src/auto-reply/reply/followup-runner.test.ts
  • git diff --check

Notes

Full repository tsc was attempted with the default heap and with NODE_OPTIONS=--max-old-space-size=8192; both runs aborted with Node heap OOM before reporting TypeScript diagnostics.

@openclaw-barnacle openclaw-barnacle Bot added size: S triage: needs-pr-context Candidate: external PR body lacks required problem context or evidence. labels Jun 27, 2026
@clawsweeper

clawsweeper Bot commented Jun 27, 2026

Copy link
Copy Markdown
Contributor

Codex review: needs maintainer review before merge. Reviewed July 19, 2026, 12:09 AM ET / 04:09 UTC.

Summary
The PR buffers failed command, item, and tool-result progress in regular verbose auto-replies, discarding it only after confirmed clean user-visible delivery while retaining full-verbose and terminal-failure visibility.

PR surface: Source +499, Tests +90. Total +589 across 4 files.

Reproducibility: yes. for the underlying behavior: the supplied Telegram observation and the shared-dispatch runtime scenario show recovered failed progress followed by a successful final reply. I did not execute the reproduction because this review environment could not start read-only shell inspection.

Review metrics: none identified.

Merge readiness
Overall: 🐚 platinum hermit
Proof: 🦞 diamond lobster
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:

  • [P2] Obtain an explicit maintainer decision on the regular-verbose default before merge.

Mantis proof suggestion
A short redacted Telegram Desktop recording would give maintainers a direct before/after view of the delivery policy that they must choose. A maintainer can ask Mantis to capture proof by posting this exact PR comment:

@openclaw-mantis telegram desktop proof: verify that a recovered failed tool-progress event stays hidden in regular verbose mode while the final reply is delivered, and remains visible in full verbose.

Risk before merge

  • [P1] Merging changes the regular-verbose default for every supported channel: a recovered failed helper step is no longer immediately visible once a later clean delivery settles, which may be desirable UX but is a deliberate observability-policy change.
  • [P1] The open related request proposes an explicit delivery-policy setting; merging this unconfigured default first could preempt that broader operator-choice discussion.

Maintainer options:

  1. Confirm the regular-verbose policy before merge (recommended)
    Approve the default suppression policy or direct the PR toward an explicit configuration design, then re-review the exact resulting behavior.
  2. Keep immediate failure visibility
    Pause or close this branch if maintainers want regular verbose to preserve all failed progress absent an opt-in policy.

Next step before merge

  • [P2] The remaining blocker is an explicit maintainer choice about default user-visible failure reporting, not a narrow repair that automation can safely choose.

Maintainer decision needed

  • Question: Should regular verbose auto-replies hide recovered failed tool progress by default once a non-error reply is confirmed delivered, or should that behavior require an explicit operator policy?
  • Rationale: The patch appears mechanically sound, but current behavior and the related open request frame failed-progress visibility as an operator-facing policy choice rather than a purely internal correctness invariant.
  • Likely owner: litang9 — They own the current implementation details and can promptly incorporate the selected policy direction, while the final decision should be made by the relevant auto-reply owner.
  • Options:
    • Adopt recovered-failure buffering by default (recommended): Merge the branch and treat confirmed clean final delivery as sufficient reason to keep earlier failed progress out of regular verbose output.
    • Require explicit policy selection: Do not merge this default change; design the behavior alongside the configurable delivery policy tracked in Feature request: config option to suppress transient tool error warnings #39406.

Security
Cleared: The four-file TypeScript and test diff changes reply-delivery policy only; no dependency, workflow, secret, permission, artifact, or supply-chain surface is introduced.

Review details

Best possible solution:

Have the auto-reply delivery owner explicitly choose whether regular verbose should suppress recovered failures by default; if accepted, retain this confirmed-delivery buffering with its direct and queued regressions, otherwise keep the existing default and pursue any alternative only through an explicit policy/config design.

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

Yes for the underlying behavior: the supplied Telegram observation and the shared-dispatch runtime scenario show recovered failed progress followed by a successful final reply. I did not execute the reproduction because this review environment could not start read-only shell inspection.

Is this the best way to solve the issue?

Unclear: the confirmed-delivery buffering is the narrowest implementation for the proposed UX, but whether it should become the unconditional regular-verbose default needs maintainer policy approval rather than another mechanical patch.

AGENTS.md: found and applied where relevant.

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

Label changes

Label justifications:

  • P2: This is a meaningful but bounded user-facing auto-reply delivery-policy change with no evidence of urgent runtime unavailability or data loss.
  • merge-risk: 🚨 message-delivery: The patch intentionally decides which failed progress events are delivered or suppressed after recovery across direct and queued reply paths.
  • rating: 🐚 platinum hermit: Overall readiness is 🐚 platinum hermit; proof is 🦞 diamond lobster and patch quality is 🐚 platinum hermit.
  • status: 👀 ready for maintainer look: ClawSweeper has no concrete contributor-facing blocker left for this PR. Sufficient (live_output): The PR supplies direct shared-runtime output showing regular verbose suppresses recovered failed progress while full verbose keeps it, and the latest change after the previously proof-accepted reviewed head is test-only; redact private chat, endpoint, and credential data in any future proof.
  • proof: sufficient: Contributor real behavior proof is sufficient. The PR supplies direct shared-runtime output showing regular verbose suppresses recovered failed progress while full verbose keeps it, and the latest change after the previously proof-accepted reviewed head is test-only; redact private chat, endpoint, and credential data in any future proof.
  • mantis: telegram-visible-proof: Mantis should capture Telegram visible proof. The defect and intended result are directly visible in Telegram chat: recovered helper failures should not appear beside or after a successful final reply.
Evidence reviewed

PR surface:

Source +499, Tests +90. Total +589 across 4 files.

View PR surface stats
Area Files Added Removed Net
Source 3 575 76 +499
Tests 1 95 5 +90
Docs 0 0 0 0
Config 0 0 0 0
Generated 0 0 0 0
Other 0 0 0 0
Total 4 670 81 +589

What I checked:

  • Current-main comparison: Current main contains the dispatcher-outcome plumbing used by delivery paths, but its auto-reply and follow-up sources contain no buffered or FollowupDeliveryOutcome policy path; the proposed recovered-failure buffering is not already implemented on main. (src/auto-reply/reply/dispatch-from-config.ts:2511, c684b1321333)
  • Earlier correctness blockers addressed: The recorded review sequence shows that the branch added delivery confirmation for blocks, routed finals, suppression, cancellation, and dispatcher settlement; the latest completed review at 55aac81 reported no remaining line-level finding. (src/auto-reply/reply/dispatch-from-config.ts:1541, 55aac817e765)
  • Latest head is test-only follow-up: The only commit after the prior reviewed head is test(auto-reply): fix recovered progress test types, so it does not reopen the prior runtime-policy findings. (src/auto-reply/reply/dispatch-from-config.progress.test-utils.ts:1, 50af653bf9f5)
  • Real user impact and runtime proof: The PR body supplies direct shared-dispatch runtime output for regular versus full verbose behavior, and a commenter supplied a redacted real Telegram observation where recovered helper failures appeared after a successful final reply. (src/auto-reply/reply/dispatch-from-config.ts:1874, 50af653bf9f5)
  • Related product decision remains open: The related feature request asks for configurable transient-tool-error delivery policy rather than an unconditional default change, showing that the remaining question is product direction rather than a missing mechanical repair.

Likely related people:

  • litang9: Authored the branch’s fourteen-commit delivery-policy and regression-test series, including repairs for each earlier delivery-settlement finding. (role: current implementation contributor; confidence: medium; commits: 1fb64f143044, a9662167c602, 55aac817e765; files: src/auto-reply/reply/dispatch-from-config.ts, src/auto-reply/reply/followup-runner.ts, src/auto-reply/reply/dispatch-from-config.progress.test-utils.ts)
  • dd3ok: Provided the concrete redacted Telegram observation establishing that recovered tool-progress failures can arrive after an otherwise successful final reply. (role: real-world reproduction contributor; confidence: medium)
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.
Review history (12 earlier review cycles; latest 8 shown)
  • reviewed 2026-07-10T15:01:08.592Z sha 2a1d02e :: needs changes before merge. :: [P1] Use delivered blocks, not generated blocks, to drop failures
  • reviewed 2026-07-10T17:19:44.214Z sha 9e63c2c :: needs changes before merge. :: [P1] Treat suppressed routed finals as undelivered
  • reviewed 2026-07-11T03:57:12.309Z sha b9e7547 :: needs changes before merge. :: [P1] Wait for direct final delivery before dropping failures
  • reviewed 2026-07-11T04:26:02.386Z sha a966216 :: needs maintainer review before merge. :: none
  • reviewed 2026-07-11T04:55:38.630Z sha dd40836 :: needs maintainer review before merge. :: none
  • reviewed 2026-07-11T05:04:17.758Z sha dd40836 :: needs maintainer review before merge. :: none
  • reviewed 2026-07-11T05:11:27.018Z sha dd40836 :: needs maintainer review before merge. :: none
  • reviewed 2026-07-19T03:07:09.351Z sha 55aac81 :: needs maintainer review before merge. :: none

@openclaw-barnacle openclaw-barnacle Bot removed the triage: needs-pr-context Candidate: external PR body lacks required problem context or evidence. label Jun 27, 2026
@clawsweeper clawsweeper Bot added rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. 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: 🚨 message-delivery 🚨 May drop, duplicate, misroute, suppress, or wrongly target messages. labels Jun 27, 2026
@litang9
litang9 marked this pull request as ready for review June 27, 2026 01:55
@litang9

litang9 commented Jun 27, 2026

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

@clawsweeper

clawsweeper Bot commented Jun 27, 2026

Copy link
Copy Markdown
Contributor

🦞🧹
ClawSweeper re-review requested.

I asked ClawSweeper to review this item again.
Action: item re-review queued (workflow sweep.yml, event repository_dispatch).
Result: the existing ClawSweeper review comment will be edited in place when the review finishes.

@litang9

litang9 commented Jun 27, 2026

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

@openclaw-barnacle openclaw-barnacle Bot added triage: needs-pr-context Candidate: external PR body lacks required problem context or evidence. and removed triage: needs-pr-context Candidate: external PR body lacks required problem context or evidence. labels Jun 27, 2026
@litang9

litang9 commented Jun 27, 2026

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

@openclaw-barnacle openclaw-barnacle Bot added the triage: needs-pr-context Candidate: external PR body lacks required problem context or evidence. label Jun 27, 2026
@litang9

litang9 commented Jun 27, 2026

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

@openclaw-barnacle openclaw-barnacle Bot removed the triage: needs-pr-context Candidate: external PR body lacks required problem context or evidence. label Jun 27, 2026
@litang9

litang9 commented Jun 27, 2026

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

@clawsweeper clawsweeper Bot added proof: sufficient ClawSweeper judged the real behavior proof convincing. 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. and removed rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. labels Jun 27, 2026

dd3ok commented Jul 3, 2026

Copy link
Copy Markdown

Adding one real Telegram direct-chat observation of the user-visible problem this PR is meant to address. This is not after-fix proof for this PR branch; it is current-release evidence that the behavior happens in a real Telegram conversation.

Environment:

  • OpenClaw version: 2026.6.11
  • Channel: Telegram direct chat
  • Runtime: OpenClaw-managed agent using the Codex route
  • Date observed: 2026-07-03

Observed behavior:
During normal interactive maintenance turns, the assistant completed or recovered the requested work and delivered a successful final reply. Shortly after that final reply, Telegram received standalone failed tool/progress messages from recovered or non-terminal helper steps.

Redacted examples of user-visible messages:

⚠️ 🛠️ `run python3 <test selector> (in <skill repo>)` failed
⚠️ 🛠️ `search "<redacted env/db search pattern>" in <redacted redirect/cwd text> (in <project repo>)` failed

In both cases, the warning made the successful turn look broken to the user even though the agent either recovered in the same turn or had already reported the completed work successfully.

This is not a new code finding from me, just additional live Telegram evidence for the behavior this PR describes: recovered failed helper/tool progress can still appear as user-visible standalone Telegram messages after a successful final response.

Why this evidence may help:

  • It is from a real Telegram direct chat, not only a shared dispatch proof.
  • The visible failure arrived after a successful final assistant response.
  • The examples include both run/test-style helper failure and search-style helper failure.
  • The raw message exposed low-level command/progress details that the assistant later explained as non-terminal.

I have not attached screenshots here because they include private chat context, but the examples above are redacted from the actual visible Telegram messages.

@litang9

litang9 commented Jul 11, 2026

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

Addressed the exact-head same-channel final settlement finding:

  • Clean direct finals and accumulated-block TTS supplements snapshot dispatcher cancelled/failed final outcomes before enqueue.
  • When a buffered failure depends on that direct final as the only visible success, dispatch clears the current reply operation before waiting for dispatcher idle, avoiding the existing same-session follow-up delivery cycle, then discards buffered progress only if settled outcomes confirm at least one delivery.
  • Missing outcome readers fail closed and preserve the buffered failure.
  • Added regressions for before-deliver final cancellation, asynchronous final delivery failure, and cancelled block plus TTS delivery. The existing queued same-session turn/mirror regression also remains green.

Validation for a9662167c602095450bf6b4eadd4e0acf1f56a6f:

  • dispatch-from-config.test.ts: 271 tests passed.
  • followup-runner.test.ts: 148 tests passed (419 total).
  • Core-test tsgo passed with test/tsconfig/tsconfig.core.test.json.
  • Four-file oxfmt --check, path-scoped oxlint, and git diff --check passed.

Sanitized AWS Crabbox remains unavailable because the local installation has no broker credentials, so the documented narrow local Node fallback was used and fork CI is running. The two prior QA Smoke failures were independently reproduced on main run 29138394564 and are caused by the current 2026.7.2 package version lacking a matching changelog section, not this PR.

@clawsweeper

clawsweeper Bot commented Jul 11, 2026

Copy link
Copy Markdown
Contributor

🦞🧹
ClawSweeper re-review requested.

I asked ClawSweeper to review this item again.
Action: item re-review queued (workflow sweep.yml, event repository_dispatch).
Result: the existing ClawSweeper review comment will be edited in place when the review finishes.

Re-review progress:

@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. and removed rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. status: ⏳ waiting on author ClawSweeper has contributor-facing work open and is waiting for author action. labels Jul 11, 2026
@litang9

litang9 commented Jul 11, 2026

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

@clawsweeper

clawsweeper Bot commented Jul 11, 2026

Copy link
Copy Markdown
Contributor

🦞🧹
ClawSweeper re-review requested.

I asked ClawSweeper to review this item again.
Action: item re-review queued (workflow sweep.yml, event repository_dispatch).
Result: the existing ClawSweeper review comment will be edited in place when the review finishes.

Re-review progress:

@clawsweeper clawsweeper Bot added proof: sufficient ClawSweeper judged the real behavior proof convincing. 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. merge-risk: 🚨 message-delivery 🚨 May drop, duplicate, misroute, suppress, or wrongly target messages. and removed proof: sufficient ClawSweeper judged the real behavior proof convincing. mantis: telegram-visible-proof Mantis should capture Telegram visible proof. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. merge-risk: 🚨 message-delivery 🚨 May drop, duplicate, misroute, suppress, or wrongly target messages. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. labels Jul 11, 2026
litang9 added 3 commits July 19, 2026 11:00
# Conflicts:
#	src/auto-reply/reply/dispatch-from-config.test.ts
#	src/auto-reply/reply/dispatch-from-config.ts
#	src/auto-reply/reply/followup-runner.ts
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

mantis: telegram-visible-proof Mantis should capture Telegram visible proof. merge-risk: 🚨 message-delivery 🚨 May drop, duplicate, misroute, suppress, or wrongly target messages. P2 Normal backlog priority with limited blast radius. proof: sufficient ClawSweeper judged the real behavior proof convincing. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. size: L 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