Get 8-week progress for a specific exercise: weekly e1RM trend, personal records, plateau detection, last session details, and strength_state — the trend STATE (progressing / holding / stalling / deloading / insufficient_data) classified over the 6-week window stated in its window_weeks, the same signal shown on the iOS lift detail page. Prefer strength_state over raw weekly points when judging whether a lift is improving. For the per-lift % gain ("+59%") and the 8-week state, use get_strength_climb — its constituents carry indexed_pct and their own window_weeks; the two states can differ for one lift because the windows differ, so quote the window with the state. Use when the user asks about a specific lift (e.g., "am I getting stronger on bench press?" or "have I plateaued on squats?"). Pass EITHER exercise_id (exact — from search_exercises or a prior resolution.candidates) OR exercise (a name, fuzzy-matched against the user's history). Prefer exercise_id when you have it: a fuzzy NAME can match several variants the user trains (e.g. "Incline Bench Press" → dumbbell vs machine), and the response's resolution block reports which id was chosen, whether it was ambiguous, and the candidates — if ambiguous, re-query with the exact exercise_id you meant. For muscle-group-level interpreted analysis (fatigue, plateau, effective volume), use get_muscle_state. For raw time-series data, use get_muscle_group_progress. Weekly points come from the exercise series (data_quality.source: precomputed_series); hard_sets is the week's hard-set credit and may be fractional; bests holds all-time bests (holds, carries, pace, exact vs estimated e1RM, reps at load, never mixed across load kinds); line lists each member of the progression line with its own bests; a line.trend, when present, is the line's merged strength state as the analyst classified it (max per week across members, exact and estimated e1RM never mixed, basis says which; null = not classified yet), and without it there is no merged trend across members.