feat(cli): add issue runs and run-messages commands

Add two new CLI commands so agents can access execution history:
- `multica issue runs <issue-id>` lists all task executions for an issue
- `multica issue run-messages <task-id>` lists messages for an execution

Also adds --since query param support to the ListTaskMessages backend
handler for incremental message fetching.
This commit is contained in:
Jiayuan 2026-04-02 03:30:33 +08:00
parent 85d00fde57
commit 6b0c9bba9e
2 changed files with 142 additions and 1 deletions

View file

@ -5,6 +5,7 @@ import (
"fmt"
"log/slog"
"net/http"
"strconv"
"strings"
"github.com/go-chi/chi/v5"
@ -483,7 +484,20 @@ func (h *Handler) ListTaskMessages(w http.ResponseWriter, r *http.Request) {
return
}
messages, err := h.Queries.ListTaskMessages(r.Context(), parseUUID(taskID))
var messages []db.TaskMessage
if sinceStr := r.URL.Query().Get("since"); sinceStr != "" {
sinceSeq, parseErr := strconv.Atoi(sinceStr)
if parseErr != nil {
writeError(w, http.StatusBadRequest, "invalid since parameter")
return
}
messages, err = h.Queries.ListTaskMessagesSince(r.Context(), db.ListTaskMessagesSinceParams{
TaskID: parseUUID(taskID),
Seq: int32(sinceSeq),
})
} else {
messages, err = h.Queries.ListTaskMessages(r.Context(), parseUUID(taskID))
}
if err != nil {
writeError(w, http.StatusInternalServerError, "failed to list task messages")
return