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
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
lastThreadIdfrom 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
delivery.toaccepts a Slack channel ID (e.g.C12345) but has no syntax to specify athread_ts. Delivery falls back tolastThreadIdfrom session history, which may be a different thread.heartbeat.toaccepts a channel ID but cannot target a specific thread.Proposed solution
Add a thread targeting syntax for Slack, similar to how #19367 added
:topic:NNNfor Telegram. For example:This would be parsed in
resolveSessionDeliveryTarget()with a Slack-specific guard (similar to the TelegramisTelegramContextguard 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