Skip to content

agent/slack polish: announcement ordering for cancel-with-resource, UTF-16-safe label cap, stale spend list in base prompt #3705

Description

@chelojimenez

Low-severity residuals from the #3696 review, batched:

  • announcementFor (slack-app/listeners/actions/proposal-button.js) checks the resource URL before kind, so a future cancel-kind op that also returns a resource would announce "Approved — follow it here" instead of "Cancelled". Latent today (cancel has no resource builder).
  • proposal-builder.js caps the server-sent button label with .slice(0, 75) on UTF-16 units; an emoji at the boundary yields an unpaired surrogate that can make Slack reject the whole message. The file's own capChars is code-point-safe.
  • The frozen base prompt's spend enumeration ("running a suite or a case, generating cases, cancelling a run") predates the two new gated ops. Fixing it is a deliberate cache-invalidating edit to the snapshot-pinned literal.

🤖 Generated with Claude Code

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions