Add scan flow MVP and local Axiom skill workspace

This snapshot establishes the camera-to-result recognition flow and related tests while checking in the project skill/docs assets required for the configured local tooling.
This commit is contained in:
Matthias
2026-04-19 21:11:32 +02:00
parent 577214d474
commit a60a76b797
679 changed files with 138964 additions and 73 deletions

View File

@@ -0,0 +1,37 @@
import Combine
import Foundation
import Network
protocol NetworkStatusProviding: AnyObject {
var isOnline: Bool { get }
func startMonitoring()
func stopMonitoring()
}
@MainActor
final class NetworkMonitor: ObservableObject, NetworkStatusProviding {
@Published private(set) var isOnline = true
private let monitor = NWPathMonitor()
private let queue = DispatchQueue(label: "StackDex.NetworkMonitor")
private var isMonitoring = false
func startMonitoring() {
guard !isMonitoring else { return }
isMonitoring = true
monitor.pathUpdateHandler = { [weak self] path in
let isSatisfied = path.status == .satisfied
DispatchQueue.main.async {
self?.isOnline = isSatisfied
}
}
monitor.start(queue: queue)
}
func stopMonitoring() {
guard isMonitoring else { return }
monitor.cancel()
isMonitoring = false
}
}