-
-
Notifications
You must be signed in to change notification settings - Fork 80.7k
Emit structured event when stale approval-timeout follow-ups are suppressed #98279
Copy link
Copy link
Closed
Labels
P2Normal backlog priority with limited blast radius.Normal backlog priority with limited blast radius.clawsweeper:fix-shape-clearClawSweeper found a clear likely implementation shape for this issue.ClawSweeper found a clear likely implementation shape for this issue.clawsweeper:queueable-fixClawSweeper marked this issue as an existing queue_fix_pr work candidate.ClawSweeper marked this issue as an existing queue_fix_pr work candidate.clawsweeper:source-reproClawSweeper found a high-confidence source-level issue reproduction.ClawSweeper found a high-confidence source-level issue reproduction.impact:message-lossChannel message delivery can be lost, duplicated, or misrouted.Channel message delivery can be lost, duplicated, or misrouted.impact:otherThis issue has meaningful maintainer-visible impact outside the owned taxonomy.This issue has meaningful maintainer-visible impact outside the owned taxonomy.issue-rating: 🦞 diamond lobsterVery strong issue quality with high-confidence source-level or clear reproduction.Very strong issue quality with high-confidence source-level or clear reproduction.maturity:stableIssue affects a taxonomy feature currently scored M4/M5.Issue affects a taxonomy feature currently scored M4/M5.no-staleExclude from stale automationExclude from stale automation
Description
Metadata
Metadata
Assignees
Labels
P2Normal backlog priority with limited blast radius.Normal backlog priority with limited blast radius.clawsweeper:fix-shape-clearClawSweeper found a clear likely implementation shape for this issue.ClawSweeper found a clear likely implementation shape for this issue.clawsweeper:queueable-fixClawSweeper marked this issue as an existing queue_fix_pr work candidate.ClawSweeper marked this issue as an existing queue_fix_pr work candidate.clawsweeper:source-reproClawSweeper found a high-confidence source-level issue reproduction.ClawSweeper found a high-confidence source-level issue reproduction.impact:message-lossChannel message delivery can be lost, duplicated, or misrouted.Channel message delivery can be lost, duplicated, or misrouted.impact:otherThis issue has meaningful maintainer-visible impact outside the owned taxonomy.This issue has meaningful maintainer-visible impact outside the owned taxonomy.issue-rating: 🦞 diamond lobsterVery strong issue quality with high-confidence source-level or clear reproduction.Very strong issue quality with high-confidence source-level or clear reproduction.maturity:stableIssue affects a taxonomy feature currently scored M4/M5.Issue affects a taxonomy feature currently scored M4/M5.no-staleExclude from stale automationExclude from stale automation
Type
Fields
Priority
None yet
Summary
When an exec approval times out and OpenClaw suppresses the stale follow-up, operators need a structured event they can consume from status/inbox surfaces. Today our local deployment patches the Slack/gateway code to append a small log file because the native signal is only a warning line.
Operator impact
Suppressed approval-timeout follow-ups are meaningful operational events: they can explain why an agent is still blocked, why a Slack follow-up did not appear, or why an operator needs to inspect the approval queue. If the only signal is free-form logging, downstream status tools have to scrape logs or miss the condition.
Current local workaround
Our local image patch records suppressed approval-timeout follow-ups to:
Then
operator-inbox/status code reads that file and surfaces a count/recent work item. This works, but it is a deployment-specific side channel that should be replaceable by the gateway's normal structured event stream.Proposed native behavior
Emit a structured event on the gateway event/log stream when a stale approval-timeout follow-up is suppressed, for example:
{ "type": "exec.approval.timeout-suppressed", "approvalId": "...", "ts": "2026-06-30T00:00:00.000Z" }The exact envelope can follow OpenClaw's existing event schema; the important part is a stable event type and enough identifiers/timestamps for operator tooling.
Acceptance criteria