VAM: drop duration curve, show avg climbing VAM in Nerd Corner

Remove the per-duration VAM curve everywhere (metrics, summaries, detail
JSON, athlete.json, VamChart.svelte, AthleteView VAM tab). Keep only
climbing_vam_mh per activity. Add it to activity summaries so NerdCorner
can plot average climbing VAM per week/month year-over-year alongside
distance/elevation/time. Add --backfill-vam-summary flag to copy the
field from existing detail JSONs into index.json without re-extracting.
This commit is contained in:
Davide Scaini
2026-05-16 22:03:40 +02:00
parent 7cd8a6b030
commit 003b540481
8 changed files with 77 additions and 346 deletions
+1 -9
View File
@@ -36,17 +36,10 @@ export interface BestClimb {
title: string;
}
export interface AthleteVamCurve {
all_time: MmpCurve | null;
last_365d: MmpCurve | null;
last_90d: MmpCurve | null;
}
export interface AthleteJson {
bas_version: string;
generated_at: string;
power_curve: AthletePowerCurve;
vam_curve?: AthleteVamCurve | null;
records?: Record<string, Record<string, EffortRecord | ValueRecord>>;
best_climbs?: BestClimb[];
max_hr?: number;
@@ -73,7 +66,7 @@ export interface ActivitySummary {
avg_cadence_rpm: number | null;
avg_power_w: number | null;
mmp: MmpCurve | null;
vam_curve?: MmpCurve | null;
climbing_vam_mh?: number | null;
source: string | null;
privacy: Privacy;
detail_url: string | null;
@@ -130,7 +123,6 @@ export interface ActivityDetail extends Omit<ActivitySummary, 'detail_url' | 'tr
/** URL to fetch the timeseries — present for server-extracted activities. */
timeseries_url?: string | null;
mmp: MmpCurve | null;
climbing_vam_mh?: number | null;
strava_id: string | null;
duplicate_of: string | null;
source_file?: string | null;