This roadmap tracks durable research milestones without turning raw investigation notes into a second planning system.
- Vision
- Product Principles
- Milestone Progress
- Milestone 0: Repository Foundation
- Milestone 1: MediaRemote Baseline
- Milestone 2: Media Control Experiments
- Milestone 3: Reusable Research Tooling
- Small Tickets
- Backlog Candidates
- History
Build a trustworthy public knowledge base and set of local tools for understanding Apple-platform frameworks and services from source evidence through safe runtime experiments.
- Study one coherent target at a time.
- Keep raw evidence separate from cleaned documentation.
- Prefer read-only, repeatable experiments before mutation.
- Record environment and permission boundaries with every claim they affect.
- Keep research knowledge public while treating supported releases and redistribution of Apple-owned or third-party material as separate explicit decisions.
| Workstream | Status | Current Boundary |
|---|---|---|
| Repository foundation | Completed | SwiftPM, documentation, evidence, validation, and maintenance structure established. |
| MediaRemote | In Progress | Read-only baseline and runtime probes established; interface recovery and non-empty now-playing reproduction remain open. |
| Messages | Baseline Established | Supported/private boundary, storage, runtime, notification, and XPC ownership maps captured; deeper interface and event proof remains open. |
| Phone | Baseline Established | Supported/private boundary, storage, runtime, notification, and XPC ownership maps captured; deeper interface and event proof remains open. |
| UserNotifications | Baseline Established | Read-only Notification Center Accessibility and runtime inventory established; broader state and OS comparisons remain open. |
| Media control experiments | Planned | Mutating command and route experiments remain gated on explicit, bounded research slices. |
| Reusable research tooling | In Progress | Target index, notification, Objective-C runtime, string-constant, and MediaRemote capture helpers exist; generalized capture and reporting remain open. |
Completed
- Establish a SwiftPM-ready public research repository with durable documentation, evidence directories, agent guidance, and local maintenance entrypoints.
- Create a SwiftPM-ready research repository.
- Add local agent guidance for Apple docs, private-framework research evidence, and Swift tooling.
- Establish durable documentation and raw research directories.
- Seed the first target outline for
MediaRemote.framework. - Install repo-owned validation, shared-sync, and release-maintenance entrypoints.
- A new target has clear locations for source, tests, raw evidence, polished docs, and repeatable maintenance commands.
In Progress
- Map the active MediaRemote framework and beta SDK surfaces, prove safe userland observations, and document the permission and process boundaries around now-playing, routes, XPC, and daemon behavior.
- Locate active macOS 26.5 framework paths and installed macOS 27 beta SDK framework paths.
- Record framework metadata, linked libraries, entitlements, strings, exports, Objective-C names, selectors, and notifications.
- Compare macOS 26.5 and macOS 27 beta SDK symbol surfaces.
- Query the live dyld shared-cache export surface for
MediaRemote.framework. - Identify local wrappers, XPC services, jobs, daemons, and related frameworks.
- Generate or recover private headers and interfaces for high-value symbols.
- Document userland-callable now-playing, command, queue, origin, route, and destination APIs.
- Mark entitlement, privilege, SIP, and private-framework boundaries.
- Build and test a non-mutating now-playing probe against active Spotify playback.
- Build a metadata-only now-playing fixture and test its MediaRemote visibility.
- Resolve active Spotify identity through origin and player-path APIs.
- Confirm a non-empty now-playing dictionary through origin/player paths, daemon observation, or an app-bundle fixture.
- High-value interfaces are documented and a non-empty now-playing path is reproduced with environment evidence.
Planned
- Extend the baseline into narrowly bounded media-state and command experiments after the read-only behavior and permission model are understood.
- Build targeted experiments for read-only now-playing state.
- Build targeted experiments for playback command dispatch.
- Explore notification and callback delivery behavior.
- Explore per-app, per-origin, and route-aware media state.
- Document failure modes, required host context, sandbox behavior, and privacy prompts.
- Each experiment has a reproducible command, captured result, documented side effects, and explicit permission boundary.
In Progress
- Turn repeated evidence-gathering work into small composable Swift helpers and scripts that future research targets can reuse.
- Add shared Swift helpers for command execution, symbol inventory parsing, plist parsing, and evidence capture.
- Add repeatable MediaRemote inventory and observation scripts.
- Generalize framework inventory scripts for future targets.
- Add reusable diff tooling for active OS versus SDK surfaces.
- Add report templates for frameworks, daemons, XPC services, and subsystem categories.
- A second framework target can reuse the core capture and reporting path without copying MediaRemote-specific implementation.
- Add a Markdown link sanity check to repo-maintenance validation.
- Normalize the existing Swift sources against the checked-in SwiftFormat profile; the initial lint audit found formatting drift while SwiftLint remained clean.
- Select and document an explicit reuse license for the repository's original code and research documentation.
- Continue related media-framework, daemon, and service targets discovered during the MediaRemote pass.
- Expand Messages and Phone research from the existing ownership and surface maps.
- Expand UserNotifications and Notification Center accessibility research from the current read-only baseline.
- Continue
WallpaperAgentand debug XPC research on its dedicated branch. - Explore other macOS and iOS private frameworks that can inform local educational tools.
- 2026-07-15: Created the repository foundation and seeded the MediaRemote baseline.
- 2026-07-16: Added Messages, Phone, UserNotifications, Notification Center, and WallpaperAgent research slices.
- 2026-07-17: Normalized repository documentation and installed the SwiftPM repo-maintenance profile.