Diagnóstico iCloud: dump completo del árbol CKError (códigos hoja + record types) + sonda de integridad local

deepErrorReport() sigue NSUnderlyingError y CKPartialErrorsByItemIDKey y extrae el recordType
del CKRecord embebido → dice qué entidad rechaza CloudKit. integrityReport() lista counts por
entidad + registros con id/createdAt nil u orphan snapshots. Ambos en el diagnóstico copiable.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LZFmGhbWzibhApev3C4554
This commit is contained in:
alexandrev-tibco
2026-07-21 18:00:22 +02:00
parent e916218271
commit f34460d97a
5 changed files with 138 additions and 12 deletions
@@ -898,6 +898,12 @@ struct SettingsView: View {
lines.append("critical: \(cloudStack.syncErrorIsCritical)")
lines.append("hint: \(cloudStack.lastSyncErrorHint ?? "")")
lines.append("error: \(cloudStack.lastSyncError ?? "none this session")")
lines.append("")
lines.append("— integrity —")
lines.append(cloudStack.integrityReport())
lines.append("")
lines.append("— error detail —")
lines.append(cloudStack.lastSyncErrorDetail ?? "none this session")
return lines.joined(separator: "\n")
}
}