Problem
Activity Monitor labels the application Python, but native libmpv/FFmpeg and Qt/OpenGL work are charged to that process. Task-level powermetrics proves CPU pressure but cannot identify the hot stack.
Scope
Add a documented, bounded profile and parser that records the exact commit, PID, cell count, decoder per cell, sample stacks, powermetrics task CPU, thermal pressure, GPU residency, frame-pump counters, render timing, and loop lag. Run short churn-disabled profiles at 1, 2, 4, 6, and 8 cells.
Acceptance criteria
- Parser tests use sanitized fixtures and do not require macOS.
- Reports distinguish Python dispatch, native libmpv/FFmpeg, render API, WindowServer, and thermal evidence when the source provides it.
- Missing or permission-denied
powermetrics is marked incomplete, never passed.
- The report identifies the first cell count that violates the responsiveness budget.
Problem
Activity Monitor labels the application
Python, but native libmpv/FFmpeg and Qt/OpenGL work are charged to that process. Task-levelpowermetricsproves CPU pressure but cannot identify the hot stack.Scope
Add a documented, bounded profile and parser that records the exact commit, PID, cell count, decoder per cell,
samplestacks,powermetricstask CPU, thermal pressure, GPU residency, frame-pump counters, render timing, and loop lag. Run short churn-disabled profiles at 1, 2, 4, 6, and 8 cells.Acceptance criteria
powermetricsis marked incomplete, never passed.