Share Vault, persistence, SSH/SFTP, forwarding, and SwiftUI components across platforms. Add mobile editors, terminal input, standalone Assistant, Metrics navigation, transfers, and a unified Live Activity with host system icons. Validation: 35 iOS tests and 100 focused macOS tests pass; formatting and zh-Hans checks pass. The full macOS run reports 14 issues in the documented timing, Keychain, and popover suites. Remaining Assistant tool and CloudKit work is tracked in Memory/MOBILE_ROLLOUT.md.
19 lines
630 B
Swift
19 lines
630 B
Swift
import Foundation
|
|
import TermindDomain
|
|
|
|
@MainActor
|
|
public protocol OutboxStore: AnyObject {
|
|
func enqueue(_ jobs: [OutboxJob]) throws
|
|
func nextReady(at date: Date) throws -> OutboxJob?
|
|
func markRunning(_ id: OutboxJob.ID) throws
|
|
func markSucceeded(_ id: OutboxJob.ID) throws
|
|
func markFailed(_ id: OutboxJob.ID, error: String, retryAt: Date?) throws
|
|
func resetInterruptedJobs() throws
|
|
func retryFailedJob(_ id: OutboxJob.ID) throws
|
|
}
|
|
|
|
public protocol OutboxEventHandler: AnyObject {
|
|
nonisolated var handlerID: String { get }
|
|
func handle(type: String, payload: Data, eventID: UUID) async throws
|
|
}
|