refactor: remove each_frame; push changes instead of polling (#137)

* wip: push-based host state and effects instead of each_frame

* wip: convert more editors off each_frame; timer test and guides

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011UBdQ9No6fD84PRhpwsaJ8

* wip: infinite canvas without each_frame

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011UBdQ9No6fD84PRhpwsaJ8

* wip: map without each_frame

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011UBdQ9No6fD84PRhpwsaJ8

* wip: paint review and pixel ray tracer without each_frame

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011UBdQ9No6fD84PRhpwsaJ8

* style: apply verify autofixes

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011UBdQ9No6fD84PRhpwsaJ8

---------

Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: be3-merge-queue[bot] <332166134+be3-merge-queue[bot]@users.noreply.github.com>
5021dcea2epfg committed on 9/25/2026, 4:59:18 PM· committed by GitHubparent37082b2
64 files changedLine totals unavailable