Symptom (QA 3.1, Home page Savings-over-time chart)
The x-axis snapped to the single purchase date regardless of the selected timeframe (7d / 30d / 90d / All). The purchase point was pinned to the left edge of the axis, and empty windows showed a "No purchase history" stub instead of a labelled empty axis.
QA suggestion: "have the x-axis show the selected date range and leave the chart empty (no dots where there are no purchases); the x-axis should start at the first day of the selected period."
Resolution
Fixed in PR #746 (merged 2026-05-27):
- Chart.js x-axis switched to a numeric
type: 'linear' timestamp axis with explicit min/max spanning [now - days, now] (days = 7 / 30 / 90, or earliest-purchase for "All").
- Data points changed to
{x: timestamp_ms, y: cumulative_savings} so each purchase sits at its real date within the window.
- Empty windows render labelled axes instead of the "No purchase history" stub (that stub is now reserved for fetch errors).
Note
Filed retroactively for traceability -- the fix was implemented directly from the QA spreadsheet row (QA 3.1) before a GitHub issue existed. Closing as completed.
Source: QA exploratory testing 2026-05-27.
Symptom (QA 3.1, Home page Savings-over-time chart)
The x-axis snapped to the single purchase date regardless of the selected timeframe (7d / 30d / 90d / All). The purchase point was pinned to the left edge of the axis, and empty windows showed a "No purchase history" stub instead of a labelled empty axis.
QA suggestion: "have the x-axis show the selected date range and leave the chart empty (no dots where there are no purchases); the x-axis should start at the first day of the selected period."
Resolution
Fixed in PR #746 (merged 2026-05-27):
type: 'linear'timestamp axis with explicitmin/maxspanning[now - days, now](days = 7 / 30 / 90, or earliest-purchase for "All").{x: timestamp_ms, y: cumulative_savings}so each purchase sits at its real date within the window.Note
Filed retroactively for traceability -- the fix was implemented directly from the QA spreadsheet row (QA 3.1) before a GitHub issue existed. Closing as completed.
Source: QA exploratory testing 2026-05-27.