// SPDX-FileCopyrightText: 2026 Kaede Akino // SPDX-License-Identifier: GPL-3.0-only import SwiftData @MainActor extension ModelContext { public func savePendingChanges() throws { try commit {} } public func commit(beforeSave: () throws -> Void = {}, _ operation: () throws -> Void) throws { do { try operation() try beforeSave() try save() } catch { rollback() throw error } } }