c34a2c01e4
Move macOS dark/light mode detection from compiled Objective-C helper + shell-out to defaults(1) into the Rust pi-natives crate. Sync detection: CFPreferencesCopyAppValue reads AppleInterfaceStyle directly — no subprocess, no shell. Observer: background thread registers with CFDistributedNotificationCenter for AppleInterfaceThemeChangedNotification. A 2-second CFRunLoopTimer serves as both run-loop keep-alive and polling fallback (distributed notifications may not reliably reach background threads on all macOS versions). Dedup logic prevents double-firing. Removes: MACOS_OBSERVER_OBJC constant, getOrCompileObserver(), binary cache at ~/.omp/cache/, defaults read shell-out, readLines stream parsing, fallback poll timer. Adds: crates/pi-natives/src/appearance.rs (CoreFoundation FFI), packages/natives/src/appearance/ (TS bindings).
@oh-my-pi/pi-coding-agent
Core implementation package for the omp coding agent in the oh-my-pi monorepo.
For installation, setup, provider configuration, model roles, slash commands, and full CLI reference, see:
Package-specific references: