Skip to content

Latest commit

 

History

History
155 lines (104 loc) · 7.32 KB

File metadata and controls

155 lines (104 loc) · 7.32 KB

Project Roadmap

This roadmap tracks durable research milestones without turning raw investigation notes into a second planning system.

Table of Contents

Vision

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.

Product Principles

  • 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.

Milestone Progress

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.

Milestone 0: Repository Foundation

Status

Completed

Scope

  • Establish a SwiftPM-ready public research repository with durable documentation, evidence directories, agent guidance, and local maintenance entrypoints.

Tickets

  • 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.

Exit Criteria

  • A new target has clear locations for source, tests, raw evidence, polished docs, and repeatable maintenance commands.

Milestone 1: MediaRemote Baseline

Status

In Progress

Scope

  • 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.

Tickets

  • 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.

Exit Criteria

  • High-value interfaces are documented and a non-empty now-playing path is reproduced with environment evidence.

Milestone 2: Media Control Experiments

Status

Planned

Scope

  • Extend the baseline into narrowly bounded media-state and command experiments after the read-only behavior and permission model are understood.

Tickets

  • 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.

Exit Criteria

  • Each experiment has a reproducible command, captured result, documented side effects, and explicit permission boundary.

Milestone 3: Reusable Research Tooling

Status

In Progress

Scope

  • Turn repeated evidence-gathering work into small composable Swift helpers and scripts that future research targets can reuse.

Tickets

  • 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.

Exit Criteria

  • A second framework target can reuse the core capture and reporting path without copying MediaRemote-specific implementation.

Small Tickets

  • 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.

Backlog Candidates

  • 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 WallpaperAgent and debug XPC research on its dedicated branch.
  • Explore other macOS and iOS private frameworks that can inform local educational tools.

History

  • 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.