Fix Swift 6 warnings in usage stats and folder deletion

UsageStats/ModelUsageStat/ConversationUsageStat need explicit
nonisolated inits under this project's SWIFT_DEFAULT_ACTOR_ISOLATION =
MainActor setting, same as Message/Conversation. deleteFolder also
discarded FolderRecord.deleteOne's Bool result implicitly via the
write closure's return value.
This commit is contained in:
2026-07-28 12:56:37 +02:00
parent 376fff4939
commit bf328c2629
2 changed files with 53 additions and 5 deletions
+52 -4
View File
@@ -24,13 +24,29 @@
import Foundation
struct UsageStats: Sendable {
var totalMessages: Int = 0
var totalTokens: Int = 0
var totalCost: Double = 0.0
var hasCostData: Bool = false
var totalMessages: Int
var totalTokens: Int
var totalCost: Double
var hasCostData: Bool
var firstMessageDate: Date?
var lastMessageDate: Date?
nonisolated init(
totalMessages: Int = 0,
totalTokens: Int = 0,
totalCost: Double = 0.0,
hasCostData: Bool = false,
firstMessageDate: Date? = nil,
lastMessageDate: Date? = nil
) {
self.totalMessages = totalMessages
self.totalTokens = totalTokens
self.totalCost = totalCost
self.hasCostData = hasCostData
self.firstMessageDate = firstMessageDate
self.lastMessageDate = lastMessageDate
}
var totalTokensDisplay: String {
if totalTokens >= 1_000_000 {
return String(format: "%.1fM", Double(totalTokens) / 1_000_000)
@@ -55,6 +71,22 @@ struct ModelUsageStat: Identifiable, Sendable {
var hasCostData: Bool
var lastUsed: Date
nonisolated init(
modelId: String,
messageCount: Int,
totalTokens: Int,
totalCost: Double,
hasCostData: Bool,
lastUsed: Date
) {
self.modelId = modelId
self.messageCount = messageCount
self.totalTokens = totalTokens
self.totalCost = totalCost
self.hasCostData = hasCostData
self.lastUsed = lastUsed
}
var totalTokensDisplay: String {
if totalTokens >= 1_000_000 {
return String(format: "%.1fM", Double(totalTokens) / 1_000_000)
@@ -79,6 +111,22 @@ struct ConversationUsageStat: Identifiable, Sendable {
var totalCost: Double
var hasCostData: Bool
nonisolated init(
conversationId: UUID,
name: String,
messageCount: Int,
totalTokens: Int,
totalCost: Double,
hasCostData: Bool
) {
self.conversationId = conversationId
self.name = name
self.messageCount = messageCount
self.totalTokens = totalTokens
self.totalCost = totalCost
self.hasCostData = hasCostData
}
var totalTokensDisplay: String {
if totalTokens >= 1_000_000 {
return String(format: "%.1fM", Double(totalTokens) / 1_000_000)
+1 -1
View File
@@ -639,7 +639,7 @@ final class DatabaseService: Sendable {
nonisolated func deleteFolder(id: UUID) throws {
try dbQueue.write { db in
try FolderRecord.deleteOne(db, key: id.uuidString)
_ = try FolderRecord.deleteOne(db, key: id.uuidString)
}
}