add message edit/delete/react flow and incremental process poll logs

This commit is contained in:
DBT
2026-02-24 08:56:14 +00:00
parent 6ef8cbc705
commit da862896e8
2 changed files with 17 additions and 2 deletions

View File

@@ -532,11 +532,17 @@ func (c *TelegramChannel) handleAction(ctx context.Context, chatID int64, action
defer cancel()
return c.bot.DeleteMessage(delCtx, &telego.DeleteMessageParams{ChatID: telegoutil.ID(chatID), MessageID: messageID})
case "react":
reactCtx, cancel := withTelegramAPITimeout(ctx)
defer cancel()
emoji := strings.TrimSpace(msg.Emoji)
if emoji == "" {
return fmt.Errorf("emoji required for react action")
}
return fmt.Errorf("telegram react action not supported by current telego version")
return c.bot.SetMessageReaction(reactCtx, &telego.SetMessageReactionParams{
ChatID: telegoutil.ID(chatID),
MessageID: messageID,
Reaction: []telego.ReactionType{&telego.ReactionTypeEmoji{Emoji: emoji}},
})
default:
return fmt.Errorf("unsupported telegram action: %s", action)
}

View File

@@ -58,9 +58,18 @@ func (t *ProcessTool) Execute(ctx context.Context, args map[string]interface{})
case <-ctx.Done():
}
}
off := toInt(args["offset"])
lim := toInt(args["limit"])
if lim <= 0 {
lim = 1200
}
if off < 0 {
off = 0
}
chunk, _ := t.m.Log(sid, off, lim)
s.mu.RLock()
defer s.mu.RUnlock()
resp := map[string]interface{}{"id": s.ID, "running": s.ExitCode == nil, "started_at": s.StartedAt.Format(time.RFC3339)}
resp := map[string]interface{}{"id": s.ID, "running": s.ExitCode == nil, "started_at": s.StartedAt.Format(time.RFC3339), "log": chunk, "next_offset": off + len(chunk)}
if s.ExitCode != nil {
resp["exit_code"] = *s.ExitCode
resp["ended_at"] = s.EndedAt.Format(time.RFC3339)