New version v2.3.6

This commit is contained in:
2026-03-04 10:19:16 +01:00
parent 65a35cd508
commit 49f842f119
52 changed files with 14034 additions and 358 deletions

View File

@@ -410,7 +410,7 @@ class AnytypeMCPService {
updated[idx] = line
let newMarkdown = updated.joined(separator: "\n")
let patchResult = try await request(
_ = try await request(
endpoint: "/v1/spaces/\(spaceId)/objects/\(objectId)",
method: "PATCH",
body: ["markdown": newMarkdown]

View File

@@ -59,7 +59,7 @@ class IMAPClient {
let hostName = self.host
return try await withCheckedThrowingContinuation { continuation in
final class ResumeOnce {
final class ResumeOnce: @unchecked Sendable {
var resumed = false
let lock = NSLock()
}

View File

@@ -54,7 +54,7 @@ class SMTPClient {
let hostName = self.host
try await withCheckedThrowingContinuation { (continuation: CheckedContinuation<Void, Error>) in
final class ResumeOnce {
final class ResumeOnce: @unchecked Sendable {
var resumed = false
let lock = NSLock()
}
@@ -92,7 +92,7 @@ class SMTPClient {
let hostName = self.host
try await withCheckedThrowingContinuation { (continuation: CheckedContinuation<Void, Error>) in
final class ResumeOnce {
final class ResumeOnce: @unchecked Sendable {
var resumed = false
let lock = NSLock()
}
@@ -251,7 +251,7 @@ class SMTPClient {
self.connection = NWConnection(host: NWEndpoint.Host(host), port: NWEndpoint.Port(integerLiteral: port), using: params)
try await withCheckedThrowingContinuation { (continuation: CheckedContinuation<Void, Error>) in
final class ResumeOnce {
final class ResumeOnce: @unchecked Sendable {
var resumed = false
let lock = NSLock()
}

View File

@@ -222,6 +222,34 @@ class SettingsService {
}
}
// MARK: - Reasoning Settings
var reasoningEnabled: Bool {
get { cache["reasoningEnabled"] == "true" }
set {
cache["reasoningEnabled"] = String(newValue)
DatabaseService.shared.setSetting(key: "reasoningEnabled", value: String(newValue))
}
}
/// "high", "medium", "low", "minimal" default "medium"
var reasoningEffort: String {
get { cache["reasoningEffort"] ?? "medium" }
set {
cache["reasoningEffort"] = newValue
DatabaseService.shared.setSetting(key: "reasoningEffort", value: newValue)
}
}
/// When true, model reasons internally but thinking content is excluded from response
var reasoningExclude: Bool {
get { cache["reasoningExclude"] == "true" }
set {
cache["reasoningExclude"] = String(newValue)
DatabaseService.shared.setSetting(key: "reasoningExclude", value: String(newValue))
}
}
// MARK: - Text Size Settings
/// GUI text size (headers, labels, buttons) default 13