Files
trail-mate/docs/audits/PHASE10_FINAL_PRIMARY_PATH_REPORT.md
vicliuandGitHub bf7068b02b 0.1.26-alpha release
* refactor: render chat rows from presentation state

* Fix Meshtastic channel sync and add MeshCore CN preset

* Add granular chat notification settings

* Add SD settings backup and restore

* Prepare 0.1.26-alpha release

---------

Co-authored-by: vicliu624 <vicliu@outlook.com>
2026-05-19 16:04:42 +08:00

1.9 KiB

Phase 10 Final Primary Path Report

Primary Path Status

Runtime Primary path Source enum Status
LinuxSim LinuxSimRuntimeEntry -> LinuxSimRuntimeEntryAdoptionProbe -> AsciiRuntimeEntryAdoption LinuxSimRuntimeSource::ScreenGraphAdoption primary screen graph adoption
GTK LinuxUConsoleGtkPageRegistryAdoption -> GtkRuntimeEntryAdoption LinuxUConsoleGtkPageRegistrySource::ScreenGraphAdoption primary page registry descriptors
LVGL LvglPrimaryScreenGraphRuntime -> LvglRuntimeEntryAdoption LvglScreenGraphRuntimeSource::ScreenGraphAdoption primary descriptor runtime

Fallback Status

Runtime Fallback source Status
LinuxSim LinuxSimRuntimeSource::HardcodedFallback fallback-only
GTK LinuxUConsoleGtkPageRegistrySource::HardcodedFallback fallback-only
LVGL LvglScreenGraphRuntimeSource::HardcodedFallback fallback-only descriptor fallback

Fallback remains testable through fallbackUsed() and source enum checks.

Not Done

Phase 10 intentionally does not complete these migrations:

  • real GTK widget rewrite
  • real LVGL widget/menu rewrite
  • fallback deletion
  • full navigation stack replacement
  • complete screen/page migration

Guardrail

Runtime primary paths must not call findUxPackById, UxPackRegistry, or buildMenuForUxPack. UX selection and PresentationBundle construction stay in app-shell/probe/composition code. Runtime primary paths consume the descriptor graph only.

LVGL primary descriptor runtime must not include lvgl.h, create lv_obj_t, or branch on BOARD_.

Phase 11 Recommendation

Phase 11 should be Real Renderer Descriptor Consumption. The first target should stay on LinuxSim / ASCII because it proves renderer behavior with the lowest device and widget-lifecycle risk. GTK and LVGL should follow only after the ASCII renderer consumes descriptors as its concrete route source.