Repository navigation
feat(slack): offer background tasks in channels - #193
Merged
Merged
Conversation
A top-level mention in a channel can now hand long work to a task thread, as in DMs (ADR 0021, step 2). A mention in the task thread is routed like a DM task thread reply: status from observation, and steering only from the task's requester. Unmentioned thread replies and top-level mentions keep the channel's trigger policy.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
In a channel, one long request blocked everyone: while mikan worked on it, another person's question and the requester's own "how far along?" waited until it finished. DMs already hand long work to a background task thread (
start_task, ADR 0021). ADR 0021 planned to open it to channels next (decision 9, step 2); this does that.What changes
task_statusCode:
SlackMessagingBot.createContextno longer limitsstartTask,getTaskStatus, andnotifyCompletionto DMs, andhandleAppMentionsends a mention in a task thread throughdeliverTaskUpdate. Prompt and tool description say channels are included.Acceptance eval
Local daemon, test Slack workspace,
gpt-6-luna. Alice asks for three sequential sandbox commands (about 95 s); 15 s later Bob asks "1+1"; 10 s after that Alice asks how far along it is. Seconds from each message to its answer. Fresh channels, 2 runs each.mainAccepted cost: the long request itself finishes about 10–20 s later, because the handoff is one more model turn.
Known limit: in a test channel with a long history of doing such work inline, the model kept doing it inline in 2 of 2 runs (results then match
main). The decision is the model's; this change only offers the tool.Verification
channel handoff keeps the channel answering and lets its requester steer the task threadfails onmain(no task session) and passes here.lint,fmt:check,knip,typecheck,build, full test suite (2,065 passed), duplication guard.