| 246 | } |
| 247 | if meta := s.loadSQLiteMeta(id); meta != nil { |
| 248 | metas = append(metas, *meta) |
| 249 | seen[id] = struct{}{} |
| 250 | } |
| 251 | } |
| 252 | sort.Slice(metas, func(i, j int) bool { |
| 253 | return metas[i].LastUpdated > metas[j].LastUpdated |
| 254 | }) |
| 255 | return metas |
| 256 | } |
| 257 | |
| 258 | func (s *Store) LoadMeta(sessionID string) *Meta { |
| 259 | data := loadJSONMap(s.metaReadPath(sessionID)) |
| 260 | if data == nil { |
| 261 | return s.loadSQLiteMeta(sessionID) |
| 262 | } |
| 263 | meta := &Meta{ |
| 264 | SessionID: stringFromAny(data["session_id"]), |
| 265 | CreatedAt: floatFromAny(data["created_at"]), |
| 266 | LastUpdated: floatFromAny(data["last_updated"]), |
| 267 | MessageCount: intFromAny(data["message_count"]), |