Commit Graph

10 Commits

Author SHA1 Message Date
evan ddcdb52bb2 Revert "fix(layout): grow specs without contiguous reallocations"
This reverts commit eea6366ea2.
2026-08-08 13:30:17 -04:00
evan eea6366ea2 fix(layout): grow specs without contiguous reallocations 2026-08-08 13:27:52 -04:00
evan 94ff3c5ca5 fix(layout): grow styles without contiguous reallocations 2026-08-08 13:25:42 -04:00
evan 4568f56f92 Revert "fix(layout): reserve growable tree vectors up front to avoid bad_alloc"
This reverts commit 873e003c45.
2026-08-08 12:58:25 -04:00
evan 873e003c45 fix(layout): reserve growable tree vectors up front to avoid bad_alloc
Reserve nodes/specs/styles/labelAt/labels at reset() while the heap still
has a large contiguous block. A doubling realloc mid-build needs old+new
buffers live at once and throws bad_alloc on the heap the build itself has
fragmented; the styles vector was the one tripping the firmware's global
new-handler into a reset with ~10 populated cards.

UNVALIDATED: reproduced and fixed in the emulator only. Hardware has ~30KB
less free (NimBLE DMA buffers), so the reserves at reset() may still be
marginal there -- not yet tested on the board.
2026-08-08 08:49:54 -04:00
evan 2046938d32 feat(ui): tree-owned scroll gestures and geometry hit-testing
Drag, flick and tap-vs-scroll now live on the scrollX/scrollY flag in
ui.lua, so any scroll box pans with no app code. tree.hit returns the
deepest node by geometry and dispatch bubbles to the nearest handler,
dropping the now-unused CAPTURE flag. keyboard moves in as ui.keyboard,
and embed compiles nested lib dirs to dotted module names.
2026-08-06 17:07:56 -04:00
evan e5ed980294 feat: scrolling 2026-08-06 11:16:15 -04:00
evan bf286eefa6 feat(ble): expose isInitialized and reclaim memory before radios start
The controller and the WiFi driver each need a large aggregate allocation,
which a live app sitting on garbage can deny - that is why a failed connect
often succeeded on retry. Both bindings now collect before initializing, and
the tree reserves its node and spec capacity so a build does not reallocate
into a tight heap.
2026-08-04 13:10:18 -04:00
evan 4533c7f61f chore: lsp + format 2026-08-04 10:21:18 -04:00
evan 95fa512047 initial commit 2026-08-03 17:46:14 -04:00