## Summary
Added RAM delta output to firmware_size_history.py output, e.g.:
```
% scripts/firmware_size_history.py --commits adcd796 8e18472
[info] Will restore to 'sd-card-fonts' when finished.
[info] Stashing uncommitted changes...
[info] Building 2 commits...
[1/2] adcd7961c9 feat: self-heal from transient WiFi loss, add dBm indicator during WebServerActivity (#1780)
Building (env: default)...
Flash: 5,751,209, RAM: 97,996 bytes
[2/2] 8e184724d1 Merge branch 'master' into sd-card-fonts
Building (env: default)...
Flash: 5,762,395, RAM: 97,988 bytes
[info] Restoring 'sd-card-fonts'...
[info] Restoring stashed changes...
Commit Flash Delta RAM Delta Title
────────── ─────────── ─────── ─────────── ─────── ────────────────────────────────────────
adcd7961c9 5,751,209 97,996 feat: self-heal from transient WiFi loss, add dBm indicator during WebServerActivity (#1780)
8e184724d1 5,762,395 +11,186 97,988 -8 Merge branch 'master' into sd-card-fonts
```
---
### AI Usage
While CrossPoint doesn't have restrictions on AI tools in contributing,
please be transparent about their usage as it
helps set the right context for reviewers.
Did you use AI tools to help write this code? _**YES**_
## Summary
**What is the goal of this PR?**
- Adds `scripts/firmware_size_history.py`, a developer tool that builds
firmware at selected git commits and reports flash usage with deltas
between them.
- Supports two input modes: `--range START END` to walk every commit in
a range, or `--commits REF [REF ...]` to compare specific refs (which
can span branches).
- Defaults to a human-readable aligned table; pass `--csv` for
machine-readable output to stdout or `--csv FILE` to write to a file.
---
### AI Usage
While CrossPoint doesn't have restrictions on AI tools in contributing,
please be transparent about their usage as it
helps set the right context for reviewers.
Did you use AI tools to help write this code? _**YES, fully written by
AI**_