Skip to content

Conversation

@SenpaiHunters
Copy link
Collaborator

Introduce a unified logging package, Scribe, to standardise and simplify application logging.

Usage

import Scribe

// Generic action
Log.[action]("Information", category: .define)

// Example
Log.info("Refreshing accent color based on system accent setting", category: .accentColorController)

Notes

  • Scribe provides sensible defaults via a Defaults type, and allows adding custom items alongside those defaults.
  • Going forward, all logging will be routed through Scribe.
  • This replaces ad‑hoc print statements and direct os_log calls.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR introduces Scribe, a unified logging package that standardizes application logging across Loop by replacing ad-hoc print statements and direct os_log calls with a centralized logging API.

  • Adds Scribe as a Swift package dependency tracking the main branch
  • Defines 20+ centralized logging categories in Logger+Extensions.swift
  • Migrates 13+ files from OSLog's Logger to Scribe's Log API

Reviewed changes

Copilot reviewed 41 out of 41 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
Loop.xcodeproj/project.pbxproj Adds Scribe package dependency configured to track main branch
Loop/Extensions/Logger+Extensions.swift Defines centralized LogCategory extensions for all logging contexts
Loop/App/AppDelegate.swift Configures Scribe logging with minimum info level and migrates URL handling logs
Loop/App/AppDelegate+UNNotifications.swift Migrates notification-related logging to Scribe
Loop/App/DataPatcher.swift Migrates data migration logging to Scribe
Loop/Core/LoopManager.swift Migrates core window management logging to Scribe
Loop/Core/URLCommandHandler.swift Migrates URL command handling logs from debug to info level
Loop/Core/WindowDragManager.swift Migrates window dragging event logging to Scribe
Loop/Core/Observers/MouseInteractionObserver.swift Migrates mouse interaction logging to Scribe
Loop/Icon/IconManager.swift Migrates app icon management logging to Scribe
Loop/Migration/Migrator.swift Migrates keybind import logging to Scribe
Loop/Stashing/StashManager.swift Migrates window stashing operation logging to Scribe
Loop/Stashing/StashedWindow.swift Migrates stashed window frame logging to Scribe
Loop/Stashing/StashedWindowStore.swift Migrates window store persistence logging to Scribe
Loop/Updater/Updater.swift Migrates app update process logging to Scribe
Loop/Utilities/AccessibilityManager.swift Adds compatibility comments for macOS 26.0 API usage

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

# Conflicts:
#	Loop.xcodeproj/project.pbxproj
#	Loop/Settings Window/Settings/Keybinds/Keybind Recorder/TriggerKeycorder.swift
#	Loop/Settings Window/SettingsWindowManager.swift
@SenpaiHunters SenpaiHunters marked this pull request as ready for review December 9, 2025 00:17
@MrKai77 MrKai77 merged commit aaa82f3 into develop Dec 9, 2025
1 check passed
@MrKai77 MrKai77 deleted the scribe-logging branch December 9, 2025 00:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants