You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
xstep step-recording JSON is slimmed (~30% smaller, no information loss): per-step location/function are dropped (read them from stack[0]), the shared breakpoint is emitted once at the top level instead of on every step, and variables is omitted on diff frames (recoverable from diff) (#86).
xprofile time_ms/memory_mb are now real measurements parsed from the cachegrind summary: line (via the events: header) instead of heuristic estimates (#87).
xprofile bottlenecks is now a structured array [{function, percentage, time_ms}] instead of preformatted strings, so it can be filtered/sorted programmatically (#87).
Output format details now live in the JSON schemas; the xdebug skill and MCP tool descriptions defer to them instead of restating the shape (#86, #87).
Fixed
xprofile per-function cost summed the line number instead of the Time column, making bottleneck percentages meaningless; costs are now time-based and the bottleneck time_ms values sum to the reported total (#87).
Removed
Dead XdebugProfiler class and unused ProfileStatistics/ProfileAnalysis DTOs — never instantiated; both the CLI and MCP paths go through bin/xprofile (#88).