// retoor import Foundation actor StateManager { private struct State: Codable { var lastMentionTime: Int } private let stateURL: URL private var state: State init() { let homeDir = FileManager.default.homeDirectoryForCurrentUser let grokiiDir = homeDir.appendingPathComponent(".grokii") try? FileManager.default.createDirectory(at: grokiiDir, withIntermediateDirectories: true) self.stateURL = grokiiDir.appendingPathComponent("state.json") if let data = try? Data(contentsOf: stateURL), let loaded = try? JSONDecoder().decode(State.self, from: data) { self.state = loaded } else { self.state = State(lastMentionTime: 0) } } var lastMentionTime: Int { state.lastMentionTime } func updateLastMentionTime(_ time: Int) { guard time > state.lastMentionTime else { return } state.lastMentionTime = time save() } private func save() { guard let data = try? JSONEncoder().encode(state) else { return } try? data.write(to: stateURL, options: .atomic) } }