返回 DeepSeek-Reasonix
remote_history_outline.go
根目录 / desktop / remote_history_outline.go
1 package main
2
3 import (
4 "fmt"
5 "net/url"
6 "reasonix/internal/servecontract"
7 "reasonix/internal/session"
8 )
9
10 // RemoteSessionHistoryOutlineForTab never substitutes another host's history.
11 func (a *App) RemoteSessionHistoryOutlineForTab(tabID string, req session.HistoryOutlineRequest) (session.HistoryOutlinePage, error) {
12 a.remoteTabMu.Lock()
13 tab := a.remoteTabs[tabID]
14 supported := tab != nil && tab.capabilities[servecontract.HistoryOutlineV1]
15 a.remoteTabMu.Unlock()
16 page := session.HistoryOutlinePage{Entries: []session.HistoryOutlineEntry{}, Status: "unsupported"}
17 if !supported {
18 return page, nil
19 }
20 query := make(url.Values)
21 query.Set("startTurn", fmt.Sprint(req.StartTurn))
22 query.Set("limit", fmt.Sprint(req.Limit))
23 query.Set("generation", req.Generation)
24 if req.SnapshotSequence != nil {
25 query.Set("snapshotSequence", fmt.Sprint(*req.SnapshotSequence))
26 }
27 ok, err := a.remoteSessionHistoryRead(tabID, "/session-history/outline", query, &page, session.HistoryPageMaxBytes)
28 if err == nil && !ok {
29 page.Status = "unsupported"
30 }
31 if page.Entries == nil {
32 page.Entries = []session.HistoryOutlineEntry{}
33 }
34 return page, err
35 }
36
36 lines GO