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
Found during the manual onboarding run on merged main cc3882c3a (epic #121 completion).
Repro (self-host, SQLite): upload 10 forged rides → all import done (#115 ✅), activities present in GET /v1/activities (has_power/has_cadence/has_gps all true). Set FTP via PUT /v1/athlete/signature {ftp_w:250} + current_sport=cycling. Then ask the coach.
The coach states a false qualitative claim: asked "how many rides recently and how is my form?", it answered "You haven't done any rides recently — your fitness, fatigue, and freshness are all at zero" while the record holds 10 rides. grounding.grounded=true because the cited NUMBERS (fitness/fatigue/freshness=0.0) are real — but the prose "you haven't done any rides" is NOT grounded in the record (which has rides) and contradicts it. This is exactly the false-confidence the honesty promise targets: the grounder verifies numeric citations but not the qualitative causal claim derived from PMC=0. A second prompt ("exactly how many rides?") correctly admitted it has no count tool — but still implied "no accumulated work the past couple of weeks."
Expected: the coach must not assert "no rides" from PMC=0; it should distinguish "zero computed training load (e.g. FTP not set → no TSS)" from "no activities," consistent with #116's intent (surface the FTP prerequisite rather than present a confusing/ misleading zero). Likely a VOICE/GROUND guard: a PMC=0 with activities present must not be phrased as absence of activity.
Severity: medium (honesty-premise regression at the coach layer).
Found during the manual onboarding run on merged main
cc3882c3a(epic #121 completion).Repro (self-host, SQLite): upload 10 forged rides → all import
done(#115 ✅), activities present inGET /v1/activities(has_power/has_cadence/has_gpsall true). Set FTP viaPUT /v1/athlete/signature {ftp_w:250}+current_sport=cycling. Then ask the coach.Two findings:
tss/intensity_factor/normalized_power_wstaynulland PMCfitness/fatigue/formstay0.0even with FTP set andcurrent_sport=cycling, both when FTP is set after AND before ingest (forge_ride power present,has_power=true). The New self-hoster sees an all-zero fitness chart: FTP prerequisite is never surfaced #116 tester reported TSS≈21 populating after FTP — here it does not in the self-host flow. Root unclear (recompute trigger? power-stream not surfaced to NP? test vs runtime difference) — needs triage. NOT one of the merged Import job status is stuck at "queued" forever —done/failednever reached #115–120 fixes; surfaced by the end-to-end run.grounding.grounded=truebecause the cited NUMBERS (fitness/fatigue/freshness=0.0) are real — but the prose "you haven't done any rides" is NOT grounded in the record (which has rides) and contradicts it. This is exactly the false-confidence the honesty promise targets: the grounder verifies numeric citations but not the qualitative causal claim derived from PMC=0. A second prompt ("exactly how many rides?") correctly admitted it has no count tool — but still implied "no accumulated work the past couple of weeks."Expected: the coach must not assert "no rides" from PMC=0; it should distinguish "zero computed training load (e.g. FTP not set → no TSS)" from "no activities," consistent with #116's intent (surface the FTP prerequisite rather than present a confusing/ misleading zero). Likely a VOICE/GROUND guard: a PMC=0 with activities present must not be phrased as absence of activity.
Severity: medium (honesty-premise regression at the coach layer).