The file /Users/neog/Apps/iOS/PROD-Planner2026/Planner2026-iOS/Services/Data/DataManager.swift has been updated. Here's the result of running `cat -n` on a snippet of the edited file: 264→ func tasksForLocation(_ locationId: UUID) -> [PlannerTask] { 265→ tasks.filter { $0.locationId == locationId } 266→ } 267→ 268→ // MARK: - Project CRUD 269→ func addProject(_ project: Project) { 270→ projects.append(project) 271→ #if os(iOS) 272→ HapticManager.impact(.medium) 273→ #elseif os(macOS) 274→ FeedbackManager.taskAdded() 275→ #endif 276→ scheduleDebouncedSave(for: "projects") 277→ SyncManager.shared.syncProject(project) 278→ } 279→ 280→ func updateProject(_ project: Project) { 281→ if let index = projects.firstIndex(where: { $0.id == project.id }) { 282→ var updated = project 283→ updated.modifiedAt = Date() 284→ projects[index] = updated 285→ scheduleDebouncedSave(for: "projects") 286→ SyncManager.shared.syncProject(updated) 287→ } 288→ } 289→ 290→ func deleteProject(_ project: Project) { 291→ // Remove project reference from tasks 292→ for i in tasks.indices where tasks[i].projectId == project.id { 293→ tasks[i].projectId = nil 294→ } 295→ projects.removeAll { $0.id == project.id } 296→ scheduleDebouncedSave(for: "projects") 297→ scheduleDebouncedSave(for: "tasks") 298→ Task { await SyncManager.shared.deleteProject(project) } 299→ } 300→ 301→ func projectProgress(_ project: Project) -> Double { 302→ let projectTasks = tasksForProject(project.id) 303→ guard !projectTasks.isEmpty else { return 0.0 }