Session Cache Implementation

Nucleic-Session: B2346642-3353-4BD5-9DE2-A8B77BD66C98
Co-authored-by: Nucleic <[email protected]>
This commit is contained in:
2026-07-05 22:33:37 -07:00
co-authored by Nucleic
parent 711144fde8
commit f5d2a13a79
@@ -97,12 +97,12 @@ enum SessionCache {
try? FileManager.default.createDirectory(at: dir, withIntermediateDirectories: true) try? FileManager.default.createDirectory(at: dir, withIntermediateDirectories: true)
let sorted = events.sorted { $0.seq < $1.seq } let sorted = events.sorted { $0.seq < $1.seq }
let tail = sorted.count > eventLimit ? Array(sorted.suffix(eventLimit)) : sorted let tail = sorted.count > eventLimit ? Array(sorted.suffix(eventLimit)) : sorted
if let data = try? encoder.encode(tail) { try? data.write(to: url, options: .atomic) } if let data = try? JSONEncoder().encode(tail) { try? data.write(to: url, options: .atomic) }
} }
private static func readEvents(_ id: SessionID) -> [AgentEvent] { private static func readEvents(_ id: SessionID) -> [AgentEvent] {
guard let url = transcriptURL(id), let data = try? Data(contentsOf: url), guard let url = transcriptURL(id), let data = try? Data(contentsOf: url),
let events = try? decoder.decode([AgentEvent].self, from: data) let events = try? JSONDecoder().decode([AgentEvent].self, from: data)
else { return [] } else { return [] }
return events return events
} }