Skip to content

fix(agents): deliver background exec completion to agent via [OpenClaw exec completion]#91921

Open
solodmd wants to merge 1 commit into
openclaw:mainfrom
solodmd:fix/exec-async-delivery
Open

fix(agents): deliver background exec completion to agent via [OpenClaw exec completion]#91921
solodmd wants to merge 1 commit into
openclaw:mainfrom
solodmd:fix/exec-async-delivery

Conversation

@solodmd

@solodmd solodmd commented Jun 10, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Problem: When a background exec command (exec background=true) completes, the agent receives a heartbeat wake with [OpenClaw heartbeat poll] as the transcript placeholder. This causes the model to treat the turn as a heartbeat poll — it reads HEARTBEAT.md and either runs periodic tasks or replies HEARTBEAT_OK, ignoring the exec completion details.
  • Why now: Background exec is the primary async mechanism for long-running shell commands. The completion notification was effectively invisible to the model, defeating the purpose of async exec.
  • Outcome:
    • Exec completion events now use a dedicated [OpenClaw exec completion] transcript placeholder with the exec details appended in the message body, making them visible to both the model and before_agent_run security plugins.
    • When deliverToUser is false, buildExecEventPrompt now shows exec output with "Handle the result internally. Continue the task based on the result if needed" instead of "HEARTBEAT_OK only" — so the model sees completion details in any active conversation without overriding delivery authorization.
  • Intentionally out of scope: Non-exec heartbeat behavior is unchanged.
  • Success: The model now responds to exec completion with the command output (e.g. "The background command has finished. Here's the output:\n\nfirst done\n\n✅ Completed successfully (exit code 0)") instead of reading HEARTBEAT.md and replying HEARTBEAT_OK.
  • Reviewer focus:
    • Security gate visibility: exec details are in the message body ([OpenClaw exec completion]\n\n...), not in a separate custom_message, so before_agent_run hooks and security plugins can inspect the full content.
    • The isExecCompletionUserMessage filter uses startsWith("EXEC_COMPLETION_TRANSCRIPT_PROMPT\n") to handle the new body format.
    • deliverToUser is params.canRelayToUser only — no override. Instead, buildExecEventPrompt's !deliverToUser branch now shows exec output with "handle internally, continue task" instructions.
    • The lastChannel parameter has been removed from resolveHeartbeatRunPrompt.

Linked context

No related issue directly — discovered while investigating exec background completion notification behavior.

Related:

  • The existing HEARTBEAT_TRANSCRIPT_PROMPT ("[OpenClaw heartbeat poll]") pattern established the transcript placeholder filtering mechanism that this PR extends for exec completions.

ClawSweeper feedback addressed

P1/P2: Preserve internal-only exec delivery

The original P1 finding flagged hard-coding deliverToUser: true as bypassing the target: "none" delivery contract. Subsequent reviews flagged that raw lastChannel should not override delivery authorization. This PR addresses both concerns by separating exec event visibility from delivery authorization within buildExecEventPrompt:

deliverToUser stays tied to canonical delivery:

deliverToUser: params.canRelayToUser — no override. The lastChannel parameter has been removed from resolveHeartbeatRunPrompt. For webchat (where canRelayToUser is false because there's no to address), deliverToUser is false.

Exec output is visible regardless of deliverToUser:

When deliverToUser is false, buildExecEventPrompt no longer says "reply HEARTBEAT_OK only" or "do not mention, summarize, or reuse command output." Instead, it includes the completion details with output and instructs the model to "Handle the result internally. Continue the task based on the result if needed." This way:

  • The model sees exec output in the active conversation and can respond naturally
  • No deliverToUser override is needed
  • Explicit target: "none" is naturally respected (deliverToUser stays false, no special check needed)
  • Non-webchat channels with target: "none" also get the same improved prompt

Why this approach:

canRelayToUser checks whether the delivery system can actively push a message through the channel's addressing system (requires both channel and to). Background exec completion in an active webchat session is a different scenario — the message doesn't need external delivery; the model is already in the conversation and just needs to see the result. Rather than overriding deliverToUser to bypass this distinction, the prompt itself is adapted to show context without instructing relay.

Security gate visibility:

Unlike PR #91817 (which was closed because before_agent_run security plugins couldn't see exec details hidden in custom_message), this PR puts exec details directly in the message body via transcriptBody = "${EXEC_COMPLETION_TRANSCRIPT_PROMPT}\n\n${effectiveBaseBody}". Security plugins inspecting user messages will see [OpenClaw exec completion]\n\nExec completed (...) — the full content the model receives, not just a placeholder.

Why exec details persist in transcriptBody:

Background exec is transparent to the user — the command runs asynchronously and completes without the user's direct involvement. When it finishes, the result needs to be visible in the ongoing conversation so the user can see what happened and the model can reference it in follow-up turns. An ephemeral-only design (visible on the current turn then discarded) would mean:

  • The user could never scroll back to see what a background command produced
  • The model would lose context of completed work after a single turn
  • Debugging failed background commands would require external logs

The [OpenClaw exec completion] marker makes these entries distinguishable from regular user messages, and the existing filterHeartbeatTranscriptArtifacts mechanism already handles cleanup — it only retains the entry when the model's response is substantive (i.e., the model actually used the exec result). This is intentional: if the model responded to the exec output, that context is relevant for future turns. The same design principle applies to regular command output — it becomes part of the conversation history.

Real behavior proof

  • Behavior or issue addressed: Background exec completion notification reaches the model as a heartbeat poll, causing the model to ignore exec output and run heartbeat tasks instead.

  • Real environment tested: Local gateway with a Qwen3 family model, behind an OpenAI-compatible proxy that logs all LLM requests/responses.

  • Exact steps or command run after this patch: Ran exec background=true command="sleep 10 && echo 'first done'", waited ~10 seconds for the exec completion wake, then inspected the proxy logs.

  • Evidence after fix:

    User message body sent to the model (exec details inline, visible to security plugins):

    [user]: [OpenClaw exec completion]
    
    An async command you ran earlier has completed. The completion details are:
    
    Exec completed (tide-orb, code 0) :: first done
    
    User delivery is disabled for this run. Handle the result internally. Continue the task based on the result if needed.
    

    Model response:

    The background command has completed successfully.
    
    **Result:**
    - Exit code: 0
    - Output: `first done`
    
  • Before evidence:

    Last user message (shows [OpenClaw heartbeat poll] instead of exec details):

    [user]: [Wed 2026-06-10 17:18 GMT+8] [OpenClaw heartbeat poll]
    

    Model response: HEARTBEAT_OK (model treated it as a heartbeat poll, ignored exec completion)

  • Observed result after fix: The [OpenClaw exec completion] placeholder prevents the heartbeat behavior. The model sees the exec output in the runtime context and responds appropriately with the command results.

  • What was not tested: Multi-line exec output, failed commands (non-zero exit), long-running commands with partial output.

  • Proof limitations: Evidence is from an intercepted LLM request log, not from OpenClaw gateway logs directly. The streaming output was reconstructed from SSE chunks.

Patch surface

File Change Lines
src/infra/heartbeat-events-filter.ts !deliverToUser branch shows exec output + "handle internally, continue task" instead of HEARTBEAT_OK; added hasMissingOutputFailure sub-branch +9
src/infra/heartbeat-runner.ts Remove lastChannel param; deliverToUser: params.canRelayToUser only -3
src/auto-reply/heartbeat.ts Add EXEC_COMPLETION_TRANSCRIPT_PROMPT constant +2
src/auto-reply/reply/prompt-prelude.ts Exec-event transcriptBody includes exec details from effectiveBaseBody +1
src/auto-reply/heartbeat-filter.ts isExecCompletionUserMessage uses startsWith for body format +1
src/auto-reply/heartbeat-filter.test.ts Test coverage for exec details in body +9
src/auto-reply/reply/prompt-prelude.test.ts Update assertion for new body format +1
src/infra/heartbeat-events-filter.test.ts Update expectations; add deliverToUser: false + hasMissingOutputFailure test +13

Tests and validation

  • pnpm test src/auto-reply/heartbeat-filter.test.ts: All tests pass.
  • pnpm test src/auto-reply/reply/prompt-prelude.test.ts: All tests pass.
  • pnpm test src/infra/heartbeat-runner.ghost-reminder.test.ts: All tests pass.
  • Added test for isExecCompletionUserMessage with exec details appended in body.
  • Added test for isHeartbeatUserMessage with EXEC_COMPLETION_TRANSCRIPT_PROMPT returns true.
  • Added test for filterHeartbeatTranscriptArtifacts removing exec completion pairs alongside heartbeat pairs.
  • Added test for buildReplyPromptEnvelope with exec-event Provider: transcriptCommandBody includes exec details.
  • Also ran live gateway test (described in Real behavior proof above) with proxy logging to verify the fix works end-to-end.

Risk checklist

  • Did user-visible behavior change? Yes — exec completion notifications now properly reach the model's attention instead of being treated as heartbeat polls.
  • Did config, environment, or migration behavior change? No
  • Did security, auth, secrets, network, or tool execution behavior change? No
  • What is the highest-risk area? The transcript filter must correctly identify exec completion messages. The filter now uses startsWith instead of exact match, which is correct since exec details are appended after the marker.
  • How is that risk mitigated? The filter checks for the EXEC_COMPLETION_TRANSCRIPT_PROMPT prefix with a newline separator before any exec details. Unit tests cover both the bare marker and marker-with-details formats.

Current review state

  • Next action: Author ready for review.
  • Waiting on: None.
  • Comments addressed: P1 (delivery override) — scoped to exec events + webchat; security gate visibility — exec details now in message body, not hidden in custom_message.

@openclaw-barnacle openclaw-barnacle Bot added size: S triage: needs-real-behavior-proof Candidate: external PR needs after-fix proof from a real setup. labels Jun 10, 2026
@clawsweeper

clawsweeper Bot commented Jun 10, 2026

Copy link
Copy Markdown
Contributor

Codex review: needs changes before merge. Reviewed June 30, 2026, 5:04 PM ET / 21:04 UTC.

Summary
The PR adds an exec-completion transcript marker, appends exec details to exec-event heartbeat transcript bodies, changes delivery-disabled exec prompts to expose output internally, and updates heartbeat/filter tests.

PR surface: Source +37, Tests +129. Total +166 across 8 files.

Reproducibility: yes. source-level. Current main uses the generic heartbeat transcript marker for exec-event heartbeats and tells delivery-disabled exec prompts to return HEARTBEAT_OK without using output; the PR body also supplies after-fix proxy-log proof.

Review metrics: 1 noteworthy metric.

  • Heartbeat classifier surface: 1 generic classifier broadened. isHeartbeatUserMessage is used by display hiding, transcript cleanup, embedded-runner history filtering, and doctor repair, so this is broader than an exec prompt marker addition.

Merge readiness
Overall: 🦐 gold shrimp
Proof: 🦞 diamond lobster
Patch quality: 🦐 gold shrimp
Result: needs maintainer review before merge.

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

Rank-up moves:

  • [P2] Scope exec-completion matching out of generic heartbeat-only repair, or harden doctor repair against substantive exec-result transcripts.
  • [P2] Add focused doctor-state-integrity coverage for an exec-completion transcript followed by a substantive assistant result.
  • [P2] Make maintainer acceptance of delivery-disabled exec output as model-visible internal context explicit before merge.

Risk before merge

  • [P1] The widened heartbeat classifier can make doctor repair treat body-visible exec completion transcripts as heartbeat-only and move a main session even when the assistant produced a substantive exec-result response.
  • [P1] Delivery-disabled and target: "none" exec completions become model-visible internal context; direct relay remains suppressed, but maintainers should explicitly accept that behavior change before merge.
  • [P1] The broader open exec-completion PR partially overlaps this branch but is not a safe replacement because it also changes scheduler cadence and has a blocking review finding.

Maintainer options:

  1. Scope The Exec Classifier Before Merge (recommended)
    Keep the body-visible exec marker, but do not let substantive exec-completion transcripts satisfy heartbeat-only doctor repair unless the repair code explicitly rejects useful assistant output.
  2. Accept Internal Model Visibility Explicitly
    Maintainers can intentionally accept delivery-disabled exec output becoming model-visible internal context, but that policy choice should be visible before landing.
  3. Pause For A Single Exec-Completion Path
    If the broader wake PR is meant to own this surface, pause this branch until maintainers choose the narrow transcript repair versus the combined scheduler/transcript branch.
Copy recommended automerge instruction
@clawsweeper automerge

Special instructions:
Preserve exec-completion transcript visibility and canRelayToUser delivery gating, but keep exec-completion recognition out of generic heartbeat-only repair or harden doctor repair so substantive exec-result transcripts are never repair candidates; add focused doctor-state-integrity coverage.

Next step before merge

  • [P2] There is a narrow mechanical repair: preserve the exec-completion marker and delivery gating while keeping substantive exec completions out of heartbeat-only doctor repair.

Security
Cleared: No supply-chain, workflow, dependency, permissions, secret, or downloaded-code surface changed; the diff is prompt/transcript runtime logic plus tests.

Review findings

  • [P2] Keep exec completions out of heartbeat-only repair — src/auto-reply/heartbeat-filter.ts:328-329
Review details

Best possible solution:

Land a scoped exec-completion transcript path that is visible to hooks and the model while keeping heartbeat-only repair predicates distinct, preserving delivery suppression, and coordinating with broader exec wake work instead of duplicating it.

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

Yes, source-level. Current main uses the generic heartbeat transcript marker for exec-event heartbeats and tells delivery-disabled exec prompts to return HEARTBEAT_OK without using output; the PR body also supplies after-fix proxy-log proof.

Is this the best way to solve the issue?

No, not as submitted. The body-visible exec-completion marker is the right direction, but routing it through the generic heartbeat classifier is too broad until doctor/session repair behavior is scoped or covered.

Full review comments:

  • [P2] Keep exec completions out of heartbeat-only repair — src/auto-reply/heartbeat-filter.ts:328-329
    This makes every [OpenClaw exec completion] body count as a heartbeat user message. resolveHeartbeatMainSessionRepairCandidate then treats a transcript as repairable when every user message is heartbeat-classified, without requiring assistant output to be HEARTBEAT_OK, so a session containing an exec completion plus a useful assistant result can be moved as disposable heartbeat-only state.
    Confidence: 0.86

Overall correctness: patch is incorrect
Overall confidence: 0.86

AGENTS.md: found and applied where relevant.

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

Label changes

Label justifications:

  • P1: The PR targets a broken background exec completion workflow where completed async work can be ignored by the agent.
  • merge-risk: 🚨 compatibility: The diff changes the generic heartbeat classifier contract used by existing cleanup, display, and repair callers.
  • merge-risk: 🚨 session-state: The diff can change which synthetic transcript messages are retained, filtered, hidden, sanitized, or considered repairable session state.
  • merge-risk: 🚨 message-delivery: The diff changes delivery-disabled exec completion handling from hidden/ack-only to model-visible internal context.
  • rating: 🦐 gold shrimp: Overall readiness is 🦐 gold shrimp; proof is 🦞 diamond lobster and patch quality is 🦐 gold shrimp.
  • status: ⏳ waiting on author: ClawSweeper has contributor-facing work open and is waiting for author action. Sufficient (logs): The PR body includes after-fix proxy-log evidence from a local gateway run showing exec-completion output reached the model and produced a result-aware response.
  • proof: sufficient: Contributor real behavior proof is sufficient. The PR body includes after-fix proxy-log evidence from a local gateway run showing exec-completion output reached the model and produced a result-aware response.
Evidence reviewed

PR surface:

Source +37, Tests +129. Total +166 across 8 files.

View PR surface stats
Area Files Added Removed Net
Source 5 41 4 +37
Tests 3 135 6 +129
Docs 0 0 0 0
Config 0 0 0 0
Generated 0 0 0 0
Other 0 0 0 0
Total 8 176 10 +166

Acceptance criteria:

  • [P1] node scripts/run-vitest.mjs src/auto-reply/heartbeat-filter.test.ts src/commands/doctor-state-integrity.test.ts src/auto-reply/reply/prompt-prelude.test.ts src/infra/heartbeat-events-filter.test.ts.
  • [P1] git diff --check.

What I checked:

  • Repository policy read: Root AGENTS.md was read completely, and the review applied its whole-path PR review, compatibility, session-state, message-delivery, and scoped AGENTS guidance. (AGENTS.md:27, b885c81479d0)
  • Scoped AGENTS read: The scoped agent guidance was read before inspecting embedded runner callers of heartbeat transcript filtering. (src/agents/embedded-agent-runner/run/AGENTS.md:1, b885c81479d0)
  • PR broadens generic classifier: The PR makes isHeartbeatUserMessage return true for exec-completion messages, which is broader than the transcript marker itself because this predicate is shared by cleanup, display, and repair callers. (src/auto-reply/heartbeat-filter.ts:328, 6f7d2c47337f)
  • Doctor repair uses the same classifier: Current main counts user messages with isHeartbeatUserMessage; if all user messages are classified as heartbeat and there is no recorded human interaction, the main-session repair candidate can be accepted without checking that assistant output was only HEARTBEAT_OK. (src/commands/doctor-heartbeat-main-session-repair.ts:153, b885c81479d0)
  • Shared runtime callers: Current main also feeds the classifier into transcript artifact filtering, gateway chat display hiding, and embedded runner history cleanup, so the predicate change has wider semantics than exec prompt rendering. (src/auto-reply/heartbeat-filter.ts:449, b885c81479d0)
  • Current exec prompt behavior: Current main still tells delivery-disabled exec completion prompts to handle internally and reply HEARTBEAT_OK without using command output, matching the bug this PR is trying to repair. (src/infra/heartbeat-events-filter.ts:141, b885c81479d0)

Likely related people:

  • fuller-stack-dev: Authored merged PR Filter heartbeat response-tool transcript artifacts #83477, which introduced the central heartbeat transcript artifact filtering path this PR extends. (role: heartbeat transcript filter contributor; confidence: high; commits: 2ab3a4e422a0; files: src/auto-reply/heartbeat-filter.ts, src/auto-reply/heartbeat-filter.test.ts)
  • vincentkoc: Authored and merged the doctor heartbeat main-session repair path whose conservative heartbeat-only classification is affected by the PR's generic classifier change. (role: doctor repair path contributor; confidence: high; commits: 5af1fe1bd0c2; files: src/commands/doctor-heartbeat-main-session-repair.ts, src/commands/doctor-state-integrity.test.ts)
  • GodsBoy: Authored merged PR fix(heartbeat): include exec completion payloads #71213, which added bounded exec completion payloads to heartbeat exec prompts. (role: exec completion prompt contributor; confidence: medium; commits: f3cc74ec5d2c; files: src/infra/heartbeat-events-filter.ts, src/infra/heartbeat-runner.ts, src/infra/heartbeat-events-filter.test.ts)
  • steipete: Authored and merged the heartbeat target-default and internal-only cron/exec prompt behavior that defines the delivery-disabled compatibility boundary reviewed here. (role: heartbeat delivery contract contributor; confidence: medium; commits: a177b10b79bc; files: src/infra/heartbeat-events-filter.ts, src/infra/heartbeat-runner.ts, src/infra/outbound/targets.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.
Review history (1 earlier review cycle)
  • reviewed 2026-06-21T16:34:41.093Z sha 6f7d2c4 :: needs changes before merge. :: [P2] Keep exec completions out of heartbeat-only repair

@openclaw-barnacle openclaw-barnacle Bot added proof: supplied External PR includes structured after-fix real behavior proof. and removed triage: needs-real-behavior-proof Candidate: external PR needs after-fix proof from a real setup. labels Jun 10, 2026
@clawsweeper clawsweeper Bot added proof: sufficient ClawSweeper judged the real behavior proof convincing. rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. status: ⏳ waiting on author ClawSweeper has contributor-facing work open and is waiting for author action. P1 High-priority user-facing bug, regression, or broken workflow. merge-risk: 🚨 message-delivery 🚨 May drop, duplicate, misroute, suppress, or wrongly target messages. rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. and removed rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. labels Jun 10, 2026
@solodmd
solodmd force-pushed the fix/exec-async-delivery branch from 1d5ce42 to 6e99312 Compare June 11, 2026 02:49
@openclaw-barnacle openclaw-barnacle Bot added the agents Agent runtime and tooling label Jun 11, 2026
@solodmd
solodmd force-pushed the fix/exec-async-delivery branch from 6e99312 to 2616486 Compare June 11, 2026 03:05
@openclaw-barnacle openclaw-barnacle Bot removed agents Agent runtime and tooling proof: sufficient ClawSweeper judged the real behavior proof convincing. labels Jun 11, 2026
@solodmd
solodmd force-pushed the fix/exec-async-delivery branch from 2616486 to 2a4ea34 Compare June 11, 2026 03:45
@clawsweeper clawsweeper Bot added the proof: sufficient ClawSweeper judged the real behavior proof convincing. label Jun 11, 2026
@solodmd
solodmd force-pushed the fix/exec-async-delivery branch from 2a4ea34 to c22d58d Compare June 11, 2026 04:00
@openclaw-barnacle openclaw-barnacle Bot removed the proof: sufficient ClawSweeper judged the real behavior proof convincing. label Jun 11, 2026
@clawsweeper clawsweeper Bot added proof: sufficient ClawSweeper judged the real behavior proof convincing. rating: 🌊 off-meta tidepool PR readiness rating does not apply to this item. and removed proof: sufficient ClawSweeper judged the real behavior proof convincing. 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 Jun 11, 2026
@solodmd
solodmd force-pushed the fix/exec-async-delivery branch from c22d58d to b580bd7 Compare June 11, 2026 06:30
@solodmd

solodmd commented Jun 11, 2026

Copy link
Copy Markdown
Contributor Author

@clawsweeper review

@clawsweeper

clawsweeper Bot commented Jun 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:

@solodmd
solodmd force-pushed the fix/exec-async-delivery branch from 9a71984 to 6f7d2c4 Compare June 12, 2026 02:57
@openclaw-barnacle openclaw-barnacle Bot removed the proof: sufficient ClawSweeper judged the real behavior proof convincing. label Jun 12, 2026
@clawsweeper clawsweeper Bot added rating: 🌊 off-meta tidepool PR readiness rating does not apply to this item. and removed rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. status: ⏳ waiting on author ClawSweeper has contributor-facing work open and is waiting for author action. labels Jun 12, 2026
@solodmd

solodmd commented Jun 12, 2026

Copy link
Copy Markdown
Contributor Author

@clawsweeper review

@clawsweeper

clawsweeper Bot commented Jun 12, 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: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. status: ⏳ waiting on author ClawSweeper has contributor-facing work open and is waiting for author action. merge-risk: 🚨 session-state 🚨 May lose, corrupt, stale, or mis-associate session, agent, or context state. rating: 🌊 off-meta tidepool PR readiness rating does not apply to this item. and removed rating: 🌊 off-meta tidepool PR readiness rating does not apply to this item. proof: sufficient ClawSweeper judged the real behavior proof convincing. rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. status: ⏳ waiting on author ClawSweeper has contributor-facing work open and is waiting for author action. labels Jun 12, 2026
@clawsweeper clawsweeper Bot added proof: sufficient ClawSweeper judged the real behavior proof convincing. rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. and removed rating: 🌊 off-meta tidepool PR readiness rating does not apply to this item. labels Jun 15, 2026
@clawsweeper clawsweeper Bot added status: ⏳ waiting on author ClawSweeper has contributor-facing work open and is waiting for author action. and removed status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. labels Jun 19, 2026
@openclaw-barnacle

Copy link
Copy Markdown

This pull request has been automatically marked as stale due to inactivity.
Please add updates or it will be closed.

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

Labels

merge-risk: 🚨 compatibility 🚨 May break existing users, config, migrations, defaults, or upgrade paths. merge-risk: 🚨 message-delivery 🚨 May drop, duplicate, misroute, suppress, or wrongly target messages. merge-risk: 🚨 session-state 🚨 May lose, corrupt, stale, or mis-associate session, agent, or context state. P1 High-priority user-facing bug, regression, or broken workflow. proof: sufficient ClawSweeper judged the real behavior proof convincing. proof: supplied External PR includes structured after-fix real behavior proof. rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. size: S stale Marked as stale due to inactivity status: ⏳ waiting on author ClawSweeper has contributor-facing work open and is waiting for author action.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant