You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
E4-6 (band 4): move the consumers and screens last #265
The functions that read across every domain (updateSettingsData touches 29 of the 97 variables, handleWebDiags 23, updateGeocacheData 20, loop 19 variables and 21 calls, gcApplyFilters 15) and the screen builders (Appendix E). They move last because they have nothing to own; they consume what bands 2 and 3 published.
Residue left in src/src.ino is setup, loop, button handling and sleep, roughly the 567 lines the original plan estimated, now to be re-measured.
Acceptance
src/src.ino contains no function touching more than a handful of external-linkage variables; measured, not estimated
python scripts/symbol-inventory.py on the remaining src.ino.cpp.o shows the residue only
Full hardware verification, every screen and every peripheral, before merge
Band 4 is done and proven, and this issue's merge gate is now yours: PR #280 on fc/212-e4-screens (four commits, compile-gate green, both toolchains build) is open and deliberately not merged, because the acceptance above requires full hardware verification, every screen and every peripheral, and nothing in E4 was flashed.
The acceptance, measured on the branch:
src/src.ino: 750 lines — setup, loop, initLVGL, initSD, scanI2C, handleButtons and its two helpers; 6 file-scope variables. The estimate in this issue was "roughly 567 lines"; 750 is the number.
python scripts/symbol-inventory.py on src.ino.cpp.o: 8 functions, 6 variables — the residue only.
python scripts/reference-graph.py: 7 of 8 functions touch no shared state of the file, the eighth only its own three; cut set 0, largest cluster 1.
Two composition calls for you to review, both in the PR body and §15: initLVGL stays in src.ino as the composition root, and the five screens plus navigation moved in one commit because they reference each other through headers. The Epic's integration test (CLAUDE-BASE) still needs creating.
Band 4 hardware verification: see the comment on PR #280 and PR #288. Every screen unit ran on um_feather on 2026-09-08 with TFT, touch, OLED, SD, FRAM, RTC, GPS and all sensors up; no band-4 regression found.
Closed on the owner's word 2026-09-08: band 4 merged as PR #280 (25c8bb8) after every screen unit ran on the UM FeatherS3D with TFT, touch, OLED, SD, FRAM, RTC, GPS and all sensors up (evidence on PR #280 and PR #288).
Activity
Strycher commentedon Sep 8, 2026
Band 4 is done and proven, and this issue's merge gate is now yours: PR #280 on
fc/212-e4-screens(four commits,compile-gategreen, both toolchains build) is open and deliberately not merged, because the acceptance above requires full hardware verification, every screen and every peripheral, and nothing in E4 was flashed.The acceptance, measured on the branch:
src/src.ino: 750 lines —setup,loop,initLVGL,initSD,scanI2C,handleButtonsand its two helpers; 6 file-scope variables. The estimate in this issue was "roughly 567 lines"; 750 is the number.python scripts/symbol-inventory.pyonsrc.ino.cpp.o: 8 functions, 6 variables — the residue only.python scripts/reference-graph.py: 7 of 8 functions touch no shared state of the file, the eighth only its own three; cut set 0, largest cluster 1.docs/e4-proofs/verify-265{a,b,c}-*.txt(on the docs PR); record:docs/god-object-inventory.md§15 (on refactor(#265): E4 band 4 -- the screens leave src.ino; hardware verification before merge #280).Two composition calls for you to review, both in the PR body and §15:
initLVGLstays insrc.inoas the composition root, and the five screens plus navigation moved in one commit because they reference each other through headers. The Epic's integration test (CLAUDE-BASE) still needs creating.docs(#212): the E4 session record, the proofs, and the facts CLAUDE.m…
Strycher commentedon Sep 8, 2026
Band 4 hardware verification: see the comment on PR #280 and PR #288. Every screen unit ran on um_feather on 2026-09-08 with TFT, touch, OLED, SD, FRAM, RTC, GPS and all sensors up; no band-4 regression found.
refactor(#265): E4 band 4, unit 1 -- lvgl_port leaves src.ino
refactor(#265): E4 band 4, unit 2 -- oled_screens leaves src.ino
refactor(#265): E4 band 4, unit 3 -- the five LVGL screens and naviga…
refactor(#265): E4 band 4, unit 4 -- the residue, the LVGL log guard,…
Strycher commentedon Sep 8, 2026
Closed on the owner's word 2026-09-08: band 4 merged as PR #280 (25c8bb8) after every screen unit ran on the UM FeatherS3D with TFT, touch, OLED, SD, FRAM, RTC, GPS and all sensors up (evidence on PR #280 and PR #288).