fix(attiny85): restore TwinkleFox fit and gate its size
Regression
TwinkleFox no longer links for attiny85: .text overflows the 8 KiB region by 468 B.
The last green ATtiny85 workflow ran at e7a5e533e2f5500448967456423b33470f4c478d (run 35413935292, 2026-09-19 01:51Z). The first red run was the next merge, 0a6bbdbc6b9b380a95cafdecf6dfe41de303326a / #4450 (run 35417226373, 02:58Z). That PR added BINARY_DITHER’s power-estimation reserve through power_mgt and CFastLED, after which every subsequent ATtiny85 run fails on TwinkleFox.
Required outcome
Restore an ATtiny85 build of examples/TwinkleFox/TwinkleFox.ino that fits the 8 KiB flash region without weakening the electrical safety guarantee that #4450 introduced. Measure the binary contributors and compile the larger reserve path out on tiny targets, or otherwise make the implementation size-appropriate.
Required prevention gate
Add a dedicated required PR check that compiles TwinkleFox for ATtiny85 and fails on flash overflow. It must run in PR CI, not only after merge, so a size regression cannot land before the board workflow detects it. Include the relevant power/dither and tiny-platform source paths in its trigger coverage.
Acceptance criteria
TwinkleFoxcompiles and links forattiny85with fbuild.- The resulting image fits the board’s 8 KiB flash budget.
- The correction preserves #4450’s reserve behavior on supported memory tiers.
- A dedicated ATtiny85 TwinkleFox PR check prevents recurrence.
Evidence: current master and local fbuild 2.5.25 reproduce the same 468 B overflow; the regression predates the fbuild 2.5.25 cascade.
Source: FastLED/FastLED