Session Cache Implementation
Nucleic-Session: B2346642-3353-4BD5-9DE2-A8B77BD66C98 Co-authored-by: Nucleic <[email protected]>
This commit is contained in:
@@ -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
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user