Skip to content

Triage: Surface guarded refusals for autonomous triggers #727

Description

@time-attack

Tracking the change proposed in #664 (by @wsr3005).

We're moving this from a code PR to a tracked issue under CONTRIBUTING.md: feature ideas belong in adrs/ as a short human-written note and bugs as an issue, and we implement the underlying code from our side. Capturing the original proposal here so it isn't lost.

Original PR: #664
Reported by: @wsr3005


Summary

  • classify budget, rate-limit, and security-quarantine refusals on TurnResult
  • deliver concise, idempotent budget and rate-limit notices for automated poll surfaces
  • keep security-quarantine details silent for autonomous turns and redacted across Slack refusal paths
  • preserve existing error-notice behavior without double-delivering guarded refusals

Verification

  • affected tests: 218 passed
  • npm run typecheck
  • ESLint and Oxlint on affected files
  • Prettier and git diff --check
  • synthetic rendering of the automated notices; no live Slack workspace was used

Screenshot

Synthetic automated refusal notices

The screenshot uses synthetic data. Security-quarantine details remain silent for autonomous turns.


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.


If we ship a fix or feature from this, credit @wsr3005 as co-author.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions