返回 DeepSeek-Reasonix
session_activity_baseline.go
根目录 / desktop / session_activity_baseline.go
1 package main
2
3 import (
4 "reasonix/internal/session"
5 "strconv"
6 )
7
8 // SessionActivityBaseline is an explicit owner observation. Query.Stat validates
9 // cold metadata against the log revision and schedules bounded asynchronous
10 // rebuilding when needed; the sidebar never replays the transcript itself.
11 type SessionActivityBaseline struct {
12 Ref session.SessionRef `json:"ref"`
13 ResultSequence uint64 `json:"resultSequence"`
14 EventVersion string `json:"eventVersion"`
15 LifecycleGeneration uint64 `json:"lifecycleGeneration"`
16 Complete bool `json:"complete"`
17 }
18
19 func (a *App) GetSessionActivityBaseline(selector SessionSelector) (SessionActivityBaseline, error) {
20 target, err := a.resolveSessionTarget(selector)
21 if err != nil {
22 return SessionActivityBaseline{}, err
23 }
24 if target.SessionRef.SessionID == "" {
25 return SessionActivityBaseline{}, newSessionOperationError("unsupported", "This history source has no canonical result sequence.")
26 }
27 info, err := a.desktopSessionService("").Query().Stat(a.bootContext(), target.SessionRef)
28 if err != nil {
29 return SessionActivityBaseline{}, err
30 }
31 return SessionActivityBaseline{Ref: target.SessionRef, ResultSequence: info.ResultSequence,
32 EventVersion: strconv.FormatUint(info.EventSequence, 10), LifecycleGeneration: target.LifecycleGeneration,
33 Complete: info.MetadataStatus == session.MetadataReady && info.Error == ""}, nil
34 }
35
35 lines GO