refactor: remove fs/persist.go, inline calls to session package

- Delete fs/persist.go (thin wrappers no longer needed)
- handlers.go: call session.PersistSession() directly
- newroot.go: inline restore logic with AgentLog creation
This commit is contained in:
Levi Neely 2026-08-04 14:03:23 +02:00
parent 4ae1584887
commit b1c74d3121
3 changed files with 10 additions and 38 deletions

View File

@ -426,7 +426,7 @@ func agentBindings(ctx HandlerCtx) ([]Binding, error) {
},
Rename: func(newName string) error {
a.SetName(newName)
persistSession(globalRootState, sess.Name())
session.PersistSession(sess.Name())
return nil
},
})
@ -727,7 +727,7 @@ func writeAgentName(ctx HandlerCtx, data []byte) error {
return nil
}
ctx.Agent.SetName(newName)
persistSession(globalRootState, ctx.Session.Name())
session.PersistSession(ctx.Session.Name())
return nil
}

View File

@ -77,7 +77,14 @@ func NewRoot(cfg Config) *Tree {
globalRootState = rs
// Restore persisted sessions from disk.
restoreAllSessions(rs)
for _, r := range session.RestoreAllSessions() {
node := rs.GetOrCreateNode(r.Session)
for _, ra := range r.Agents {
al := NewAgentLog(ra.Remote)
node.SetAgentLog(ra.ID, al)
replayMessagesToLog(al, ra.Messages)
}
}
return tree
}

View File

@ -1,35 +0,0 @@
package fs
import (
"ollie/session"
)
// persistSession saves a session to disk.
func persistSession(rs *RootState, name string) {
if err := session.PersistSession(name); err != nil {
rs.Cfg.Log.Error("persist session %s: %v", name, err)
}
}
// saveAllSessions persists all active sessions.
func saveAllSessions(rs *RootState) {
session.SaveAllSessions()
}
// restoreAllSessions restores persisted sessions and wraps them with SessionNodes.
func restoreAllSessions(rs *RootState) {
restored := session.RestoreAllSessions()
for _, r := range restored {
// Wrap in SessionNode
node := rs.GetOrCreateNode(r.Session)
// Create AgentLog for each agent
for _, ra := range r.Agents {
al := NewAgentLog(ra.Remote)
node.SetAgentLog(ra.ID, al)
// Replay messages to the AgentLog
replayMessagesToLog(al, ra.Messages)
}
}
}