From 30e371b9d7d0b8ec0025d789a4806a3a7945f0f1 Mon Sep 17 00:00:00 2001 From: Till JS Date: Sun, 17 May 2026 22:38:58 +0200 Subject: [PATCH] refactor(log): Log.swift auf ManaAppLog (mana-swift-core v1.7.0) + appGroup-Konsolidierung Audit V4. Co-Authored-By: Claude Opus 4.7 (1M context) --- Sources/Core/Auth/AppConfig.swift | 11 +++++++---- Sources/Core/Telemetry/Log.swift | 29 +++++++++++++++++------------ 2 files changed, 24 insertions(+), 16 deletions(-) diff --git a/Sources/Core/Auth/AppConfig.swift b/Sources/Core/Auth/AppConfig.swift index 94ecc93..980eae1 100644 --- a/Sources/Core/Auth/AppConfig.swift +++ b/Sources/Core/Auth/AppConfig.swift @@ -7,12 +7,18 @@ import ManaCore /// `webBaseURL` (zitare.com, für WKWebView und Universal-Links) /// und `appBaseURL` (zitare.mana.how, für eingeloggte Pfade). enum AppConfig { + /// App-Group für Daten-Sharing zwischen App ↔ Widget ↔ ShareExt. + /// Single-Source: wird in ``manaAppConfig`` und in + /// `SnapshotModels.appGroup` (Widget-shared) gespiegelt. + static let appGroup = "group.ev.mana.zitare" + static let manaAppConfig: ManaAppConfig = DefaultManaAppConfig( authBaseURL: URL(string: "https://auth.mana.how")!, keychainService: "ev.mana.zitare", // Explizit auf TeamID.BundleID, statt nil. Vermeidet Logout // bei TestFlight-Cert-Drift (siehe mana-swift-core v1.5.1). - keychainAccessGroup: "QP3GLU8PH3.ev.mana.zitare" + keychainAccessGroup: "QP3GLU8PH3.ev.mana.zitare", + appGroup: appGroup ) /// `zitare-api.mana.how` — API-Backend (Hono+Bun). @@ -34,9 +40,6 @@ enum AppConfig { /// kommt das zurück auf `publicWebURL`. static let webBaseURL = appBaseURL - /// App-Group für Daten-Sharing zwischen App ↔ Widget ↔ ShareExt. - static let appGroup = "group.ev.mana.zitare" - /// Endpoint für den Korpus-Snapshot (Phase ζ-2). Heute noch nicht /// als statische HTTP-Datei publiziert — Aufgabe im Web-Repo: /// `apps/zitare/static/index-min.json` aus dem Snapshot-Job diff --git a/Sources/Core/Telemetry/Log.swift b/Sources/Core/Telemetry/Log.swift index 59d69a2..adab7ef 100644 --- a/Sources/Core/Telemetry/Log.swift +++ b/Sources/Core/Telemetry/Log.swift @@ -1,16 +1,21 @@ -import Foundation +import ManaCore import OSLog -/// App-eigene OSLog-Logger unter Subsystem `ev.mana.zitare`. -/// ManaCore loggt unter `ev.mana.core` parallel — siehe -/// `mana-swift-core/Sources/ManaCore/Telemetry/CoreLog.swift`. +/// App-eigene OSLog-Logger gegen ``AppConfig/manaAppConfig``. Standard- +/// Kategorien (`app`/`auth`/`api`/`web`) kommen aus ``ManaAppLog`` +/// (mana-swift-core v1.7.0+), app-spezifische über `mana.category(…)`. +/// +/// Subsystem leitet sich aus `AppConfig.manaAppConfig.logSubsystem` ab +/// — heute `ev.mana.zitare`. ManaCore loggt parallel unter `ev.mana.core`. enum Log { - static let app = Logger(subsystem: "ev.mana.zitare", category: "app") - static let auth = Logger(subsystem: "ev.mana.zitare", category: "auth") - static let api = Logger(subsystem: "ev.mana.zitare", category: "api") - static let web = Logger(subsystem: "ev.mana.zitare", category: "web") - static let snapshot = Logger(subsystem: "ev.mana.zitare", category: "snapshot") - static let widget = Logger(subsystem: "ev.mana.zitare", category: "widget") - static let spotlight = Logger(subsystem: "ev.mana.zitare", category: "spotlight") - static let share = Logger(subsystem: "ev.mana.zitare", category: "share") + private static let mana = ManaAppLog(AppConfig.manaAppConfig) + + static let app = mana.app + static let auth = mana.auth + static let api = mana.api + static let web = mana.web + static let snapshot = mana.category("snapshot") + static let widget = mana.category("widget") + static let spotlight = mana.category("spotlight") + static let share = mana.category("share") }