v0.1.11
Bug fixes
Two related bugs that only surface when you have some pages disabled
in Settings → Pages.
Bug A: footer "X/Y" counter was wrong with pages hidden
The page indicator at the bottom of the screen used the raw 8-slot
total as the denominator and the slot index as the numerator. So a
user with 5 pages enabled would see e.g. "6/8" instead of "3/5".
Fix: two new helpers in firmware/src/main.cpp —
enabled_page_count() and enabled_ordinal_for_slot(slot) — count
and locate the current slot among enabled pages. The footer now reads
correctly regardless of which pages you've disabled.
Bug B: title and content disagreed during/after page transitions
When you reordered pages or disabled some of them, the transition
animation's final frame indexed kPages[s_to_slot] treating a slot
index as a page id. With a non-identity page order, the wrong page's
title and renderer ran during the transition.
Reported symptom: title says "Calendar" but the content shows the
System page's "TOP CPU" rows + a leftover Tips "SUGGESTIONS" header —
three pages worth of stuff overlapping on one screen.
Fix: removed the inline final-frame draw in both wipe and
home-zoom transitions. The transition now just clears the content
band and hands off to the main loop's draw_all(), which already
does the correct slot→page-id resolution via page_id_at_slot() and
uses the fixed footer helpers. Eliminates the entire class of
"draw differently in transition vs. steady-state" bug.
Upgrading
The fixes live in firmware. Update via Settings → Updates → "Update
firmware". Your existing pages config, auto-advance preference,
theme, thresholds — all preserved.
After flashing, disable a few pages from Settings → Pages and watch
the footer counter update correctly + page transitions land on the
right page.
Other notes
No protocol changes, no Electron UI changes, no agent changes. Pet
install, auto-advance, Anthropic OAuth — everything from v0.1.10
continues to work identically.
Diagnosed jointly with the codex agent. All 3 firmware envs compile
clean. 165/165 agent tests pass.