Skip to content

[Feature]: Support Slack thread targeting for cron and heartbeat delivery #19903

@Lukavyi

Description

@Lukavyi

Summary

Cron jobs and heartbeats currently have no way to target a specific Slack thread. When a cron job is created from a Slack thread, delivery uses lastThreadId from session history — which points to whichever thread was last active, not necessarily the intended one. Heartbeat has no thread targeting at all.

This is the same class of problem as #19365 and #19366 (Telegram topic targeting), but for Slack threads.

Current behavior

  • Cron: delivery.to accepts a Slack channel ID (e.g. C12345) but has no syntax to specify a thread_ts. Delivery falls back to lastThreadId from session history, which may be a different thread.
  • Heartbeat: heartbeat.to accepts a channel ID but cannot target a specific thread.

Proposed solution

Add a thread targeting syntax for Slack, similar to how #19367 added :topic:NNN for Telegram. For example:

C12345:thread:1234567890.123456

This would be parsed in resolveSessionDeliveryTarget() with a Slack-specific guard (similar to the Telegram isTelegramContext guard added in #19367).

Config examples:

Cron:

{
  "delivery": {
    "channel": "slack",
    "to": "C12345:thread:1234567890.123456"
  }
}

Heartbeat:

{
  "agents": {
    "defaults": {
      "heartbeat": {
        "target": "slack",
        "to": "C12345:thread:1234567890.123456"
      }
    }
  }
}

Related

lobster-biscuit

Metadata

Metadata

Assignees

No one assigned

    Labels

    staleMarked as stale due to inactivity

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions