Skip to content

fix: preserve cron delivery awareness for target sessions#93580

Merged
jalehman merged 10 commits into
openclaw:mainfrom
scotthuang:fix/cron-delivery-target-context-awareness
Jun 20, 2026
Merged

fix: preserve cron delivery awareness for target sessions#93580
jalehman merged 10 commits into
openclaw:mainfrom
scotthuang:fix/cron-delivery-target-context-awareness

Conversation

@scotthuang

@scotthuang scotthuang commented Jun 16, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Fixes isolated cron deliveries so the channel that receives a scheduled delivery also gets ephemeral context awareness for the next agent turn.
  • Keeps the existing user-visible delivery content unchanged: transcript mirrors and channel sends still contain only the delivered message body, while cron metadata stays in system-event context.
  • Covers direct/automatic cron delivery, verified message-tool delivery, and explicit off-plan message-tool sends that visibly delivered to a channel.
  • Also records target-channel awareness for delivery failures when a scheduled delivery reaches a channel-level failure path, so the target session can understand what happened.
  • Intentionally out of scope: persisting awareness in chat history, changing webchat display, or adding user-visible cron job metadata to delivered messages.
  • Success means a user can reply in the delivery channel after a cron send and the agent knows what was just delivered, without leaking cron internals into the channel message.
  • Reviewers should focus on target session resolution, threaded message-tool verification, idempotency/dedupe behavior, and preserving the existing double-announce guard.

Linked context

Closes: N/A

Related:

Was this requested by a maintainer or owner?

Yes. This was requested from a local maintainer workflow after observing that cron deliveries reached a channel but did not enter that channel's next-turn context.

Real behavior proof (required for external PRs)

  • Behavior or issue addressed: isolated cron delivery reached Weixin and Telegram, but the receiving channel's next agent turn did not reliably know a scheduled delivery had happened.
  • Real environment tested: local OpenClaw gateway using the user's existing OpenClaw state/config, Weixin channel, Telegram DM channel, real scheduled cron delivery, Codex harness target session, and Pi-style/openai-completions target session.
  • Exact steps or command run after this patch: built the local code, started the gateway on port 18789 with the existing state/config, triggered scheduled cron deliveries, then replied in the same Weixin and Telegram conversations asking what number/content had just been delivered.
  • Evidence after fix (screenshot, recording, terminal capture, console output, redacted runtime log, linked artifact, or copied live output): redacted runtime log excerpt from the local OpenClaw gateway shows awareness entering the target prompt before model execution:
Codex harness, message-tool delivery:
cron artifact trace=60acc6ab-bf9c-4e81-9077-f42d8b344829 ts=2026-06-17T10:33:17.869Z
provider=deepseek model=deepseek-v4-flash modelApi=openai-completions
runId=60acc6ab-bf9c-4e81-9077-f42d8b344829 didSendViaMessagingTool=true
messagingToolSentTargets=[{"tool":"message","provider":"openclaw-weixin","to":"<weixin direct>","text":"593827"}]
messagingToolSentTexts=["593827"]

target prompt trace=24b33b5d-4e7a-4fde-9e81-15bc1d6f3306 ts=2026-06-17T10:33:35.133Z
provider=openai model=gpt-5.5 modelApi=openai-chatgpt-responses runId=cdcd6ac5-dc61-43b3-9970-00195d4d6ffc
System: [2026-06-17 18:33:17 GMT+8] A scheduled cron job delivered this message to this channel:
System: 593827
What number did you receive from the cron message tool delivery? If you didn't receive any number, just say you didn't receive one.
tool.call message {"action":"send","message":"593827"}

Pi-style/openai-completions harness, direct delivery:
target prompt trace=f0ced73b-a26d-40b8-9f57-8e5897e65cfe ts=2026-06-16T09:37:13.317Z
provider=deepseek model=deepseek-v4-flash modelApi=openai-completions runId=b682d521-8c15-4289-bd48-7701396fc2a0
System: [2026-06-16 17:26:17 GMT+8] A scheduled cron job delivered this message to this channel:
System: Guangzhou weather delivery body was present here in the target prompt.
  • Observed result after fix: the receiving channel's next agent turn had awareness of the cron-delivered content; the Weixin- and Telegram-visible deliveries remained only the delivered payload and did not include cron job ids or scheduling metadata.
  • What was not tested: live channels beyond Weixin and Telegram in the local environment.
  • Proof limitations or environment constraints: awareness is intentionally an in-memory system-event queue and is consumed by the next agent turn, so it is not visible as a normal webchat/transcript row.
  • Before evidence: prior behavior delivered the cron message to the channel but left no target-channel context for the next agent turn; for Codex message-tool delivery, the target reply previously said it did not receive a number. Live Telegram before/after screenshots are reserved below for maintainer upload.

Harness proof logs

Codex harness, message-tool delivery path:

cron artifact trace=60acc6ab-bf9c-4e81-9077-f42d8b344829 ts=2026-06-17T10:33:17.869Z
provider=deepseek model=deepseek-v4-flash modelApi=openai-completions
runId=60acc6ab-bf9c-4e81-9077-f42d8b344829 didSendViaMessagingTool=true
messagingToolSentTargets=[{"tool":"message","provider":"openclaw-weixin","to":"<weixin direct>","text":"593827"}]
messagingToolSentTexts=["593827"]

target prompt trace=24b33b5d-4e7a-4fde-9e81-15bc1d6f3306 ts=2026-06-17T10:33:35.133Z
provider=openai model=gpt-5.5 modelApi=openai-chatgpt-responses runId=cdcd6ac5-dc61-43b3-9970-00195d4d6ffc
System: [2026-06-17 18:33:17 GMT+8] A scheduled cron job delivered this message to this channel:
System: 593827
What number did you receive from the cron message tool delivery? If you didn't receive any number, just say you didn't receive one.

tool.call message {"action":"send","message":"593827"}

Pi-style/openai-completions harness, direct delivery path:

target prompt trace=f0ced73b-a26d-40b8-9f57-8e5897e65cfe ts=2026-06-16T09:37:13.317Z
provider=deepseek model=deepseek-v4-flash modelApi=openai-completions runId=b682d521-8c15-4289-bd48-7701396fc2a0
System: [2026-06-16 17:26:17 GMT+8] A scheduled cron job delivered this message to this channel:
System: Guangzhou weather delivery body was present here in the target prompt.

Additional Codex direct-delivery check:

target prompt trace=a4d04758-8bf9-4c6a-8736-353b76fc5ce7 ts=2026-06-17T08:00:04.947Z
provider=openai model=gpt-5.5 modelApi=openai-chatgpt-responses runId=0c0638a6-2edb-4055-97c0-c888d235e4cb
System: [2026-06-17 15:58:34 GMT+8] A scheduled cron job delivered this message to this channel:
System: random number 742531
What number did you receive from the cron message? If you didn't receive any number, just say you didn't receive one.

tool.call message {"action":"send","message":"I received cron random number 742531"}

Telegram live before/after proof

Maintainer live-tested Telegram DM delivery against the published npm baseline and this PR using the same local state/config and the same Telegram DM target. These screenshots are intentionally left as upload slots so the maintainer can attach the private Telegram captures directly in GitHub.

Before fix, npm release openclaw@2026.6.8 / Gateway 2026.6.8 (844f405) delivered the Telegram cron message but the next Telegram turn did not know what had just been delivered.

before

After fix, PR build 05df61064ca4ea1f0efa7ace6022b70c5628f99b delivered the Telegram cron/message-tool content and the next Telegram turn could answer with the exact delivered code.

after

Telegram regression check:

  • Published npm baseline cron fallback delivery reached Telegram successfully: NPM_CRON_PR93580_TELEGRAM_20260620_0550, deliveryStatus: delivered, fallbackUsed: true.
  • Published npm baseline message-tool delivery reached Telegram successfully: NPM_MESSAGE_TOOL_PR93580_TELEGRAM_20260620_0553, messageToolSentTo: telegram:8941550703, fallbackUsed: false, delivered: true.
  • The failure was limited to next-turn target-session awareness, not Telegram transport delivery. Telegram normal delivery and message-tool routing continued to work before and after the fix.
  • This PR changes the hidden target-session system-event awareness queue only; the Telegram-visible message payload remains the delivered text and does not include cron metadata.

Commands used for the published npm baseline:

openclaw --version
OpenClaw 2026.6.8 (844f405)

openclaw cron run 4dc93909-ce1a-437f-ae38-b7fc66ec3d6e --wait --wait-timeout 5m --poll-interval 2s
# delivered: true, deliveryStatus: delivered, fallbackUsed: true

openclaw cron run 3983f8e2-682e-45f0-8e33-b54a6dcaaf35 --wait --wait-timeout 5m --poll-interval 2s
# delivered: true, messageToolSentTo: telegram:8941550703, fallbackUsed: false

Tests and validation

Which commands did you run?

  • OPENCLAW_VITEST_MAX_WORKERS=1 node scripts/run-vitest.mjs src/cron/isolated-agent/delivery-dispatch.double-announce.test.ts - passed, 77 tests.
  • OPENCLAW_VITEST_MAX_WORKERS=1 node scripts/run-vitest.mjs src/cron/isolated-agent/run.message-tool-policy.test.ts - passed, 52 tests.
  • git diff --check - passed.
  • pnpm build - passed.
  • .agents/skills/autoreview/scripts/autoreview --mode local - final run clean: no accepted/actionable findings, overall: patch is correct (0.82).
  • CLAWSWEEPER_CODEX_LOGIN_METHOD=chatgpt pnpm local-review -- --target-dir <openclaw checkout> --target-repo openclaw/openclaw --base origin/main - final run clean on da94c9cf902fff9df45b8ee3b8b3d7154079311e: result: nothing_found, check_conclusion: success.

What regression coverage was added or updated?

  • Direct cron delivery now asserts target-session awareness is queued separately from existing main-session awareness.
  • Session-bound cron delivery now asserts target-session awareness without main-session leakage.
  • Verified message-tool cron delivery now queues target awareness.
  • Explicit off-plan message-tool delivery now queues target awareness when a visible channel send is observed, without inheriting account/thread from the scheduled delivery target.
  • Threaded message-tool delivery with implicit thread evidence now asserts awareness resolves to the actual thread session.
  • Message-tool delivery whose resolved target session is the main session now still queues target awareness instead of being dropped.
  • Media-only verified message-tool delivery now queues awareness using the existing transcript mirror filename projection.
  • Failure-path delivery dispatch now announces failed delivery context to the resolved target session when delivery reaches the target-aware failure branch.

What failed before this fix, if known?

  • Live follow-up in the delivery channel lacked context that a cron delivery had just happened.
  • Codex message-tool delivery could send a visible channel message, but the next target turn could still reply that it did not receive the number because the off-plan visible send was not queued as target awareness.
  • The first local autoreview pass found that explicit off-plan message-tool sends could incorrectly inherit account/thread from the scheduled delivery target; this PR gates fallback account/thread use to verified target deliveries and adds regression coverage.
  • Earlier ClawSweeper/local review passes found same-session and media-only message-tool awareness gaps; both are fixed, and the final local review was clean.

If no test was added, why not?

Tests were added/updated.

Risk checklist

Did user-visible behavior change? (Yes/No)

Yes. The next agent turn in a cron delivery target can now see the delivered message or delivery failure as system-event context. The outbound channel message content itself is unchanged.

Did config, environment, or migration behavior change? (Yes/No)

No.

Did security, auth, secrets, network, or tool execution behavior change? (Yes/No)

No.

What is the highest-risk area?

Session targeting for awareness events, especially threaded deliveries, duplicate main-session/target-session awareness, explicit off-plan message-tool sends, and non-text message-tool deliveries.

How is that risk mitigated?

The patch reuses existing outbound session route resolution, transcript mirror projection, and idempotency keys; queues target awareness only after successful non-best-effort delivery or explicit target-aware failure handling; avoids duplicate target queueing when direct fallback already queues main-session awareness; does not add cron metadata to user-visible channel payloads; and adds focused regression tests for direct, session-bound, message-tool, off-plan explicit message-tool, same-session, media-only, failure, and threaded implicit-thread cases.

Current review state

What is the next action?

Maintainer review and CI.

What is still waiting on author, maintainer, CI, or external proof?

CI is pending. Live Weixin proof was completed locally by the maintainer across Codex and Pi-style/openai-completions harness paths.

Which bot or reviewer comments were addressed?

Local autoreview found one P1 issue around explicit off-plan message-tool target resolution; this PR fixes it by avoiding scheduled-target account/thread fallback for unverified off-plan sends and adds a regression test. The final local ClawSweeper review found nothing.

@openclaw-barnacle openclaw-barnacle Bot added size: M proof: supplied External PR includes structured after-fix real behavior proof. labels Jun 16, 2026
@scotthuang scotthuang marked this pull request as ready for review June 16, 2026 10:02
@clawsweeper

clawsweeper Bot commented Jun 16, 2026

Copy link
Copy Markdown
Contributor

Codex review: needs maintainer review before merge. Reviewed June 20, 2026, 3:08 PM ET / 19:08 UTC.

