J
b73f20dfef
feat(slack): two-command channel reads — chat history (overview) + chat thread [id] (MUL-3871)
...
Replaces the single scoped `multica chat history --scope` read with two clean
noun-commands so the agent can navigate a channel with many threads (e.g. read
the specific thread a user referred to):
- `multica chat history` — the channel OVERVIEW: recent top-level messages, each
thread tagged with thread_id + reply_count + latest_reply (it does NOT expand
thread contents). Backed by GET /api/chat/history + slack.History.ChannelOverview
(conversations.history).
- `multica chat thread [id]` — read one thread: no id = the thread you're in,
an id = a specific thread IN THE SAME channel. Backed by GET /api/chat/thread +
slack.History.Thread (conversations.replies; DM falls back to history).
The channel stays server-pinned to the session; a thread id is only a
within-channel locator, so the security boundary (no cross-channel reads) is
unchanged. `--scope` is removed.
The prompt now teaches both commands and, via a new chat_in_thread signal
(derived from the binding: last_thread_id != last_message_id), tells the agent
which to start with — `chat history` for a top-level @mention, `chat thread` for
an in-thread one.
Tests: slack ChannelOverview/Thread (current/by-id/DM-fallback/no-binding/clamp),
handler both endpoints + auth, prompt top-level vs in-thread guidance.
Co-authored-by: multica-agent <github@multica.ai >
2026-06-30 19:07:54 +08:00
..
2026-05-09 16:11:58 +08:00
2026-06-17 15:18:44 +02:00
2026-05-28 16:05:19 +08:00
2026-05-28 16:05:19 +08:00
2026-06-30 12:24:57 +08:00
2026-06-03 19:12:14 +08:00
2026-05-28 19:06:57 +08:00
2026-06-13 15:33:28 +08:00
2026-06-03 16:39:06 +08:00
2026-05-28 19:06:57 +08:00
2026-06-17 08:23:20 +02:00
2026-05-28 15:53:16 +08:00
2026-06-30 19:07:54 +08:00
2026-04-21 14:42:52 +08:00
2026-06-03 16:39:06 +08:00
2026-06-15 14:12:24 +08:00
2026-06-30 12:29:11 +08:00
2026-06-02 15:47:57 +08:00
2026-06-18 13:33:14 +08:00
2026-05-27 15:47:36 +08:00
2026-05-18 12:17:39 +08:00
2026-05-27 15:47:36 +08:00
2026-06-03 16:39:06 +08:00
2026-06-30 12:29:11 +08:00
2026-06-18 09:40:38 +08:00
2026-06-30 19:07:54 +08:00
2026-06-30 19:07:54 +08:00
2026-06-24 12:46:20 +08:00
2026-06-24 14:16:22 +08:00
2026-05-28 16:05:19 +08:00
2026-05-28 16:05:19 +08:00
2026-05-27 14:52:03 +08:00
2026-05-27 14:52:03 +08:00
2026-06-24 09:52:18 +08:00
2026-06-01 08:28:15 +08:00
2026-06-10 14:20:39 +08:00
2026-06-30 12:24:57 +08:00
2026-06-30 14:56:49 +08:00
2026-06-16 08:38:53 +08:00
2026-06-29 19:01:14 +08:00
2026-05-22 13:22:36 +08:00
2026-06-03 16:39:06 +08:00
2026-06-04 13:12:32 +08:00
2026-06-24 16:19:30 +08:00
2026-06-24 16:25:17 +08:00
2026-06-17 16:00:22 +08:00
2026-06-30 19:07:54 +08:00
2026-05-21 15:33:47 +08:00
2026-06-18 11:10:06 +08:00
2026-04-23 10:35:55 +08:00
2026-06-03 16:39:06 +08:00
2026-06-26 23:35:47 +08:00
2026-06-26 23:35:47 +08:00
2026-06-22 23:44:46 +08:00
2026-06-22 23:44:46 +08:00
2026-06-30 12:24:57 +08:00
2026-06-21 23:41:05 +08:00
2026-06-30 16:48:13 +08:00
2026-05-07 15:50:27 +08:00
2026-05-07 15:50:27 +08:00
2026-05-06 14:31:33 +08:00
2026-06-26 12:09:15 +08:00
2026-05-04 21:24:56 +08:00
2026-06-03 16:39:06 +08:00
2026-06-23 00:14:42 +08:00
2026-06-23 00:14:42 +08:00
2026-06-22 13:56:48 +08:00
2026-06-26 16:01:33 +08:00
2026-06-24 16:06:14 +08:00
2026-05-28 14:20:20 +08:00
2026-05-15 18:44:08 +08:00
2026-05-19 10:37:38 +08:00
2026-06-02 17:17:41 +08:00
2026-05-21 16:35:45 +08:00
2026-05-21 16:35:45 +08:00
2026-03-30 22:37:59 +08:00
2026-05-19 17:04:16 +08:00
2026-06-23 13:17:13 +08:00
2026-06-23 13:17:13 +08:00
2026-06-16 12:26:44 +08:00
2026-06-30 12:24:57 +08:00
2026-06-25 00:19:13 +08:00
2026-06-25 00:19:13 +08:00
2026-06-24 12:46:20 +08:00
2026-06-24 12:46:20 +08:00
2026-06-30 12:24:57 +08:00
2026-05-06 11:01:22 +02:00
2026-06-03 16:39:06 +08:00
2026-05-21 19:00:26 +08:00
2026-06-29 19:01:14 +08:00
2026-05-21 15:33:47 +08:00
2026-05-27 22:22:26 +08:00
2026-05-27 22:22:26 +08:00
2026-04-28 14:50:28 +08:00
2026-06-24 16:25:17 +08:00
2026-06-24 16:25:17 +08:00
2026-06-21 23:54:58 +08:00
2026-06-21 23:54:58 +08:00
2026-06-12 16:45:38 +08:00
2026-04-28 14:50:28 +08:00
2026-05-25 10:05:17 +08:00
2026-06-08 13:08:38 +08:00
2026-06-23 16:52:46 +08:00
2026-05-06 14:31:33 +08:00
2026-05-06 14:31:33 +08:00
2026-06-11 13:00:56 +08:00
2026-06-22 13:14:22 +08:00
2026-06-11 13:00:56 +08:00
2026-06-11 13:00:56 +08:00
2026-06-18 15:24:41 +08:00
2026-05-03 11:13:34 +08:00
2026-05-03 11:13:34 +08:00
2026-05-03 11:13:34 +08:00
2026-05-20 12:30:10 +08:00
2026-06-23 14:20:18 +08:00
2026-06-23 14:20:18 +08:00
2026-06-18 11:10:06 +08:00
2026-05-06 13:00:11 +08:00
2026-05-06 13:00:11 +08:00
2026-05-06 13:00:11 +08:00
2026-05-06 13:00:11 +08:00
2026-05-21 15:33:47 +08:00
2026-06-23 16:52:46 +08:00
2026-05-18 15:45:06 +08:00
2026-06-11 13:00:56 +08:00
2026-06-30 14:46:46 +08:00
2026-06-30 14:46:46 +08:00
2026-06-11 13:00:56 +08:00
2026-05-22 12:22:07 +08:00
2026-06-01 15:19:42 +08:00
2026-06-22 13:34:06 +08:00
2026-06-30 14:46:46 +08:00
2026-06-29 14:09:34 +08:00
2026-06-29 14:09:34 +08:00
2026-05-13 18:46:20 +08:00
2026-06-26 16:01:33 +08:00
2026-06-26 16:01:33 +08:00
2026-06-26 16:01:33 +08:00
2026-06-30 14:56:49 +08:00
2026-06-26 16:01:33 +08:00
2026-06-02 13:03:15 +08:00
2026-05-14 14:07:26 +08:00
2026-06-30 12:24:57 +08:00
2026-06-30 12:24:57 +08:00
2026-05-11 12:39:45 +08:00
2026-04-17 16:26:00 +08:00
2026-05-28 15:53:16 +08:00
2026-06-30 12:24:57 +08:00
2026-06-02 14:29:29 +08:00
2026-05-21 15:33:47 +08:00
2026-05-18 14:59:40 +08:00
2026-06-30 12:29:11 +08:00
2026-05-18 12:17:39 +08:00
2026-06-25 01:29:20 +08:00
2026-05-08 19:14:12 +08:00
2026-06-24 12:46:20 +08:00
2026-06-24 12:46:20 +08:00
2026-06-13 01:22:45 +08:00