fix(spend): preserve calendar gaps in activity heatmaps (#241)

* fix(spend): preserve calendar gaps in activity heatmaps

Keep unavailable metric days as empty calendar slots so the heatmap retains weekday alignment and its calendar span. Preserve measured zero and legacy labels, with bounded UTC date arithmetic.

Documentation: update usage, cost-history rules, and Unreleased. TODO is unchanged because this fixes existing frontend presentation without a new CLI contract.

* fix(spend): retain unavailable heatmap boundary days

Use the unfiltered normalized history dates to preserve first and last calendar slots when the selected metric is absent. Share the expanded calendar between heatmap visibility, column count, and cells.

Documentation: clarify boundary-day behavior in usage and cost history. TODO remains unaffected. Reproduced all four review cases before the fix; 124 presentation QtTests pass.
4ed508f5c1Simone committed on 9/12/2026, 4:21:53 PM· committed by GitHubparent9acf5eb
7 files changedLine totals unavailable