Summary
This PR queues cron delivery awareness into resolved target sessions for direct, message-tool, off-plan, same-session, media-only, threaded, and failure paths, with focused cron regression coverage plus maintainer test-runner and environment-helper cleanups.

PR surface: Source +144, Tests +405, Other +10. Total +559 across 19 files.

Reproducibility: yes. Current main source queues cron awareness only to the main awareness session, and the supplied before Telegram screenshot shows delivered cron/message-tool content followed by a target-chat reply that lacks the code.

Review metrics: 1 noteworthy metric.

  • Non-cron script behavior: 1 parser changed. The PR is not cron-only now: scripts/check-release-metadata-only.mjs rejects unknown options and preserves option-shaped paths after --, so maintainers should review that behavior separately from the session fix.

Stored data model
Persistent data-model change detected: vector/embedding metadata: scripts/check-release-metadata-only.mjs, vector/embedding metadata: test/scripts/check-release-metadata-only.test.ts. Confirm migration or upgrade compatibility proof before merge.

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

  • Wait for the exact-head queued CI, security, CodeQL, and OpenGrep checks to finish.
  • Have a maintainer explicitly accept the target-session, same-session, threaded, media-only, off-plan, and failure-awareness routing semantics.

Mantis proof suggestion
A current-head Telegram Desktop run would directly show the delivered cron/message-tool code followed by the same chat's reply using that code. A maintainer can ask Mantis to capture proof by posting this exact PR comment:

@openclaw-mantis telegram desktop proof: at the current PR head, run a real Telegram cron/message-tool delivery, then ask the same chat what code was delivered and confirm the reply contains the delivered code.

Risk before merge

  • [P1] Hidden session-state routing is the main merge risk: a wrong channel, account, thread, same-session, or off-plan route could inject cron awareness into the wrong next model turn while the visible channel payload remains correct.
  • [P1] Real behavior proof covers Telegram screenshots, Weixin/Codex/Pi-style local logs, and focused tests, but not every plugin-owned outbound route that can feed the generic outbound session resolver.
  • [P1] Exact-head preflight, security-fast, CodeQL, CodeQL quality selection, and OpenGrep checks for 460562c were still queued at inspection time.

Maintainer options:

  1. Land After Session-Routing Review (recommended)
    A maintainer can accept the bounded risk once target-session, same-session, threaded, media-only, off-plan, and failure-awareness routing match intended behavior and exact-head checks pass.
  2. Ask For Current-Head Telegram Proof
    If the manual screenshots and logs are not enough for the latest head, request a fresh Telegram Desktop proof run that shows the delivered code and the follow-up reply using it.
  3. Pause For Proactive-Context Contract
    If hidden awareness for off-plan or threaded sends is not the desired product contract, pause this PR and settle the broader proactive-message context design first.

Next step before merge

  • [P2] Remaining action is maintainer acceptance of hidden target-session awareness semantics and exact-head gates, not an automated repair.

Security
Cleared: The diff changes cron runtime/tests and local test/script helpers only; I found no dependency, lockfile, workflow permission, secret handling, package publishing, or third-party code execution concern.

Review details

Best possible solution:

Land this head after maintainers accept the target-session awareness semantics and exact-head checks complete, while leaving the broader proactive-message context contract tracked separately.

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

Yes. Current main source queues cron awareness only to the main awareness session, and the supplied before Telegram screenshot shows delivered cron/message-tool content followed by a target-chat reply that lacks the code.

Is this the best way to solve the issue?

Yes. Reusing the existing outbound session resolver plus ephemeral system-event queue is narrower than persisting cron metadata, scraping channel history, or changing user-visible delivery payloads.

AGENTS.md: found and applied where relevant.

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

Label changes

Label justifications:

  • P2: This fixes a normal-priority cron/session-context bug that can desynchronize conversations but does not crash the runtime or block all channel delivery.
  • merge-risk: 🚨 session-state: The diff changes hidden session-context routing, where incorrect target/session/thread association could affect the next agent turn.
  • 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 (screenshot): The PR includes redacted live logs and inspected before/after Telegram screenshots that show the target chat lacked the delivered code before and could answer with it after the fix.
  • proof: sufficient: Contributor real behavior proof is sufficient. The PR includes redacted live logs and inspected before/after Telegram screenshots that show the target chat lacked the delivered code before and could answer with it after the fix.
  • proof: 📸 screenshot: Contributor real behavior proof includes screenshot evidence. The PR includes redacted live logs and inspected before/after Telegram screenshots that show the target chat lacked the delivered code before and could answer with it after the fix.
  • mantis: telegram-visible-proof: Mantis should capture Telegram visible proof. The PR changes Telegram-observable follow-up behavior after cron/message-tool delivery, which is appropriate for a short Telegram Desktop proof recording.
Evidence reviewed

PR surface:

Source +144, Tests +405, Other +10. Total +559 across 19 files.

View PR surface stats
Area Files Added Removed Net
Source 6 283 139 +144
Tests 12 583 178 +405
Docs 0 0 0 0
Config 0 0 0 0
Generated 0 0 0 0
Other 1 18 8 +10
Total 19 884 325 +559

What I checked:

  • Repository policy read: Root and scoped AGENTS.md guidance was read; it requires whole-surface review for session-state changes and treats hidden session/context routing as merge-risk-sensitive. (AGENTS.md:1, 52e01676be23)
  • Current main blind spot: Current main's cron awareness helper queues only through resolveCronAwarenessMainSessionKey, so delivered target-channel context is not independently queued for the destination session. (src/cron/isolated-agent/delivery-dispatch.ts:458, 52e01676be23)
  • Target awareness implementation: The PR adds queueCronMessageToolDeliveryAwareness, resolves each visible message-tool target through the existing outbound session resolver, dedupes by channel/account/thread/text, and queues a target-session system event. (src/cron/isolated-agent/delivery-dispatch.ts:774, 460562ceff86)
  • Direct delivery awareness and failure path: Direct cron delivery now formats target-session awareness from the effective outbound payload, queues target awareness after successful non-best-effort delivery, and queues failure awareness when a target-aware direct send fails. (src/cron/isolated-agent/delivery-dispatch.ts:1160, 460562ceff86)
  • Run finalization call site: finalizeCronRun calls the new awareness helper whenever source-delivery outcome records visible message-tool deliveries, before fallback/direct delivery handling. (src/cron/isolated-agent/run.ts:1226, 460562ceff86)
  • System-event contract: System events are in-memory, require an explicit session key, dedupe by context key, sanitize nested system markers, and drain as prefixed prompt context on the next turn. (src/infra/system-events.ts:102, 52e01676be23)

Likely related people:

  • steipete: Merged the related destination-session transcript mirror PR and has extensive history in outbound/session routing and system-event surfaces. (role: feature-history contributor and merger; confidence: high; commits: 48b4e5b3614f, f12b84583c6b, 42a0089b3b35; files: src/cron/isolated-agent/delivery-dispatch.ts, src/infra/outbound/outbound-session.ts, src/infra/system-events.ts)
  • vincentkoc: Recent history shows multiple cron delivery/runtime refactors and release snapshot work around the affected cron delivery-dispatch module. (role: recent area contributor; confidence: medium; commits: ed500dda25c8, 844f405ac1be, 139a3f49fe4f; files: src/cron/isolated-agent/delivery-dispatch.ts, src/infra/outbound/source-delivery-plan.ts)
  • cavit99: Authored the merged cron direct-announce destination-session transcript mirror implementation that this PR builds on for next-turn awareness. (role: feature-history contributor; confidence: medium; commits: e16264312ac0, 88376c60af80; files: src/cron/isolated-agent/delivery-dispatch.ts, src/infra/outbound/outbound-session.ts)
  • Sparkyrider: History search identifies this author on the commit that introduced isolated cron delivery awareness, the main-session-only path this PR extends. (role: introduced related behavior; confidence: medium; commits: 55dc6a8bb28d; files: src/cron/isolated-agent/delivery-dispatch.ts)
  • jalehman: Added the latest maintainer fixup commits on the PR branch for cron awareness channel distinction, target routing, effective config, and SDK test-runner cleanup. (role: recent reviewer and branch fixup owner; confidence: medium; commits: 50898f3a3d25, b68de4a96c85, 4339ebc41061; files: src/cron/isolated-agent/delivery-dispatch.ts, src/cron/isolated-agent/run.ts, packages/sdk/src/package.e2e.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.

@scotthuang scotthuang force-pushed the fix/cron-delivery-target-context-awareness branch from c7af848 to 77ea719 Compare June 16, 2026 13:04

Copy link
Copy Markdown
Contributor Author

Follow-up after running ClawSweeper local-review locally with ChatGPT auth:

CLAWSWEEPER_CODEX_LOGIN_METHOD=chatgpt pnpm local-review -- --target-dir /Users/scotthuang/github/openclaw --target-repo openclaw/openclaw --base origin/main

Review rounds addressed:

  • First local-review found that verified message-tool deliveries whose target session collapses to the main session could skip awareness entirely. Fixed by allowing target awareness to queue on the same session when the caller did not already queue main-session awareness, with regression coverage.
  • Second local-review found that verified media-only message-tool deliveries could be marked delivered while queuing no awareness because there was no text. Fixed by deriving awareness text from the existing transcript mirror media filename projection, with regression coverage.
  • Final local-review on 77ea71992d022dbf1eba61425a8ed794a419fa44 was clean: result: nothing_found, check_conclusion: success.

Latest local validation:

  • OPENCLAW_VITEST_MAX_WORKERS=1 node scripts/run-vitest.mjs src/cron/isolated-agent.delivery-awareness.test.ts src/cron/isolated-agent/delivery-dispatch.double-announce.test.ts src/cron/isolated-agent/run.message-tool-policy.test.ts - passed, 3 files / 129 tests.
  • git diff --check - passed.
  • .agents/skills/autoreview/scripts/autoreview --mode local - clean.
  • node scripts/build-all.mjs - passed.

@clawsweeper review

@clawsweeper

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

@scotthuang scotthuang force-pushed the fix/cron-delivery-target-context-awareness branch from 77ea719 to 92cea99 Compare June 16, 2026 13:27
@scotthuang scotthuang force-pushed the fix/cron-delivery-target-context-awareness branch from 92cea99 to abb1bf0 Compare June 16, 2026 13:36

Copy link
Copy Markdown
Contributor Author

@clawsweeper review

@clawsweeper

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

@scotthuang

Copy link
Copy Markdown
Contributor Author

@clawsweeper review

3 similar comments
@scotthuang

Copy link
Copy Markdown
Contributor Author

@clawsweeper review

@scotthuang

Copy link
Copy Markdown
Contributor Author

@clawsweeper review

@scotthuang

Copy link
Copy Markdown
Contributor Author

@clawsweeper 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. mantis: telegram-visible-proof Mantis should capture Telegram visible proof. P2 Normal backlog priority with limited blast radius. merge-risk: 🚨 session-state 🚨 May lose, corrupt, stale, or mis-associate session, agent, or context state. labels Jun 16, 2026
@openclaw-mantis

Copy link
Copy Markdown
Contributor

Mantis Telegram Desktop Proof

Summary: Mantis captured Telegram Desktop before/after GIFs, but this PR still replied without the scheduled delivery context.

  • Scenario: telegram-desktop-proof
  • Trigger: pull_request_target
  • Run: https://github.com/openclaw/openclaw/actions/runs/27645673620
  • Baseline: pass at c45c87acca255764046c5877cfe2346b5f98ef64, expected reply lacks scheduled delivery context
  • Candidate: pass at abb1bf0fecca9e1daedbe7c7816fed755871f873, expected reply includes scheduled delivery marker
  • Overall: false
Main screenshot This PR screenshot
Baseline native Telegram Desktop screenshot Candidate native Telegram Desktop screenshot
Main This PR
Baseline native Telegram Desktop proof GIF Candidate native Telegram Desktop proof GIF

Motion-trimmed clips:

Raw QA files: https://artifacts.openclaw.ai/mantis/telegram-desktop/pr-93580/run-27645673620-1/index.json

@openclaw-barnacle openclaw-barnacle Bot removed the proof: sufficient ClawSweeper judged the real behavior proof convincing. label Jun 17, 2026

Copy link
Copy Markdown
Contributor Author

@clawsweeper review

@clawsweeper

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

@scotthuang scotthuang force-pushed the fix/cron-delivery-target-context-awareness branch 2 times, most recently from 94ae827 to 63e3faa Compare June 17, 2026 03:56
@jalehman

Copy link
Copy Markdown
Contributor

Merged via squash.

Thanks @scotthuang!

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

Labels

agents Agent runtime and tooling mantis: telegram-visible-proof Mantis should capture Telegram visible proof. merge-risk: 🚨 session-state 🚨 May lose, corrupt, stale, or mis-associate session, agent, or context state. P2 Normal backlog priority with limited blast radius. proof: 📸 screenshot Contributor real behavior proof includes screenshot evidence. proof: sufficient ClawSweeper judged the real behavior proof convincing. proof: supplied External PR includes structured after-fix real behavior proof. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. scripts Repository scripts size: XL 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