#4478·FastLED

fix(attiny85): restore TwinkleFox fit and gate its size

Author: zackeesCreated Sep 21, 2026Updated Sep 21, 2026

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

  • TwinkleFox compiles and links for attiny85 with 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.