Commit graph

23 commits

Author SHA1 Message Date
xmanrui
01576f65c6 fix: complete per-bot agent preset lifecycle 2026-08-22 00:20:23 +08:00
xmanrui
a199c65356 fix(feishu): make watch completion delivery reliable 2026-08-21 16:29:45 +08:00
liuwenbo00
4e325c62e0 feat(feishu): session-list rows as V2 column pairs (fixed star toggle + session button)
Each session row is a column_set with a fixed 90px watch-toggle column
(⭐关注/⭐取关 for already-watched sessions) and a weighted session button
carrying the number label; number replies bind the session. Replaces the
stacked button pair; also honors the per-bot archived-session policy.
2026-08-21 16:04:22 +08:00
liuwenbo00
10fd429852 feat(feishu): hide archived sessions by default (/archived on to reveal) 2026-08-21 16:02:32 +08:00
liuwenbo00
961dd5503d feat(feishu): /archived on|off toggle for archived sessions in lists
The session list (and the numeric /watch index) honors a per-bot persisted
policy: /archived off hides archived sessions from cards and index
resolution, /archived on restores them. Defaults to on.
2026-08-21 16:02:14 +08:00
liuwenbo00
beb269dc0e feat(feishu): persistent session watches and completion pushes
- /watch resolves the target READ-ONLY: sessions are validated against
  registered workspace listings (current or any other) without binding the
  conversation or switching workspaces. /unwatch and /watchlist round out
  the command set; the watchlist card supports button and number-reply
  unwatching.
- Watches persist in the state store (sessionId + title + chatId + lastSeq)
  and resume at runtime start: the bridge starts the global event-mux
  watcher in its constructor when the harness supports it.
- Completion pushes fire on turn/end, deduped by sessionId + turn id, with
  the seq watermark persisted per watch. After a mux reconnect the bridge
  replays each watched session's recent history (session.history) through
  the normal handler, so missed turn/end events are compensated without
  duplicates.
- Bound-session push targets are persisted (chatTargets) instead of living
  only in memory, and refresh on every accepted message.
- Watch failures map to safe user-facing messages.
2026-08-21 16:01:33 +08:00
xmanrui
c1a3b0cf97 fix(feishu): add one-click card callback repair 2026-08-21 13:43:02 +08:00
xmanrui
0e62c69382 fix(feishu): make interactive card menus reliable 2026-08-21 11:27:33 +08:00
liuwenbo00
6366404c42 feat(feishu): interactive card menus and session/workspace list cards
- /m (or /menu) opens a card menu; /sessionlist and /workspacelist render
  cards with bind/switch buttons; number replies stay usable as a fallback
  when the app does not subscribe card.action.trigger.
- card.action.trigger callbacks validate the operator's open_id against the
  allowed senders: group members outside the allowlist can never drive
  binding, workspace switches or other card actions.
- Session-list pagination uses page numbers everywhere (buttons carry
  sessions:<page>), fixing the previous double page-size scaling that
  skipped pages past 20 sessions.
- Bind/workspace failures map to safe user-facing messages instead of raw
  error details.
- Apps registered after this change subscribe card.action.trigger during
  the scan flow.
2026-08-21 10:03:23 +08:00
xmanrui
8121557460 feat: support numbered model selection 2026-08-20 03:11:20 +08:00
xmanrui
99ce38e9a4 feat: add model and turn control commands 2026-08-20 01:28:51 +08:00
xmanrui
3ac70a7c65 fix: remember direct recipients for connection tests 2026-08-19 11:24:50 +08:00
xmanrui
fb61c4235f feat: send test messages during bot connection checks 2026-08-19 03:52:52 +08:00
xmanrui
26558e5e71 fix: explain missing Feishu image permission 2026-08-19 03:13:11 +08:00
xmanrui
65c842c045 feat: support image prompts across IM channels 2026-08-19 02:56:14 +08:00
xmanrui
1cc7a26f30 feat: support compact command across IM channels 2026-08-18 23:20:05 +08:00
xmanrui
66bdad6299 fix: support Harness approvals across IM channels 2026-08-18 16:45:25 +08:00
xmanrui
3e7e1dcdd7 fix: support Harness interactions in DingTalk and Feishu 2026-08-18 13:03:15 +08:00
xmanrui
1af8610cd5 feat: bind bot chats to existing harness sessions 2026-08-18 02:59:29 +08:00
xmanrui
28381468b3 feat: add workspace session list command 2026-08-18 01:38:18 +08:00
xmanrui
1fe6180813 feat: add workspace list command 2026-08-18 00:39:16 +08:00
xmanrui
7123fce47a Add manual IM bot credential access 2026-08-16 01:54:06 +08:00
xmanrui
bd469f58f8 Internalize all IM channel implementations 2026-08-15 15:40:53 +08:00