diff --git a/apps/linux_sim_shell/CMakeLists.txt b/apps/linux_sim_shell/CMakeLists.txt index 38b4c20f..856f3f74 100644 --- a/apps/linux_sim_shell/CMakeLists.txt +++ b/apps/linux_sim_shell/CMakeLists.txt @@ -69,13 +69,6 @@ if(BUILD_TESTING) add_test(NAME trailmate_linux_sim_runtime_entry_smoke COMMAND trailmate_linux_sim_runtime_entry_smoke) - add_executable(trailmate_linux_sim_runtime_entry_fallback_smoke - tests/linux_sim_runtime_entry_fallback_smoke.cpp) - target_link_libraries(trailmate_linux_sim_runtime_entry_fallback_smoke - PRIVATE trailmate_linux_sim_shell) - add_test(NAME trailmate_linux_sim_runtime_entry_fallback_smoke - COMMAND trailmate_linux_sim_runtime_entry_fallback_smoke) - add_executable(trailmate_linux_sim_runtime_renderer_smoke tests/linux_sim_runtime_renderer_smoke.cpp) target_link_libraries(trailmate_linux_sim_runtime_renderer_smoke diff --git a/apps/linux_sim_shell/src/linux_sim_runtime_entry.cpp b/apps/linux_sim_shell/src/linux_sim_runtime_entry.cpp index 659afd37..79b88ab8 100644 --- a/apps/linux_sim_shell/src/linux_sim_runtime_entry.cpp +++ b/apps/linux_sim_shell/src/linux_sim_runtime_entry.cpp @@ -9,19 +9,10 @@ bool LinuxSimRuntimeEntry::start(const LinuxSimAppShell& shell) if (ready_) { runtime_source_ = LinuxSimRuntimeSource::ScreenGraphAdoption; - fallback_ = false; return true; } - runtime_source_ = LinuxSimRuntimeSource::HardcodedFallback; - fallback_ = true; - return startFallback(shell); -} - -bool LinuxSimRuntimeEntry::startFallback(const LinuxSimAppShell&) -{ - // Phase 10 fallback containment: old simulator routing remains available - // until the renderer fully consumes AsciiRuntimeEntryAdoption descriptors. + runtime_source_ = LinuxSimRuntimeSource::Unavailable; return false; } @@ -33,12 +24,7 @@ bool LinuxSimRuntimeEntry::ready() const bool LinuxSimRuntimeEntry::usingPrimaryScreenGraph() const noexcept { return runtime_source_ == LinuxSimRuntimeSource::ScreenGraphAdoption && - ready_ && !fallback_; -} - -bool LinuxSimRuntimeEntry::fallbackUsed() const -{ - return fallback_; + ready_; } LinuxSimRuntimeSource LinuxSimRuntimeEntry::runtimeSource() const noexcept diff --git a/apps/linux_sim_shell/src/linux_sim_runtime_entry.h b/apps/linux_sim_shell/src/linux_sim_runtime_entry.h index 437e041f..b8efaaea 100644 --- a/apps/linux_sim_shell/src/linux_sim_runtime_entry.h +++ b/apps/linux_sim_shell/src/linux_sim_runtime_entry.h @@ -11,8 +11,8 @@ namespace trailmate::apps::linux_sim_shell enum class LinuxSimRuntimeSource { + Unavailable, ScreenGraphAdoption, - HardcodedFallback, }; class LinuxSimRuntimeEntry @@ -22,22 +22,16 @@ class LinuxSimRuntimeEntry bool ready() const; bool usingPrimaryScreenGraph() const noexcept; - bool fallbackUsed() const; LinuxSimRuntimeSource runtimeSource() const noexcept; std::size_t menuCount() const; std::size_t screenCount() const; const trailmate::linux_sim::AsciiRuntimeEntryAdoption& adoption() const; - private: - bool startFallback(const LinuxSimAppShell& shell); - private: LinuxSimRuntimeEntryAdoptionProbe adoption_probe_{}; - LinuxSimRuntimeSource runtime_source_ = - LinuxSimRuntimeSource::HardcodedFallback; + LinuxSimRuntimeSource runtime_source_ = LinuxSimRuntimeSource::Unavailable; bool ready_ = false; - bool fallback_ = true; }; } // namespace trailmate::apps::linux_sim_shell diff --git a/apps/linux_sim_shell/src/linux_sim_runtime_entry_adoption_probe.cpp b/apps/linux_sim_shell/src/linux_sim_runtime_entry_adoption_probe.cpp index fe18dcd1..c4a96ae9 100644 --- a/apps/linux_sim_shell/src/linux_sim_runtime_entry_adoption_probe.cpp +++ b/apps/linux_sim_shell/src/linux_sim_runtime_entry_adoption_probe.cpp @@ -9,7 +9,6 @@ namespace trailmate::apps::linux_sim_shell bool LinuxSimRuntimeEntryAdoptionProbe::load(const LinuxSimAppShell& shell) { ready_ = false; - fallback_ = true; menu_.clear(); screen_bindings_.clear(); presentation_ = {}; @@ -26,7 +25,6 @@ bool LinuxSimRuntimeEntryAdoptionProbe::load(const LinuxSimAppShell& shell) presentation_.screen_bindings = &screen_bindings_; ready_ = adoption_.load(presentation_); - fallback_ = !ready_; return ready_; } @@ -35,11 +33,6 @@ bool LinuxSimRuntimeEntryAdoptionProbe::ready() const return ready_; } -bool LinuxSimRuntimeEntryAdoptionProbe::fallbackUsed() const -{ - return fallback_; -} - std::size_t LinuxSimRuntimeEntryAdoptionProbe::menuCount() const { return ready_ ? adoption_.menuCount() : 0; diff --git a/apps/linux_sim_shell/src/linux_sim_runtime_entry_adoption_probe.h b/apps/linux_sim_shell/src/linux_sim_runtime_entry_adoption_probe.h index 1ce62a54..ce577545 100644 --- a/apps/linux_sim_shell/src/linux_sim_runtime_entry_adoption_probe.h +++ b/apps/linux_sim_shell/src/linux_sim_runtime_entry_adoption_probe.h @@ -17,7 +17,6 @@ class LinuxSimRuntimeEntryAdoptionProbe bool load(const LinuxSimAppShell& shell); bool ready() const; - bool fallbackUsed() const; std::size_t menuCount() const; std::size_t screenCount() const; @@ -29,7 +28,6 @@ class LinuxSimRuntimeEntryAdoptionProbe product_composition::PresentationBundle presentation_{}; trailmate::linux_sim::AsciiRuntimeEntryAdoption adoption_{}; bool ready_ = false; - bool fallback_ = true; }; } // namespace trailmate::apps::linux_sim_shell diff --git a/apps/linux_sim_shell/src/linux_sim_runtime_renderer.cpp b/apps/linux_sim_shell/src/linux_sim_runtime_renderer.cpp index 474c3336..5e04450c 100644 --- a/apps/linux_sim_shell/src/linux_sim_runtime_renderer.cpp +++ b/apps/linux_sim_shell/src/linux_sim_runtime_renderer.cpp @@ -7,31 +7,14 @@ bool LinuxSimRuntimeRenderer::render(const LinuxSimRuntimeEntry& entry) { ready_ = false; primary_ = false; - fallback_ = true; if (entry.usingPrimaryScreenGraph()) { ready_ = descriptor_renderer_.render(entry.adoption()); primary_ = ready_; - fallback_ = !ready_; return ready_; } - if (entry.fallbackUsed()) - { - return renderFallback(entry); - } - - return false; -} - -bool LinuxSimRuntimeRenderer::renderFallback(const LinuxSimRuntimeEntry&) -{ - // Phase 11 fallback: old hardcoded ASCII rendering remains available only - // when the runtime entry did not provide primary descriptors. - ready_ = false; - primary_ = false; - fallback_ = true; return false; } @@ -50,16 +33,6 @@ bool LinuxSimRuntimeRenderer::usedPrimaryScreenGraph() const noexcept return primary_; } -bool LinuxSimRuntimeRenderer::fallbackUsed() const noexcept -{ - return fallback_; -} - -bool LinuxSimRuntimeRenderer::usedFallback() const noexcept -{ - return fallback_; -} - std::size_t LinuxSimRuntimeRenderer::lineCount() const noexcept { return ready_ ? descriptor_renderer_.lineCount() : 0; diff --git a/apps/linux_sim_shell/src/linux_sim_runtime_renderer.h b/apps/linux_sim_shell/src/linux_sim_runtime_renderer.h index ed87168f..21916628 100644 --- a/apps/linux_sim_shell/src/linux_sim_runtime_renderer.h +++ b/apps/linux_sim_shell/src/linux_sim_runtime_renderer.h @@ -16,20 +16,14 @@ class LinuxSimRuntimeRenderer bool ready() const noexcept; bool usingPrimaryScreenGraph() const noexcept; bool usedPrimaryScreenGraph() const noexcept; - bool fallbackUsed() const noexcept; - bool usedFallback() const noexcept; std::size_t lineCount() const noexcept; const trailmate::linux_sim::AsciiRenderLine* lines() const noexcept; const char* line(std::size_t index) const noexcept; - private: - bool renderFallback(const LinuxSimRuntimeEntry& entry); - private: trailmate::linux_sim::AsciiDescriptorRenderer descriptor_renderer_{}; bool ready_ = false; bool primary_ = false; - bool fallback_ = true; }; } // namespace trailmate::apps::linux_sim_shell diff --git a/apps/linux_sim_shell/tests/linux_sim_runtime_entry_adoption_probe_smoke.cpp b/apps/linux_sim_shell/tests/linux_sim_runtime_entry_adoption_probe_smoke.cpp index cb11b7df..ab359a65 100644 --- a/apps/linux_sim_shell/tests/linux_sim_runtime_entry_adoption_probe_smoke.cpp +++ b/apps/linux_sim_shell/tests/linux_sim_runtime_entry_adoption_probe_smoke.cpp @@ -10,7 +10,6 @@ int main() assert(probe.load(shell)); assert(probe.ready()); - assert(!probe.fallbackUsed()); assert(probe.menuCount() > 0); assert(probe.screenCount() > 0); assert(probe.adoption().presenter().menuLines()[0].route.valid); diff --git a/apps/linux_sim_shell/tests/linux_sim_runtime_entry_fallback_smoke.cpp b/apps/linux_sim_shell/tests/linux_sim_runtime_entry_fallback_smoke.cpp deleted file mode 100644 index 688c1e7f..00000000 --- a/apps/linux_sim_shell/tests/linux_sim_runtime_entry_fallback_smoke.cpp +++ /dev/null @@ -1,23 +0,0 @@ -#include "linux_sim_app_shell.h" -#include "linux_sim_runtime_entry.h" - -#include - -int main() -{ - trailmate::apps::linux_sim_shell::LinuxSimAppShellConfig invalid_config; - invalid_config.ux_pack_id = "missing_phase10_pack"; - trailmate::apps::linux_sim_shell::LinuxSimAppShell shell(invalid_config); - trailmate::apps::linux_sim_shell::LinuxSimRuntimeEntry runtime_entry; - - assert(!runtime_entry.start(shell)); - assert(!runtime_entry.ready()); - assert(!runtime_entry.usingPrimaryScreenGraph()); - assert(runtime_entry.runtimeSource() == - trailmate::apps::linux_sim_shell::LinuxSimRuntimeSource:: - HardcodedFallback); - assert(runtime_entry.fallbackUsed()); - assert(runtime_entry.menuCount() == 0); - assert(runtime_entry.screenCount() == 0); - return 0; -} diff --git a/apps/linux_sim_shell/tests/linux_sim_runtime_entry_smoke.cpp b/apps/linux_sim_shell/tests/linux_sim_runtime_entry_smoke.cpp index 1af42a1f..d22cec7a 100644 --- a/apps/linux_sim_shell/tests/linux_sim_runtime_entry_smoke.cpp +++ b/apps/linux_sim_shell/tests/linux_sim_runtime_entry_smoke.cpp @@ -14,7 +14,6 @@ int main() assert(runtime_entry.runtimeSource() == trailmate::apps::linux_sim_shell::LinuxSimRuntimeSource:: ScreenGraphAdoption); - assert(!runtime_entry.fallbackUsed()); assert(runtime_entry.menuCount() > 0); assert(runtime_entry.screenCount() > 0); assert(runtime_entry.adoption().presenter().menuLines()[0].route.valid); diff --git a/apps/linux_sim_shell/tests/linux_sim_runtime_renderer_smoke.cpp b/apps/linux_sim_shell/tests/linux_sim_runtime_renderer_smoke.cpp index 8cadb0c6..53e7973a 100644 --- a/apps/linux_sim_shell/tests/linux_sim_runtime_renderer_smoke.cpp +++ b/apps/linux_sim_shell/tests/linux_sim_runtime_renderer_smoke.cpp @@ -16,8 +16,6 @@ int main() assert(renderer.ready()); assert(renderer.usingPrimaryScreenGraph()); assert(renderer.usedPrimaryScreenGraph()); - assert(!renderer.fallbackUsed()); - assert(!renderer.usedFallback()); assert(renderer.lineCount() > 0); assert(renderer.lines() != nullptr); assert(renderer.line(0) != nullptr); @@ -26,11 +24,13 @@ int main() invalid_config.ux_pack_id = "missing_phase11_pack"; trailmate::apps::linux_sim_shell::LinuxSimAppShell invalid_shell( invalid_config); - trailmate::apps::linux_sim_shell::LinuxSimRuntimeEntry fallback_entry; - assert(!fallback_entry.start(invalid_shell)); - assert(fallback_entry.fallbackUsed()); - assert(!renderer.render(fallback_entry)); - assert(renderer.fallbackUsed()); - assert(renderer.usedFallback()); + trailmate::apps::linux_sim_shell::LinuxSimRuntimeEntry invalid_entry; + assert(!invalid_entry.start(invalid_shell)); + assert(invalid_entry.runtimeSource() == + trailmate::apps::linux_sim_shell::LinuxSimRuntimeSource:: + Unavailable); + assert(!renderer.render(invalid_entry)); + assert(!renderer.ready()); + assert(!renderer.usingPrimaryScreenGraph()); return 0; } diff --git a/apps/linux_uconsole_gtk/CMakeLists.txt b/apps/linux_uconsole_gtk/CMakeLists.txt index 5e092bfb..7969b2e8 100644 --- a/apps/linux_uconsole_gtk/CMakeLists.txt +++ b/apps/linux_uconsole_gtk/CMakeLists.txt @@ -224,13 +224,6 @@ if(BUILD_TESTING) add_test(NAME trailmate_linux_uconsole_gtk_page_registry_adoption_smoke COMMAND trailmate_linux_uconsole_gtk_page_registry_adoption_smoke) - add_executable(trailmate_linux_uconsole_gtk_page_registry_fallback_smoke - tests/linux_uconsole_gtk_page_registry_fallback_smoke.cpp) - target_link_libraries(trailmate_linux_uconsole_gtk_page_registry_fallback_smoke - PRIVATE trailmate_linux_uconsole_gtk_shell) - add_test(NAME trailmate_linux_uconsole_gtk_page_registry_fallback_smoke - COMMAND trailmate_linux_uconsole_gtk_page_registry_fallback_smoke) - add_executable(trailmate_linux_uconsole_gtk_page_registry_renderer_smoke tests/linux_uconsole_gtk_page_registry_renderer_smoke.cpp) target_link_libraries(trailmate_linux_uconsole_gtk_page_registry_renderer_smoke diff --git a/apps/linux_uconsole_gtk/src/linux_uconsole_gtk_page_registry_adoption.cpp b/apps/linux_uconsole_gtk/src/linux_uconsole_gtk_page_registry_adoption.cpp index bceb6536..c08ac182 100644 --- a/apps/linux_uconsole_gtk/src/linux_uconsole_gtk_page_registry_adoption.cpp +++ b/apps/linux_uconsole_gtk/src/linux_uconsole_gtk_page_registry_adoption.cpp @@ -11,20 +11,10 @@ bool LinuxUConsoleGtkPageRegistryAdoption::load( { registry_source_ = LinuxUConsoleGtkPageRegistrySource::ScreenGraphAdoption; - fallback_ = false; return true; } - registry_source_ = LinuxUConsoleGtkPageRegistrySource::HardcodedFallback; - fallback_ = true; - return loadFallback(shell); -} - -bool LinuxUConsoleGtkPageRegistryAdoption::loadFallback( - const LinuxUConsoleGtkAppShell&) -{ - // Phase 10 fallback containment: the legacy hardcoded GTK page registry - // remains available until descriptors become the primary page source. + registry_source_ = LinuxUConsoleGtkPageRegistrySource::Unavailable; return false; } @@ -38,12 +28,7 @@ bool LinuxUConsoleGtkPageRegistryAdoption::usingPrimaryScreenGraph() { return registry_source_ == LinuxUConsoleGtkPageRegistrySource::ScreenGraphAdoption && - ready_ && !fallback_; -} - -bool LinuxUConsoleGtkPageRegistryAdoption::fallbackUsed() const -{ - return fallback_; + ready_; } LinuxUConsoleGtkPageRegistrySource diff --git a/apps/linux_uconsole_gtk/src/linux_uconsole_gtk_page_registry_adoption.h b/apps/linux_uconsole_gtk/src/linux_uconsole_gtk_page_registry_adoption.h index 801b3edf..467da5df 100644 --- a/apps/linux_uconsole_gtk/src/linux_uconsole_gtk_page_registry_adoption.h +++ b/apps/linux_uconsole_gtk/src/linux_uconsole_gtk_page_registry_adoption.h @@ -11,8 +11,8 @@ namespace trailmate::apps::linux_uconsole_gtk enum class LinuxUConsoleGtkPageRegistrySource { + Unavailable, ScreenGraphAdoption, - HardcodedFallback, }; class LinuxUConsoleGtkPageRegistryAdoption @@ -22,7 +22,6 @@ class LinuxUConsoleGtkPageRegistryAdoption bool ready() const; bool usingPrimaryScreenGraph() const noexcept; - bool fallbackUsed() const; LinuxUConsoleGtkPageRegistrySource registrySource() const noexcept; std::size_t menuCount() const; std::size_t screenCount() const; @@ -31,15 +30,11 @@ class LinuxUConsoleGtkPageRegistryAdoption const trailmate::uconsole::GtkScreenDescriptor* screenDescriptors() const; const trailmate::uconsole::gtk::GtkRuntimeEntryAdoption& adoption() const; - private: - bool loadFallback(const LinuxUConsoleGtkAppShell& shell); - private: LinuxUConsoleGtkRuntimeEntryAdoptionProbe adoption_probe_{}; LinuxUConsoleGtkPageRegistrySource registry_source_ = - LinuxUConsoleGtkPageRegistrySource::HardcodedFallback; + LinuxUConsoleGtkPageRegistrySource::Unavailable; bool ready_ = false; - bool fallback_ = true; }; } // namespace trailmate::apps::linux_uconsole_gtk diff --git a/apps/linux_uconsole_gtk/src/linux_uconsole_gtk_page_registry_renderer.cpp b/apps/linux_uconsole_gtk/src/linux_uconsole_gtk_page_registry_renderer.cpp index 609b4a9c..ec813e9f 100644 --- a/apps/linux_uconsole_gtk/src/linux_uconsole_gtk_page_registry_renderer.cpp +++ b/apps/linux_uconsole_gtk/src/linux_uconsole_gtk_page_registry_renderer.cpp @@ -8,32 +8,14 @@ bool LinuxUConsoleGtkPageRegistryRenderer::render( { ready_ = false; primary_ = false; - fallback_ = true; if (adoption.usingPrimaryScreenGraph()) { ready_ = registry_.load(adoption.adoption()); primary_ = ready_; - fallback_ = !ready_; return ready_; } - if (adoption.fallbackUsed()) - { - return renderFallback(adoption); - } - - return false; -} - -bool LinuxUConsoleGtkPageRegistryRenderer::renderFallback( - const LinuxUConsoleGtkPageRegistryAdoption&) -{ - // Phase 11 fallback: hardcoded GTK page registry remains available only - // when descriptor registry consumption is unavailable. - ready_ = false; - primary_ = false; - fallback_ = true; return false; } @@ -54,16 +36,6 @@ bool LinuxUConsoleGtkPageRegistryRenderer::usedPrimaryScreenGraph() return primary_; } -bool LinuxUConsoleGtkPageRegistryRenderer::fallbackUsed() const noexcept -{ - return fallback_; -} - -bool LinuxUConsoleGtkPageRegistryRenderer::usedFallback() const noexcept -{ - return fallback_; -} - std::size_t LinuxUConsoleGtkPageRegistryRenderer::pageCount() const noexcept { return ready_ ? registry_.pageCount() : 0; diff --git a/apps/linux_uconsole_gtk/src/linux_uconsole_gtk_page_registry_renderer.h b/apps/linux_uconsole_gtk/src/linux_uconsole_gtk_page_registry_renderer.h index a0874281..9c871740 100644 --- a/apps/linux_uconsole_gtk/src/linux_uconsole_gtk_page_registry_renderer.h +++ b/apps/linux_uconsole_gtk/src/linux_uconsole_gtk_page_registry_renderer.h @@ -16,19 +16,13 @@ class LinuxUConsoleGtkPageRegistryRenderer bool ready() const noexcept; bool usingPrimaryScreenGraph() const noexcept; bool usedPrimaryScreenGraph() const noexcept; - bool fallbackUsed() const noexcept; - bool usedFallback() const noexcept; std::size_t pageCount() const noexcept; const trailmate::uconsole::GtkDescriptorPage* pages() const noexcept; - private: - bool renderFallback(const LinuxUConsoleGtkPageRegistryAdoption& adoption); - private: trailmate::uconsole::GtkDescriptorPageRegistry registry_{}; bool ready_ = false; bool primary_ = false; - bool fallback_ = true; }; } // namespace trailmate::apps::linux_uconsole_gtk diff --git a/apps/linux_uconsole_gtk/src/linux_uconsole_gtk_runtime_entry_adoption_probe.cpp b/apps/linux_uconsole_gtk/src/linux_uconsole_gtk_runtime_entry_adoption_probe.cpp index 62a27ea2..7cc9e62c 100644 --- a/apps/linux_uconsole_gtk/src/linux_uconsole_gtk_runtime_entry_adoption_probe.cpp +++ b/apps/linux_uconsole_gtk/src/linux_uconsole_gtk_runtime_entry_adoption_probe.cpp @@ -10,7 +10,6 @@ bool LinuxUConsoleGtkRuntimeEntryAdoptionProbe::load( const LinuxUConsoleGtkAppShell& shell) { ready_ = false; - fallback_ = true; menu_.clear(); screen_bindings_.clear(); presentation_ = {}; @@ -27,7 +26,6 @@ bool LinuxUConsoleGtkRuntimeEntryAdoptionProbe::load( presentation_.screen_bindings = &screen_bindings_; ready_ = adoption_.load(presentation_); - fallback_ = !ready_; return ready_; } @@ -36,11 +34,6 @@ bool LinuxUConsoleGtkRuntimeEntryAdoptionProbe::ready() const return ready_; } -bool LinuxUConsoleGtkRuntimeEntryAdoptionProbe::fallbackUsed() const -{ - return fallback_; -} - std::size_t LinuxUConsoleGtkRuntimeEntryAdoptionProbe::menuCount() const { return ready_ ? adoption_.menuCount() : 0; diff --git a/apps/linux_uconsole_gtk/src/linux_uconsole_gtk_runtime_entry_adoption_probe.h b/apps/linux_uconsole_gtk/src/linux_uconsole_gtk_runtime_entry_adoption_probe.h index eff22576..95e2eace 100644 --- a/apps/linux_uconsole_gtk/src/linux_uconsole_gtk_runtime_entry_adoption_probe.h +++ b/apps/linux_uconsole_gtk/src/linux_uconsole_gtk_runtime_entry_adoption_probe.h @@ -17,7 +17,6 @@ class LinuxUConsoleGtkRuntimeEntryAdoptionProbe bool load(const LinuxUConsoleGtkAppShell& shell); bool ready() const; - bool fallbackUsed() const; std::size_t menuCount() const; std::size_t screenCount() const; @@ -29,7 +28,6 @@ class LinuxUConsoleGtkRuntimeEntryAdoptionProbe product_composition::PresentationBundle presentation_{}; trailmate::uconsole::gtk::GtkRuntimeEntryAdoption adoption_{}; bool ready_ = false; - bool fallback_ = true; }; } // namespace trailmate::apps::linux_uconsole_gtk diff --git a/apps/linux_uconsole_gtk/tests/linux_uconsole_gtk_page_registry_adoption_smoke.cpp b/apps/linux_uconsole_gtk/tests/linux_uconsole_gtk_page_registry_adoption_smoke.cpp index f5650943..b3fb6ca7 100644 --- a/apps/linux_uconsole_gtk/tests/linux_uconsole_gtk_page_registry_adoption_smoke.cpp +++ b/apps/linux_uconsole_gtk/tests/linux_uconsole_gtk_page_registry_adoption_smoke.cpp @@ -15,7 +15,6 @@ int main() assert(page_registry.registrySource() == trailmate::apps::linux_uconsole_gtk:: LinuxUConsoleGtkPageRegistrySource::ScreenGraphAdoption); - assert(!page_registry.fallbackUsed()); assert(page_registry.menuCount() > 0); assert(page_registry.screenCount() > 0); assert(page_registry.menuDescriptors()[0].route.valid); diff --git a/apps/linux_uconsole_gtk/tests/linux_uconsole_gtk_page_registry_fallback_smoke.cpp b/apps/linux_uconsole_gtk/tests/linux_uconsole_gtk_page_registry_fallback_smoke.cpp deleted file mode 100644 index 9a9d544c..00000000 --- a/apps/linux_uconsole_gtk/tests/linux_uconsole_gtk_page_registry_fallback_smoke.cpp +++ /dev/null @@ -1,26 +0,0 @@ -#include "linux_uconsole_gtk_app_shell.h" -#include "linux_uconsole_gtk_page_registry_adoption.h" - -#include - -int main() -{ - trailmate::apps::linux_uconsole_gtk::LinuxUConsoleGtkAppShellConfig - invalid_config; - invalid_config.ux_pack_id = "missing_phase10_pack"; - trailmate::apps::linux_uconsole_gtk::LinuxUConsoleGtkAppShell shell( - invalid_config); - trailmate::apps::linux_uconsole_gtk::LinuxUConsoleGtkPageRegistryAdoption - page_registry; - - assert(!page_registry.load(shell)); - assert(!page_registry.ready()); - assert(!page_registry.usingPrimaryScreenGraph()); - assert(page_registry.registrySource() == - trailmate::apps::linux_uconsole_gtk:: - LinuxUConsoleGtkPageRegistrySource::HardcodedFallback); - assert(page_registry.fallbackUsed()); - assert(page_registry.menuCount() == 0); - assert(page_registry.screenCount() == 0); - return 0; -} diff --git a/apps/linux_uconsole_gtk/tests/linux_uconsole_gtk_page_registry_renderer_smoke.cpp b/apps/linux_uconsole_gtk/tests/linux_uconsole_gtk_page_registry_renderer_smoke.cpp index b98d3425..3b260908 100644 --- a/apps/linux_uconsole_gtk/tests/linux_uconsole_gtk_page_registry_renderer_smoke.cpp +++ b/apps/linux_uconsole_gtk/tests/linux_uconsole_gtk_page_registry_renderer_smoke.cpp @@ -18,8 +18,6 @@ int main() assert(renderer.ready()); assert(renderer.usingPrimaryScreenGraph()); assert(renderer.usedPrimaryScreenGraph()); - assert(!renderer.fallbackUsed()); - assert(!renderer.usedFallback()); assert(renderer.pageCount() > 0); assert(renderer.pages() != nullptr); assert(renderer.pages()[0].binding_id != nullptr); @@ -30,11 +28,13 @@ int main() trailmate::apps::linux_uconsole_gtk::LinuxUConsoleGtkAppShell invalid_shell( invalid_config); trailmate::apps::linux_uconsole_gtk::LinuxUConsoleGtkPageRegistryAdoption - fallback_adoption; - assert(!fallback_adoption.load(invalid_shell)); - assert(fallback_adoption.fallbackUsed()); - assert(!renderer.render(fallback_adoption)); - assert(renderer.fallbackUsed()); - assert(renderer.usedFallback()); + invalid_adoption; + assert(!invalid_adoption.load(invalid_shell)); + assert(invalid_adoption.registrySource() == + trailmate::apps::linux_uconsole_gtk:: + LinuxUConsoleGtkPageRegistrySource::Unavailable); + assert(!renderer.render(invalid_adoption)); + assert(!renderer.ready()); + assert(!renderer.usingPrimaryScreenGraph()); return 0; } diff --git a/apps/linux_uconsole_gtk/tests/linux_uconsole_gtk_runtime_entry_adoption_probe_smoke.cpp b/apps/linux_uconsole_gtk/tests/linux_uconsole_gtk_runtime_entry_adoption_probe_smoke.cpp index 96c992e0..17f371cc 100644 --- a/apps/linux_uconsole_gtk/tests/linux_uconsole_gtk_runtime_entry_adoption_probe_smoke.cpp +++ b/apps/linux_uconsole_gtk/tests/linux_uconsole_gtk_runtime_entry_adoption_probe_smoke.cpp @@ -11,7 +11,6 @@ int main() assert(probe.load(shell)); assert(probe.ready()); - assert(!probe.fallbackUsed()); assert(probe.menuCount() > 0); assert(probe.screenCount() > 0); assert(probe.adoption().presenter().menuDescriptors()[0].route.valid); diff --git a/docs/audits/LEGACY_BURNDOWN_REGISTER.md b/docs/audits/LEGACY_BURNDOWN_REGISTER.md index e48c7a2c..894f9574 100644 --- a/docs/audits/LEGACY_BURNDOWN_REGISTER.md +++ b/docs/audits/LEGACY_BURNDOWN_REGISTER.md @@ -48,8 +48,8 @@ A legacy surface may remain temporarily only if it has: | Legacy surface | New owner | Remaining callers | Removal condition | Target phase | Status | | --- | --- | --- | --- | --- | --- | -| `legacy/app_implementations/linux_sim` ASCII descriptor adapters | `modules/ui_ascii_runtime` | moved out of legacy; legacy LinuxSim CMake links module-owned sources for compatibility smoke coverage | real simulator entry consumes `AsciiRuntimeScreenGraphPresenter` and old hardcoded routing is fallback-only | 9.2 | burned-down | -| `legacy/app_implementations/linux_uconsole` GTK descriptor adapters | `modules/ui_gtk_runtime` | moved out of legacy; legacy uConsole CMake links module-owned sources for compatibility smoke coverage | real GTK page switch path consumes `GtkUConsoleScreenGraphPresenter` and old hardcoded routing is fallback-only | 9.2 | burned-down | +| `legacy/app_implementations/linux_sim` ASCII descriptor adapters | `modules/ui_ascii_runtime` | moved out of legacy; final LinuxSim app consumes module-owned sources | real simulator entry consumes `AsciiRuntimeScreenGraphPresenter` and old hardcoded routing is deleted | 9.2 / LinuxSim-uConsole fallback burn-down | burned-down | +| `legacy/app_implementations/linux_uconsole` GTK descriptor adapters | `modules/ui_gtk_runtime` | moved out of legacy; final uConsole app consumes module-owned sources | real GTK page-registry path consumes `GtkUConsoleScreenGraphPresenter` and old hardcoded routing is deleted | 9.2 / LinuxSim-uConsole fallback burn-down | burned-down | | Runtime entry adoption helpers under `legacy/app_implementations` | `modules/ui_ascii_runtime`, `modules/ui_gtk_runtime`, `modules/ui_lvgl_ux_packs`, final app-shell probes | none; Phase 9.2 keeps entry adoption helpers out of legacy | checker forbids `*RuntimeEntryAdoption` files and tokens under `legacy/app_implementations` | 9.2 | burned-down | | Runtime entry bridges under `legacy/app_implementations` | final app-shell runtime entry/page-registry adoption and `modules/ui_lvgl_ux_packs` | none; Phase 9.3 keeps real entry adoption out of legacy | checker forbids Phase 9 runtime adoption bridge files under `legacy/app_implementations` | 9.3 | burned-down | | Chat delivery legacy bridge pair | `modules/ui_chat_runtime` formal ports and adapters | no main runtime callers; alias build include surface removed | keep runtime headers as the only build-visible API | 9.4 | retired from build include surface | @@ -100,6 +100,7 @@ Phase 9 final readiness report: surface removed; stable owner is `MapOverlaySnapshotSource` and `MapOverlayProjectionAdapter`. -The remaining Phase 10-facing UI fallbacks are not legacy adapter burn-down items. -They are tracked in `docs/audits/PHASE9_FALLBACK_CONTAINMENT_LEDGER.md` as -contained fallback with owner and exit condition. +LinuxSim and GTK hardcoded UI fallbacks have been burned down. The remaining +Phase 10-facing LVGL fallback is not a legacy adapter burn-down item. It is +tracked in `docs/audits/PHASE9_FALLBACK_CONTAINMENT_LEDGER.md` as contained +fallback with owner and exit condition. diff --git a/docs/audits/LEGACY_COMPAT_TEMP_SURFACE_INVENTORY.md b/docs/audits/LEGACY_COMPAT_TEMP_SURFACE_INVENTORY.md index 8024b5f3..8646a6d0 100644 --- a/docs/audits/LEGACY_COMPAT_TEMP_SURFACE_INVENTORY.md +++ b/docs/audits/LEGACY_COMPAT_TEMP_SURFACE_INVENTORY.md @@ -902,14 +902,15 @@ Category: Current location: - `apps/linux_sim_shell/src/linux_sim_runtime_entry.*` - `apps/linux_sim_shell/src/linux_sim_runtime_renderer.*` -- `apps/linux_sim_shell/tests/linux_sim_runtime_entry_fallback_smoke.cpp` +- removed `apps/linux_sim_shell/tests/linux_sim_runtime_entry_fallback_smoke.cpp` Current callers: - LinuxSim runtime entry and renderer tests. - Phase 10/11 checkers. Current responsibility: -- fallback-only route when screen graph adoption fails. +- burned-down fallback route; failed screen graph adoption is + unavailable-on-failure. Is this final architecture? - No. @@ -918,14 +919,17 @@ Final owner: - `apps/linux_sim_shell` and `modules/ui_ascii_runtime`. Disposition: -- Must Delete. +- Deleted. + +Final status: +- Removed in LinuxSim/uConsole fallback burn-down. Delete condition: -- real simulator workflows no longer need hardcoded route fallback and fallback - smoke can be removed or converted to error-path validation. +- Satisfied: real simulator workflows no longer need hardcoded route fallback + and renderer smoke covers the failed-adoption false-return path. Risk: -- medium; removing early hides failed-adoption behavior. +- medium; handled by explicit unavailable-on-failure assertions. ## Surface: GTK hardcoded page registry @@ -935,7 +939,7 @@ Category: Current location: - `apps/linux_uconsole_gtk/src/linux_uconsole_gtk_page_registry_adoption.*` - `apps/linux_uconsole_gtk/src/linux_uconsole_gtk_page_registry_renderer.*` -- `apps/linux_uconsole_gtk/tests/linux_uconsole_gtk_page_registry_fallback_smoke.cpp` +- removed `apps/linux_uconsole_gtk/tests/linux_uconsole_gtk_page_registry_fallback_smoke.cpp` - archived old page registry under `legacy/app_implementations/linux_uconsole/archive/gtk/gtk/gtk_uconsole_pages.*` Current callers: @@ -943,7 +947,8 @@ Current callers: - Phase 10/11 checkers. Current responsibility: -- fallback-only registry when descriptor adoption fails. +- burned-down fallback registry; failed descriptor adoption is + unavailable-on-failure. Is this final architecture? - No. @@ -952,14 +957,18 @@ Final owner: - `apps/linux_uconsole_gtk` and `modules/ui_gtk_runtime`. Disposition: -- Must Delete. +- Deleted. + +Final status: +- Removed in LinuxSim/uConsole fallback burn-down. Delete condition: -- real GTK widget/page creation consumes `GtkDescriptorPage` as the primary page - source and fallback smoke is no longer required. +- Satisfied for the page-registry adoption path: `GtkDescriptorPageRegistry` + is the only active page-registry source and fallback smoke is removed. Risk: -- high; current GTK widget code has not been fully migrated out of archive. +- medium-high; real GTK widget rewrite is still separate debt, but this active + page-registry fallback no longer carries it. ## Surface: LVGL hardcoded menu/page creation diff --git a/docs/audits/PHASE10_FINAL_PRIMARY_PATH_REPORT.md b/docs/audits/PHASE10_FINAL_PRIMARY_PATH_REPORT.md index 6c19dfe7..9906f5cb 100644 --- a/docs/audits/PHASE10_FINAL_PRIMARY_PATH_REPORT.md +++ b/docs/audits/PHASE10_FINAL_PRIMARY_PATH_REPORT.md @@ -4,19 +4,21 @@ | 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 | +| LinuxSim | `LinuxSimRuntimeEntry -> LinuxSimRuntimeEntryAdoptionProbe -> AsciiRuntimeEntryAdoption` | `LinuxSimRuntimeSource::ScreenGraphAdoption` | primary screen graph adoption; Unavailable on failed adoption | +| GTK | `LinuxUConsoleGtkPageRegistryAdoption -> GtkRuntimeEntryAdoption` | `LinuxUConsoleGtkPageRegistrySource::ScreenGraphAdoption` | primary page registry descriptors; Unavailable on failed adoption | | LVGL | `LvglPrimaryScreenGraphRuntime -> LvglRuntimeEntryAdoption` | `LvglScreenGraphRuntimeSource::ScreenGraphAdoption` | primary descriptor runtime | ## Fallback Status | Runtime | Fallback source | Status | | --- | --- | --- | -| LinuxSim | `LinuxSimRuntimeSource::HardcodedFallback` | fallback-only | -| GTK | `LinuxUConsoleGtkPageRegistrySource::HardcodedFallback` | fallback-only | +| LinuxSim | deleted | deleted after LinuxSim/uConsole fallback burn-down | +| GTK | deleted | deleted after LinuxSim/uConsole fallback burn-down | | LVGL | `LvglScreenGraphRuntimeSource::HardcodedFallback` | fallback-only descriptor fallback | -Fallback remains testable through `fallbackUsed()` and source enum checks. +LinuxSim/uConsole failed adoption remains testable through source enum checks +and renderer false-return assertions. LVGL fallback remains testable through +`fallbackUsed()` until the LVGL renderer burn-down lands. ## Not Done @@ -24,7 +26,7 @@ Phase 10 intentionally does not complete these migrations: - real GTK widget rewrite - real LVGL widget/menu rewrite -- fallback deletion +- LVGL fallback deletion - full navigation stack replacement - complete screen/page migration diff --git a/docs/audits/PHASE10_PRIMARY_PATH_MIGRATION_REPORT.md b/docs/audits/PHASE10_PRIMARY_PATH_MIGRATION_REPORT.md index acb36646..a41cd873 100644 --- a/docs/audits/PHASE10_PRIMARY_PATH_MIGRATION_REPORT.md +++ b/docs/audits/PHASE10_PRIMARY_PATH_MIGRATION_REPORT.md @@ -2,13 +2,15 @@ ## Scope -Phase 10 changes the default path. It does not delete fallback, rewrite GTK -widgets, rewrite LVGL menu/page renderers, add UX packs, or let runtime entries -choose UX packs. +Phase 10 changes the default path. Later LinuxSim/uConsole burn-down deletes +their hardcoded fallback branches. It still does not rewrite GTK widgets, +rewrite LVGL menu/page renderers, add UX packs, or let runtime entries choose +UX packs. The migration rule is: -adoption descriptor path is primary; hardcoded path is fallback-only +adoption descriptor path is primary; failed LinuxSim/uConsole adoption is +unavailable-on-failure ## LinuxSim Primary Path @@ -24,18 +26,18 @@ Current primary path: Current status: -- `LinuxSimRuntimeSource::ScreenGraphAdoption` is the default source when - adoption loads. -- `LinuxSimRuntimeSource::HardcodedFallback` is used only when adoption fails. -- `usingPrimaryScreenGraph()` and `fallbackUsed()` expose the active path. +- `LinuxSimRuntimeSource::ScreenGraphAdoption` is the source when adoption + loads. +- `LinuxSimRuntimeSource::Unavailable` is used when adoption fails. +- `usingPrimaryScreenGraph()` and `runtimeSource()` expose the active path. Fallback status: -fallback-only after Phase 10.1 +deleted after LinuxSim/uConsole fallback burn-down Deletion condition: -simulator renderer no longer needs hardcoded routing. +satisfied: simulator renderer no longer needs hardcoded routing. ## GTK Primary Path @@ -51,19 +53,19 @@ Current primary path: Current status: -- `LinuxUConsoleGtkPageRegistrySource::ScreenGraphAdoption` is the default - source when adoption loads. -- `LinuxUConsoleGtkPageRegistrySource::HardcodedFallback` is used only when - adoption fails. -- `usingPrimaryScreenGraph()` and `fallbackUsed()` expose the active path. +- `LinuxUConsoleGtkPageRegistrySource::ScreenGraphAdoption` is the source when + adoption loads. +- `LinuxUConsoleGtkPageRegistrySource::Unavailable` is used when adoption + fails. +- `usingPrimaryScreenGraph()` and `registrySource()` expose the active path. Fallback status: -fallback-only after Phase 10.2 +deleted after LinuxSim/uConsole fallback burn-down Deletion condition: -GTK page registry consumes descriptors as its only page source. +satisfied: GTK descriptor page registry is the only active page-registry source. ## LVGL Primary Descriptor Path @@ -101,15 +103,16 @@ LVGL renderers consume descriptor runtime before creating menu/page objects. - real GTK widget hierarchy rewrite - real LVGL widget/menu rewrite -- fallback deletion +- LVGL fallback deletion - full navigation stack replacement - all screen/page migration ## Checker Status -`tools/architecture/check_phase10_primary_path_ready.py` verifies that the -three primary paths expose source enums, primary/fallback probes, reports, and -forbidden-token guardrails. +`tools/architecture/check_phase10_primary_path_ready.py` verifies that +LinuxSim/uConsole primary paths fail closed with unavailable-on-failure, that +LVGL still records its contained descriptor fallback, and that forbidden-token +guardrails remain in place. ## Phase 11 Recommendation diff --git a/docs/audits/PHASE11_RENDERER_DESCRIPTOR_CONSUMPTION_REPORT.md b/docs/audits/PHASE11_RENDERER_DESCRIPTOR_CONSUMPTION_REPORT.md index b58f13a2..62593405 100644 --- a/docs/audits/PHASE11_RENDERER_DESCRIPTOR_CONSUMPTION_REPORT.md +++ b/docs/audits/PHASE11_RENDERER_DESCRIPTOR_CONSUMPTION_REPORT.md @@ -3,7 +3,8 @@ ## Scope Phase 11 moves primary descriptors into renderer-facing consumption surfaces. -It does not delete fallback, rewrite GTK widgets, rewrite LVGL menu/page +The LinuxSim/uConsole burn-down follow-up deletes their renderer fallback +branches. It still does not rewrite GTK widgets, rewrite LVGL menu/page renderers, implement a full navigation stack, add UX packs, or let renderers choose UX packs. @@ -29,15 +30,15 @@ Status: - When `LinuxSimRuntimeEntry::usingPrimaryScreenGraph()` is true, the renderer renders from `entry.adoption()`. -Fallback path: +LinuxSim fallback burned down: -- `LinuxSimRuntimeRenderer::renderFallback(...)` is reached only when - `entry.fallbackUsed()` is true. -- fallback remains available but is not the default renderer data source. +- `LinuxSimRuntimeRenderer` no longer exposes `renderFallback`, + `fallbackUsed`, or `usedFallback`. +- failed adoption returns false and leaves the renderer not ready. fallback status: -fallback-only +deleted after LinuxSim/uConsole fallback burn-down Not done: @@ -63,15 +64,15 @@ Status: - When `LinuxUConsoleGtkPageRegistryAdoption::usingPrimaryScreenGraph()` is true, the renderer consumes descriptor pages. -Fallback path: +GTK fallback burned down: -- `LinuxUConsoleGtkPageRegistryRenderer::renderFallback(...)` is reached only - when `adoption.fallbackUsed()` is true. -- hardcoded GTK page registry remains fallback-only. +- `LinuxUConsoleGtkPageRegistryRenderer` no longer exposes `renderFallback`, + `fallbackUsed`, or `usedFallback`. +- failed adoption returns false and leaves the page registry not ready. fallback status: -fallback-only +deleted after LinuxSim/uConsole fallback burn-down Not done: @@ -102,7 +103,7 @@ Fallback path: `runtime.fallbackUsed()` is true. - hardcoded LVGL menu/page creation remains fallback-only. -fallback status: +LVGL fallback status: fallback-only @@ -110,7 +111,7 @@ Not done: - real LVGL widget/menu rewrite - device-specific renderer migration -- fallback deletion +- LVGL fallback deletion ## Guardrails @@ -132,7 +133,9 @@ UX selection and `PresentationBundle` construction remain upstream. Phase 11 does not rewrite real GTK widgets. Phase 11 does not create LVGL widgets. -Phase 11 does not delete fallback. +LinuxSim and GTK renderer fallbacks are deleted. LVGL fallback remains +contained until a real LVGL target consumes descriptor menu/page data before +widget creation. ## Phase 12 Recommendation diff --git a/docs/audits/PHASE12_FALLBACK_DELETION_READINESS.md b/docs/audits/PHASE12_FALLBACK_DELETION_READINESS.md index 80b7226f..e689b19e 100644 --- a/docs/audits/PHASE12_FALLBACK_DELETION_READINESS.md +++ b/docs/audits/PHASE12_FALLBACK_DELETION_READINESS.md @@ -2,16 +2,17 @@ ## Purpose -Phase 12 does not delete fallback by default. It records which fallback -surfaces are now fallback-only, which alias surfaces have left the active build -include surface, and what must be true before deleting remaining fallbacks. +Phase 12 does not delete fallback by default. Current LinuxSim/uConsole +follow-up work deletes the two fallback surfaces whose exit conditions are now +satisfied, while the ledger still records what must be true before deleting +remaining fallbacks. ## Readiness Ledger | Surface | Current status | Primary path replacement | Safe to delete now? | Why / why not | Deletion condition | Owner | Checker status | | --- | --- | --- | --- | --- | --- | --- | --- | -| LinuxSim hardcoded runtime routing | fallback-only | `LinuxSimRuntimeRenderer -> AsciiDescriptorRenderer -> AsciiRuntimeEntryAdoption` | No | fallback smoke still proves failed-adoption behavior and the real simulator renderer has not removed every hardcoded route dependency | fallback smoke no longer needed and real simulator entry has no direct hardcoded route dependency | `apps/linux_sim_shell` | `check_phase10_primary_path_ready.py`, `check_phase11_renderer_consumption_ready.py` | -| GTK hardcoded page registry | fallback-only | `LinuxUConsoleGtkPageRegistryRenderer -> GtkDescriptorPageRegistry -> GtkRuntimeEntryAdoption` | No | real GTK widget/page creation still needs a compatibility page registry path | real `GtkWidget` page creation consumes `GtkDescriptorPage` as the primary page source | `apps/linux_uconsole_gtk` | `check_phase10_primary_path_ready.py`, `check_phase11_renderer_consumption_ready.py` | +| LinuxSim hardcoded runtime routing | deleted | `LinuxSimRuntimeRenderer -> AsciiDescriptorRenderer -> AsciiRuntimeEntryAdoption` | Yes | exit condition satisfied; fallback smoke removed and failed adoption is unavailable-on-failure | keep `HardcodedFallback`, `fallbackUsed`, and `renderFallback` absent from `apps/linux_sim_shell` | `apps/linux_sim_shell` | `check_phase10_primary_path_ready.py`, `check_phase11_renderer_consumption_ready.py` | +| GTK hardcoded page registry | deleted | `LinuxUConsoleGtkPageRegistryRenderer -> GtkDescriptorPageRegistry -> GtkRuntimeEntryAdoption` | Yes | exit condition satisfied; fallback smoke removed and failed adoption is unavailable-on-failure | keep `HardcodedFallback`, `fallbackUsed`, and `renderFallback` absent from `apps/linux_uconsole_gtk` | `apps/linux_uconsole_gtk` | `check_phase10_primary_path_ready.py`, `check_phase11_renderer_consumption_ready.py` | | LVGL hardcoded menu/page creation | fallback-only descriptor fallback | `LvglDescriptorRendererProbe -> LvglDescriptorMenuModel -> LvglPrimaryScreenGraphRuntime` | No | real LVGL menu/page renderers have not consumed `LvglDescriptorMenuModel` on a concrete target | one real LVGL target consumes `LvglDescriptorMenuModel` before menu/page object creation | `modules/ui_lvgl_ux_packs` | `check_phase10_primary_path_ready.py`, `check_phase11_renderer_consumption_ready.py` | | Chat legacy alias headers | alias build include surface removed | `ChatDeliveryActionPortAdapter` | Yes | runtime headers are the only build-visible API | keep alias headers absent from active build roots | `modules/ui_chat_runtime` | `check_phase9_legacy_burndown_ready.py` | | KeyVerification legacy alias headers | alias build include surface removed | `KeyVerificationPresentationSource`, `KeyVerificationActionSink`, `KeyVerificationSessionAdapter` | Yes | runtime headers are the only build-visible API | keep alias headers absent from active build roots | `modules/ui_key_verification_runtime` | `check_phase9_legacy_burndown_ready.py` | @@ -32,6 +33,7 @@ Every deletion needs: ## Current Decision -No runtime fallback is deleted in Phase 12. The migrated deprecated alias -headers have left the build include surface, and Phase 12 records the guardrails -that prevent fallback from becoming a primary path again. +LinuxSim and GTK runtime fallbacks are deleted after their primary descriptor +paths became the only active app sources. The migrated deprecated alias headers +have left the build include surface, and Phase 12 records the guardrails that +prevent deleted fallback from becoming a primary path again. diff --git a/docs/audits/PHASE9_FALLBACK_CONTAINMENT_LEDGER.md b/docs/audits/PHASE9_FALLBACK_CONTAINMENT_LEDGER.md index cfc23c58..ab8ab963 100644 --- a/docs/audits/PHASE9_FALLBACK_CONTAINMENT_LEDGER.md +++ b/docs/audits/PHASE9_FALLBACK_CONTAINMENT_LEDGER.md @@ -1,14 +1,14 @@ # Phase 9 Fallback Containment Ledger -Phase 9.3 keeps hardcoded routing alive as contained fallback while real -runtime entries begin consuming the presentation graph. Fallback presence is -acceptable only when the current owner, new path, exit condition, and checker -status are explicit. +Phase 9.3 originally kept hardcoded routing alive as contained fallback while +real runtime entries began consuming the presentation graph. Current active +guardrails now distinguish historical fallback records from fallback paths +that are still allowed in code. | Fallback | Current owner | Why fallback remains | New path | Exit condition | Checker status | | --- | --- | --- | --- | --- | --- | -| LinuxSim hardcoded runtime routing | final `apps/linux_sim_shell` runtime entry plus historical simulator runtime | the simulator renderer still has old routing available for failed adoption | `LinuxSimRuntimeEntry -> LinuxSimRuntimeEntryAdoptionProbe -> AsciiRuntimeEntryAdoption` | simulator renderer no longer needs hardcoded routing | fallback-only after Phase 10.1 | -| GTK hardcoded page registry | final `apps/linux_uconsole_gtk` page registry adoption plus historical GTK page registry | GTK page switching still owns existing widget creation and page list behavior | `LinuxUConsoleGtkPageRegistryAdoption -> GtkRuntimeEntryAdoption -> GtkUConsoleScreenGraphPresenter` | GTK page registry consumes descriptors as primary page source | fallback-only after Phase 10.2 | +| LinuxSim hardcoded runtime routing | final `apps/linux_sim_shell` runtime entry | no active fallback remains; failed adoption is unavailable-on-failure | `LinuxSimRuntimeEntry -> LinuxSimRuntimeEntryAdoptionProbe -> AsciiRuntimeEntryAdoption` | satisfied: simulator renderer no longer needs hardcoded routing | deleted after LinuxSim/uConsole fallback burn-down | +| GTK hardcoded page registry | final `apps/linux_uconsole_gtk` page registry adoption | no active fallback remains; failed adoption is unavailable-on-failure | `LinuxUConsoleGtkPageRegistryAdoption -> GtkRuntimeEntryAdoption -> GtkUConsoleScreenGraphPresenter` | satisfied: descriptor page registry is the only active page-registry source | deleted after LinuxSim/uConsole fallback burn-down | | LVGL hardcoded menu/page creation | `modules/ui_lvgl_ux_packs` compatibility runtime | device-specific LVGL renderers still own menu and screen creation | `LvglPrimaryScreenGraphRuntime -> LvglRuntimeEntryAdoption -> LvglRuntimeScreenGraphPresenter` | LVGL renderers consume descriptor runtime before creating menu/page objects | fallback-only after Phase 10.3 | | Chat LegacyDelivery bridges | alias build include surface removed | runtime modules own all active includes | `ChatDeliveryActionPortAdapter` and `ChatDeliveryEventProjectionAdapter` in `modules/ui_chat_runtime` | keep runtime headers as the only build-visible API | retired from build include surface | | KeyVerification legacy source/sink | alias build include surface removed | runtime modules own all active includes | `KeyVerificationPresentationSource`, `KeyVerificationActionSink`, and `KeyVerificationSessionAdapter` in `modules/ui_key_verification_runtime` | keep runtime headers as the only build-visible API | retired from build include surface | @@ -16,11 +16,12 @@ status are explicit. ## Phase 9.6 Final Readiness Alignment -The runtime fallbacks that carry into Phase 10 are: +The runtime fallback ledger after LinuxSim/uConsole burn-down is: -- LinuxSim hardcoded runtime routing: contained fallback with owner and exit - condition; Phase 10 first cut makes `AsciiRuntimeEntryAdoption as primary source`. -- GTK hardcoded page registry: contained fallback with owner and exit condition. +- LinuxSim hardcoded runtime routing: exit condition satisfied; fallback branch + and fallback smoke target deleted. +- GTK hardcoded page registry: exit condition satisfied; fallback branch and + fallback smoke target deleted. - LVGL hardcoded menu/page creation: contained fallback with owner and exit condition. diff --git a/docs/audits/PHASE9_FINAL_READINESS_REPORT.md b/docs/audits/PHASE9_FINAL_READINESS_REPORT.md index 4daa57ef..ecf30345 100644 --- a/docs/audits/PHASE9_FINAL_READINESS_REPORT.md +++ b/docs/audits/PHASE9_FINAL_READINESS_REPORT.md @@ -15,8 +15,8 @@ The Phase 9 closeout distinction is: | Runtime | Presenter status | Entry adoption status | Real entry status | Remaining fallback | | --- | --- | --- | --- | --- | -| ASCII / LinuxSim | `AsciiRuntimeScreenGraphPresenter` done in `modules/ui_ascii_runtime` | `AsciiRuntimeEntryAdoption` done | `LinuxSimRuntimeEntry` consumes the adoption probe, but descriptors are not yet the primary runtime route source | LinuxSim hardcoded runtime routing | -| GTK / uConsole | `GtkUConsoleScreenGraphPresenter` done in `modules/ui_gtk_runtime` | `GtkRuntimeEntryAdoption` done | `LinuxUConsoleGtkPageRegistryAdoption` exposes descriptor data, but the page registry is not yet descriptor-primary | GTK hardcoded page registry | +| ASCII / LinuxSim | `AsciiRuntimeScreenGraphPresenter` done in `modules/ui_ascii_runtime` | `AsciiRuntimeEntryAdoption` done | `LinuxSimRuntimeEntry` consumes the adoption probe as the only active renderer source | deleted after LinuxSim/uConsole fallback burn-down | +| GTK / uConsole | `GtkUConsoleScreenGraphPresenter` done in `modules/ui_gtk_runtime` | `GtkRuntimeEntryAdoption` done | `LinuxUConsoleGtkPageRegistryAdoption` exposes descriptor data as the only active page-registry source | deleted after LinuxSim/uConsole fallback burn-down | | LVGL | `LvglRuntimeScreenGraphPresenter` done in `modules/ui_lvgl_ux_packs` | `LvglRuntimeEntryAdoption` done | `LvglRuntimeAdoptionProbe` proves compatibility runtime consumption, but real renderers are not yet descriptor-primary | LVGL hardcoded menu/page creation | The runtime adoption path is real enough to test: @@ -27,8 +27,8 @@ It is not yet the primary renderer path. That is the Phase 10 boundary. Readiness summary: -- ASCII presenter: done; entry adoption done; primary route migration remains. -- GTK presenter: done; entry adoption done; primary page registry migration remains. +- ASCII presenter: done; entry adoption done; hardcoded runtime fallback deleted. +- GTK presenter: done; entry adoption done; hardcoded page-registry fallback deleted. - LVGL presenter: done; probe adoption done; primary menu/page renderer migration remains. ## Legacy Burn-down @@ -44,12 +44,12 @@ been removed from the active build include surface. ## Remaining Fallback -These fallbacks remain intentionally contained: +Current fallback status: | Fallback | Owner | New path | Exit condition | | --- | --- | --- | --- | -| LinuxSim hardcoded runtime routing | final LinuxSim app shell and historical simulator runtime | `LinuxSimRuntimeEntry -> LinuxSimRuntimeEntryAdoptionProbe -> AsciiRuntimeEntryAdoption` | `AsciiRuntimeEntryAdoption as primary source` for simulator routing | -| GTK hardcoded page registry | final GTK app shell page-registry adoption and historical GTK page registry | `LinuxUConsoleGtkPageRegistryAdoption -> GtkRuntimeEntryAdoption -> GtkUConsoleScreenGraphPresenter` | GTK page registry consumes descriptors as primary page source | +| LinuxSim hardcoded runtime routing | final LinuxSim app shell | `LinuxSimRuntimeEntry -> LinuxSimRuntimeEntryAdoptionProbe -> AsciiRuntimeEntryAdoption` | satisfied; fallback branch deleted | +| GTK hardcoded page registry | final GTK app shell page-registry adoption | `LinuxUConsoleGtkPageRegistryAdoption -> GtkRuntimeEntryAdoption -> GtkUConsoleScreenGraphPresenter` | satisfied; fallback branch deleted | | LVGL hardcoded menu/page creation | `modules/ui_lvgl_ux_packs` compatibility runtime plus device renderers | `LvglRuntimeAdoptionProbe -> LvglRuntimeEntryAdoption -> LvglRuntimeScreenGraphPresenter` | LVGL compatibility runtime consumes descriptors before creating menu/page objects | The fallback ledger remains the authoritative itemized tracker for fallback @@ -67,7 +67,11 @@ The shared status for ChatDelivery, KeyVerification, and MapOverlay is: main runtime callers removed; alias build include surface removed -The shared status for LinuxSim, GTK, and LVGL hardcoded UI paths is: +The shared status for LinuxSim and GTK hardcoded UI paths is: + +deleted after LinuxSim/uConsole fallback burn-down + +The shared status for the remaining LVGL hardcoded UI path is: contained fallback with owner and exit condition @@ -77,9 +81,10 @@ First target: LinuxSim / ASCII primary path -Proposed Phase 10 first cut: +Completed Phase 10/11 burn-down follow-up: LinuxSim hardcoded runtime routing -> `AsciiRuntimeEntryAdoption as primary source` +and unavailable-on-failure for failed adoption. Why this is the right first cut: @@ -87,12 +92,12 @@ Why this is the right first cut: - It does not require GTK widget or page-registry replacement. - It proves the ScreenGraphPresenter path can become primary before touching device renderers. -- Failure cost is low because the existing simulator fallback can remain - visible and testable. +- Failure cost is low because invalid adoption now fails closed instead of + selecting a second UI source. Expected risk: -Low to medium. The risk is output parity and fallback detection, not device +Low to medium. The risk is output parity and failed-adoption detection, not device memory pressure, platform widget lifecycle, or board-specific layout behavior. ## Phase 9.6 Guardrail diff --git a/docs/audits/PHASE9_LEGACY_BURNDOWN_REPORT.md b/docs/audits/PHASE9_LEGACY_BURNDOWN_REPORT.md index 4f065b09..82295b0c 100644 --- a/docs/audits/PHASE9_LEGACY_BURNDOWN_REPORT.md +++ b/docs/audits/PHASE9_LEGACY_BURNDOWN_REPORT.md @@ -107,6 +107,8 @@ Phase 9.6 keeps the legacy burn-down status aligned with | KeyVerification legacy source/sink/session | main runtime callers removed; alias build include surface removed | `KeyVerificationPresentationSource`, `KeyVerificationActionSink`, and `KeyVerificationSessionAdapter` | keep runtime headers as the only build-visible API | | MapOverlay legacy source | main runtime callers removed; alias build include surface removed | `MapOverlaySnapshotSource` and `MapOverlayProjectionAdapter` | keep runtime headers as the only build-visible API | -The remaining LinuxSim, GTK, and LVGL hardcoded runtime paths are not reported as burned down. -They remain contained fallback until Phase 10 makes one adopted runtime path -primary. +LinuxSim and GTK hardcoded runtime paths are now reported as burned down: their +fallback branches and fallback smoke targets are deleted, and failed adoption +is unavailable-on-failure. The remaining LVGL hardcoded runtime path is not +reported as burned down; it remains contained fallback until a real LVGL +renderer consumes descriptor menu/page data before widget creation. diff --git a/docs/audits/PHASE9_RUNTIME_ADOPTION_REPORT.md b/docs/audits/PHASE9_RUNTIME_ADOPTION_REPORT.md index 18736297..1a71dc94 100644 --- a/docs/audits/PHASE9_RUNTIME_ADOPTION_REPORT.md +++ b/docs/audits/PHASE9_RUNTIME_ADOPTION_REPORT.md @@ -50,15 +50,17 @@ burn-down move, not a legacy maintenance expansion. ## Remaining Fallback -The following paths still need Phase 9.2 real entry adoption: +The LinuxSim and uConsole GTK entry paths now have real adoption consumers. +Their failed-adoption behavior is unavailable-on-failure rather than a second +hardcoded UI source. + +The following path still needs real renderer burn-down: -- real Linux simulator UI selection -- real GTK uConsole page switching - real LVGL menu/page renderer - hardcoded screen creation fallback -Fallback remains contained until each real runtime entry consumes its presenter -and treats hardcoded routing as a compatibility fallback only. +Fallback remains contained only for the LVGL descriptor/runtime bridge until a +real LVGL renderer consumes descriptors before creating menu/page objects. ## Phase 9.2 Entry Adoption @@ -98,8 +100,9 @@ entry-facing consumers that still avoid `legacy/app_implementations`: compatibility runtime landing point. These paths do not create widgets, do not choose UX packs, and do not replace -the existing hardcoded UI behavior. They mark the hardcoded paths as contained -fallback until descriptors become the primary route/page/menu source. +device-specific renderer behavior. LinuxSim and GTK now treat failed adoption +as unavailable-on-failure; LVGL still marks hardcoded menu/page creation as a +contained fallback until descriptors become the primary menu/page source. The fallback inventory is tracked in `docs/audits/PHASE9_FALLBACK_CONTAINMENT_LEDGER.md`. diff --git a/docs/audits/PHASE9_RUNTIME_ENTRY_ADOPTION_REPORT.md b/docs/audits/PHASE9_RUNTIME_ENTRY_ADOPTION_REPORT.md index f533a2ec..b195ba87 100644 --- a/docs/audits/PHASE9_RUNTIME_ENTRY_ADOPTION_REPORT.md +++ b/docs/audits/PHASE9_RUNTIME_ENTRY_ADOPTION_REPORT.md @@ -27,16 +27,18 @@ transitional shell-selected UX pack, builds the compatibility presentation graph, and loads `AsciiRuntimeEntryAdoption` without touching `legacy/app_implementations`. -Fallback path: +Failure behavior: -- `LinuxSimRuntimeEntryAdoptionProbe::fallbackUsed()` records whether adoption - failed and the existing hardcoded simulator UI path should continue. -- The real simulator UI selection and old page/menu routing are unchanged. +- adoption failure is unavailable-on-failure; the entry reports + `LinuxSimRuntimeSource::Unavailable`. +- the hardcoded simulator fallback branch and fallback smoke target are + deleted from the active app. Exit condition: -- the real simulator entry consumes `AsciiRuntimeEntryAdoption` descriptors - directly, and old hardcoded routing is only compatibility fallback. +- satisfied: the real simulator entry consumes `AsciiRuntimeEntryAdoption` + descriptors directly, and old hardcoded routing is no longer an active + fallback source. ## uConsole GTK @@ -52,16 +54,18 @@ The module helper consumes `PresentationBundle` through `GtkRuntimeEntryAdoption` from a compatibility presentation graph and keeps the historical GTK page registry untouched. -Fallback path: +Failure behavior: -- `LinuxUConsoleGtkRuntimeEntryAdoptionProbe::fallbackUsed()` records whether - adoption failed and the existing hardcoded GTK page list should continue. -- GTK widget creation and page switching are unchanged. +- adoption failure is unavailable-on-failure; page-registry adoption reports + `LinuxUConsoleGtkPageRegistrySource::Unavailable`. +- the hardcoded GTK page-registry fallback branch and fallback smoke target are + deleted from the active app. Exit condition: -- GTK page switching consumes `GtkRuntimeEntryAdoption` descriptors directly, - and the hardcoded page registry remains fallback only. +- satisfied: GTK page-registry adoption consumes `GtkRuntimeEntryAdoption` + descriptors directly, and the hardcoded page registry is no longer an active + fallback source. ## LVGL @@ -102,8 +106,8 @@ Phase 9.3 adds entry-facing consumers above the Phase 9.2 probes: compatibility runtime path. These are real/probe runtime entry paths rather than plain app-shell smoke -tests. The hardcoded simulator routing, GTK page registry, and LVGL menu/page -creation remain fallback only and are tracked in +tests. LinuxSim and GTK failed adoption now stop at unavailable-on-failure. +LVGL menu/page creation remains fallback only and is tracked in `docs/audits/PHASE9_FALLBACK_CONTAINMENT_LEDGER.md`. `legacy/app_implementations remains burn-down`: Phase 9.3 does not add diff --git a/docs/audits/POST_REFACTOR_FINAL_CLOSEOUT_REPORT.md b/docs/audits/POST_REFACTOR_FINAL_CLOSEOUT_REPORT.md index 3f65d6ca..8034537b 100644 --- a/docs/audits/POST_REFACTOR_FINAL_CLOSEOUT_REPORT.md +++ b/docs/audits/POST_REFACTOR_FINAL_CLOSEOUT_REPORT.md @@ -7,7 +7,7 @@ This architecture refactor is complete. Next work is not architecture refactor. The remaining work is not a continuation of the refactor. It is feature work, -targeted fallback deletion, targeted deprecated alias deletion, or normal +targeted remaining fallback deletion, targeted deprecated alias deletion, or normal platform/build maintenance. ## Completed @@ -17,9 +17,9 @@ platform/build maintenance. | Phase 5-7 runtime ownership | Runtime ownership boundaries and legacy burn-down register established. | | Phase 8 directory/app shell/UX/menu/screen graph | `apps/` semantics converged, final app shells established, UX menu/screen graph became portable. | | Phase 9 runtime adoption and legacy burn-down | Runtime presenters and entry adoption paths established; ChatDelivery, KeyVerification, and MapOverlay legacy adapters burned down to runtime modules with alias build include surface removed. | -| Phase 10 primary path migration | LinuxSim, GTK page registry, and LVGL compatibility descriptor paths became primary; hardcoded paths became fallback-only. | -| Phase 11 renderer descriptor consumption | LinuxSim renderer, GTK page registry renderer, and LVGL descriptor renderer probe consume primary descriptors. | -| Phase 12 closeout | fallback deletion readiness, deprecated alias cleanup plan, architecture freeze, and final guardrail checker established. | +| Phase 10 primary path migration | LinuxSim, GTK page registry, and LVGL compatibility descriptor paths became primary; LinuxSim/GTK failed adoption is unavailable-on-failure. | +| Phase 11 renderer descriptor consumption | LinuxSim renderer, GTK page registry renderer, and LVGL descriptor renderer probe consume primary descriptors; LinuxSim/GTK fallback branches are deleted. | +| Phase 12 closeout | remaining fallback deletion readiness, deprecated alias cleanup plan, architecture freeze, and final guardrail checker established. | | Batch 4 root legacy elimination | root `legacy/` removed; historical source roots are recorded only in `docs/archive/REMOVED_LEGACY_ROOTS.md`. | ## Remaining Contained Debt @@ -28,7 +28,7 @@ platform/build maintenance. | --- | --- | --- | | GTK real widget rewrite | contained; descriptor page registry exists | targeted renderer migration | | LVGL real widget/menu rewrite | contained; descriptor menu model exists | targeted device renderer migration | -| fallback deletion | readiness ledger exists | targeted fallback deletion | +| LVGL fallback deletion | readiness ledger exists | targeted fallback deletion | | removed legacy source roots | deleted; history recorded in docs/archive | no source archive retained | | compatibility alias headers | retired from build include surface | keep runtime headers as the active API | | map tile/route/tracker remaining legacy surfaces | registered contained debt | targeted debt deletion | diff --git a/tools/architecture/check_phase10_primary_path_ready.py b/tools/architecture/check_phase10_primary_path_ready.py index c18a0c2d..047ff508 100644 --- a/tools/architecture/check_phase10_primary_path_ready.py +++ b/tools/architecture/check_phase10_primary_path_ready.py @@ -54,11 +54,9 @@ def main() -> int: "apps/linux_sim_shell/src/linux_sim_runtime_entry.h", "apps/linux_sim_shell/src/linux_sim_runtime_entry.cpp", "apps/linux_sim_shell/tests/linux_sim_runtime_entry_smoke.cpp", - "apps/linux_sim_shell/tests/linux_sim_runtime_entry_fallback_smoke.cpp", "apps/linux_uconsole_gtk/src/linux_uconsole_gtk_page_registry_adoption.h", "apps/linux_uconsole_gtk/src/linux_uconsole_gtk_page_registry_adoption.cpp", "apps/linux_uconsole_gtk/tests/linux_uconsole_gtk_page_registry_adoption_smoke.cpp", - "apps/linux_uconsole_gtk/tests/linux_uconsole_gtk_page_registry_fallback_smoke.cpp", "modules/ui_lvgl_ux_packs/include/ui_lvgl_ux_packs/runtime/lvgl_primary_screen_graph_runtime.h", "modules/ui_lvgl_ux_packs/src/runtime/lvgl_primary_screen_graph_runtime.cpp", "modules/ui_lvgl_ux_packs/tests/test_lvgl_primary_screen_graph_runtime.cpp", @@ -72,13 +70,15 @@ def main() -> int: "apps/linux_sim_shell/src/linux_sim_runtime_entry.h", [ "LinuxSimRuntimeSource", + "Unavailable", "ScreenGraphAdoption", - "HardcodedFallback", "usingPrimaryScreenGraph", "runtimeSource", - "fallbackUsed", ], [ + "HardcodedFallback", + "fallbackUsed", + "startFallback", "findUxPackById", "UxPackRegistry", "buildMenuForUxPack", @@ -92,12 +92,13 @@ def main() -> int: "apps/linux_sim_shell/src/linux_sim_runtime_entry.cpp", [ "LinuxSimRuntimeSource::ScreenGraphAdoption", - "LinuxSimRuntimeSource::HardcodedFallback", + "LinuxSimRuntimeSource::Unavailable", "usingPrimaryScreenGraph", - "startFallback", - "Phase 10 fallback containment", ], [ + "HardcodedFallback", + "fallbackUsed", + "startFallback", "findUxPackById", "UxPackRegistry", "buildMenuForUxPack", @@ -114,16 +115,6 @@ def main() -> int: "runtimeSource", "LinuxSimRuntimeSource::", "ScreenGraphAdoption", - "fallbackUsed", - ], - failures, - ) - require_tokens( - "apps/linux_sim_shell/tests/linux_sim_runtime_entry_fallback_smoke.cpp", - [ - "HardcodedFallback", - "fallbackUsed", - "missing_phase10_pack", ], failures, ) @@ -132,13 +123,15 @@ def main() -> int: "apps/linux_uconsole_gtk/src/linux_uconsole_gtk_page_registry_adoption.h", [ "LinuxUConsoleGtkPageRegistrySource", + "Unavailable", "ScreenGraphAdoption", - "HardcodedFallback", "usingPrimaryScreenGraph", "registrySource", - "fallbackUsed", ], [ + "HardcodedFallback", + "fallbackUsed", + "loadFallback", "findUxPackById", "UxPackRegistry", "buildMenuForUxPack", @@ -151,12 +144,13 @@ def main() -> int: "apps/linux_uconsole_gtk/src/linux_uconsole_gtk_page_registry_adoption.cpp", [ "LinuxUConsoleGtkPageRegistrySource::ScreenGraphAdoption", - "LinuxUConsoleGtkPageRegistrySource::HardcodedFallback", + "LinuxUConsoleGtkPageRegistrySource::Unavailable", "usingPrimaryScreenGraph", - "loadFallback", - "Phase 10 fallback containment", ], [ + "HardcodedFallback", + "fallbackUsed", + "loadFallback", "findUxPackById", "UxPackRegistry", "buildMenuForUxPack", @@ -171,16 +165,6 @@ def main() -> int: "usingPrimaryScreenGraph", "registrySource", "LinuxUConsoleGtkPageRegistrySource::ScreenGraphAdoption", - "fallbackUsed", - ], - failures, - ) - require_tokens( - "apps/linux_uconsole_gtk/tests/linux_uconsole_gtk_page_registry_fallback_smoke.cpp", - [ - "HardcodedFallback", - "fallbackUsed", - "missing_phase10_pack", ], failures, ) @@ -245,12 +229,26 @@ def main() -> int: require_tokens( "apps/linux_sim_shell/CMakeLists.txt", [ - "linux_sim_runtime_entry_fallback_smoke.cpp", + "linux_sim_runtime_entry_smoke.cpp", + "linux_sim_runtime_renderer_smoke.cpp", "lvgl_primary_screen_graph_runtime", ], failures, ) + forbid_tokens( + "apps/linux_sim_shell/CMakeLists.txt", + ["linux_sim_runtime_entry_fallback_smoke.cpp"], + failures, + ) require_tokens( + "apps/linux_uconsole_gtk/CMakeLists.txt", + [ + "linux_uconsole_gtk_page_registry_adoption_smoke.cpp", + "linux_uconsole_gtk_page_registry_renderer_smoke.cpp", + ], + failures, + ) + forbid_tokens( "apps/linux_uconsole_gtk/CMakeLists.txt", ["linux_uconsole_gtk_page_registry_fallback_smoke.cpp"], failures, @@ -262,6 +260,7 @@ def main() -> int: "LinuxSim Primary Path", "GTK Primary Path", "LVGL Primary Descriptor Path", + "unavailable-on-failure", "fallback-only", "Phase 11 Recommendation", "AsciiRuntimeEntryAdoption", @@ -274,6 +273,7 @@ def main() -> int: "docs/audits/PHASE10_FINAL_PRIMARY_PATH_REPORT.md", [ "Primary Path Status", + "Unavailable on failed adoption", "fallback-only", "fallback-only descriptor fallback", "Not Done", @@ -285,8 +285,7 @@ def main() -> int: require_tokens( "docs/audits/PHASE9_FALLBACK_CONTAINMENT_LEDGER.md", [ - "fallback-only after Phase 10.1", - "fallback-only after Phase 10.2", + "deleted after LinuxSim/uConsole fallback burn-down", "fallback-only after Phase 10.3", "LvglPrimaryScreenGraphRuntime", ], diff --git a/tools/architecture/check_phase11_renderer_consumption_ready.py b/tools/architecture/check_phase11_renderer_consumption_ready.py index f31324bf..52a4dc35 100644 --- a/tools/architecture/check_phase11_renderer_consumption_ready.py +++ b/tools/architecture/check_phase11_renderer_consumption_ready.py @@ -108,12 +108,10 @@ def main() -> int: "LinuxSimRuntimeEntry", "entry.usingPrimaryScreenGraph()", "entry.adoption()", - "entry.fallbackUsed()", "usedPrimaryScreenGraph", - "usedFallback", - "renderFallback", ], - renderer_forbidden + ["ui::menu::MenuModel"], + renderer_forbidden + + ["ui::menu::MenuModel", "fallbackUsed", "usedFallback", "renderFallback"], failures, ) require_tokens( @@ -123,8 +121,7 @@ def main() -> int: "LinuxSimRuntimeEntry", "usingPrimaryScreenGraph", "usedPrimaryScreenGraph", - "fallbackUsed", - "usedFallback", + "Unavailable", ], failures, ) @@ -148,12 +145,10 @@ def main() -> int: "LinuxUConsoleGtkPageRegistryAdoption", "adoption.usingPrimaryScreenGraph()", "adoption.adoption()", - "adoption.fallbackUsed()", "usedPrimaryScreenGraph", - "usedFallback", - "renderFallback", ], - renderer_forbidden + ["ui::menu::MenuModel"], + renderer_forbidden + + ["ui::menu::MenuModel", "fallbackUsed", "usedFallback", "renderFallback"], failures, ) require_tokens( @@ -163,8 +158,7 @@ def main() -> int: "LinuxUConsoleGtkPageRegistryAdoption", "usingPrimaryScreenGraph", "usedPrimaryScreenGraph", - "fallbackUsed", - "usedFallback", + "Unavailable", ], failures, ) @@ -251,12 +245,14 @@ def main() -> int: "Descriptor renderer path", "fallback", "descriptor source", - "fallback status", + "LinuxSim fallback burned down", + "GTK fallback burned down", + "LVGL fallback status", "Not done", "Phase 12 Recommendation", "Phase 11 does not rewrite real GTK widgets", "Phase 11 does not create LVGL widgets", - "Phase 11 does not delete fallback", + "LinuxSim and GTK renderer fallbacks are deleted", "UxPackRegistry", "buildMenuForUxPack", "GtkWidget", diff --git a/tools/architecture/check_phase9_final_ready.py b/tools/architecture/check_phase9_final_ready.py index 127ddd94..f8a2b310 100644 --- a/tools/architecture/check_phase9_final_ready.py +++ b/tools/architecture/check_phase9_final_ready.py @@ -120,6 +120,7 @@ def check_final_report(failures: list[str]) -> None: "LinuxSim hardcoded runtime routing", "GTK hardcoded page registry", "LVGL hardcoded menu/page creation", + "deleted after LinuxSim/uConsole fallback burn-down", "Phase 10 Entry Recommendation", "LinuxSim / ASCII primary path", "AsciiRuntimeEntryAdoption as primary source", @@ -169,7 +170,7 @@ def check_cross_doc_consistency(failures: list[str]) -> None: "LVGL hardcoded menu/page creation", "contained fallback", "Exit condition", - "Phase 10 first cut makes `AsciiRuntimeEntryAdoption as primary source`", + "deleted after LinuxSim/uConsole fallback burn-down", ], failures, ) @@ -177,7 +178,7 @@ def check_cross_doc_consistency(failures: list[str]) -> None: "docs/audits/LEGACY_BURNDOWN_REGISTER.md", [ "Phase 9.6 Final Readiness Alignment", - "The remaining Phase 10-facing UI fallbacks are not legacy adapter burn-down items", + "LinuxSim and GTK hardcoded UI fallbacks have been burned down", ], failures, ) @@ -185,7 +186,7 @@ def check_cross_doc_consistency(failures: list[str]) -> None: "docs/audits/PHASE9_LEGACY_BURNDOWN_REPORT.md", [ "Phase 9.6 Final Readiness Alignment", - "The remaining LinuxSim, GTK, and LVGL hardcoded runtime paths are not reported as burned down", + "LinuxSim and GTK hardcoded runtime paths are now reported as burned down", ], failures, ) diff --git a/tools/architecture/check_phase9_runtime_adoption_ready.py b/tools/architecture/check_phase9_runtime_adoption_ready.py index 68b326d1..545961d5 100644 --- a/tools/architecture/check_phase9_runtime_adoption_ready.py +++ b/tools/architecture/check_phase9_runtime_adoption_ready.py @@ -251,7 +251,6 @@ def main() -> int: "activeUxPackId", "buildMenuForUxPack", "CompatibilityScreenFactory", - "fallback_", ], "apps/linux_uconsole_gtk/src/linux_uconsole_gtk_runtime_entry_adoption_probe.cpp": [ "LinuxUConsoleGtkRuntimeEntryAdoptionProbe", @@ -259,7 +258,6 @@ def main() -> int: "activeUxPackId", "buildMenuForUxPack", "CompatibilityScreenFactory", - "fallback_", ], } for rel, tokens in app_shell_probe_contracts.items(): @@ -284,12 +282,12 @@ def main() -> int: "apps/linux_sim_shell/src/linux_sim_runtime_entry.cpp": [ "LinuxSimRuntimeEntry", "AsciiRuntimeEntryAdoption", - "fallback", + "Unavailable", ], "apps/linux_uconsole_gtk/src/linux_uconsole_gtk_page_registry_adoption.cpp": [ "LinuxUConsoleGtkPageRegistryAdoption", "GtkRuntimeEntryAdoption", - "fallback", + "Unavailable", ], "modules/ui_lvgl_ux_packs/src/runtime/lvgl_runtime_adoption_probe.cpp": [ "LvglRuntimeAdoptionProbe", @@ -359,7 +357,6 @@ def main() -> int: "apps/linux_sim_shell/tests/linux_sim_runtime_entry_adoption_probe_smoke.cpp", [ "LinuxSimRuntimeEntryAdoptionProbe", - "fallbackUsed", "route.valid", ], failures, @@ -368,7 +365,7 @@ def main() -> int: "apps/linux_sim_shell/tests/linux_sim_runtime_entry_smoke.cpp", [ "LinuxSimRuntimeEntry", - "fallbackUsed", + "ScreenGraphAdoption", "route.valid", ], failures, @@ -377,7 +374,6 @@ def main() -> int: "apps/linux_uconsole_gtk/tests/linux_uconsole_gtk_runtime_entry_adoption_probe_smoke.cpp", [ "LinuxUConsoleGtkRuntimeEntryAdoptionProbe", - "fallbackUsed", "route.valid", ], failures, @@ -386,7 +382,7 @@ def main() -> int: "apps/linux_uconsole_gtk/tests/linux_uconsole_gtk_page_registry_adoption_smoke.cpp", [ "LinuxUConsoleGtkPageRegistryAdoption", - "fallbackUsed", + "ScreenGraphAdoption", "route.valid", ], failures, @@ -436,6 +432,7 @@ def main() -> int: "LinuxSimRuntimeEntry", "LinuxUConsoleGtkPageRegistryAdoption", "LvglRuntimeAdoptionProbe", + "unavailable-on-failure", "legacy/app_implementations remains burn-down", ], failures, diff --git a/tools/architecture/check_post_refactor_final_ready.py b/tools/architecture/check_post_refactor_final_ready.py index 3a289acc..019a2580 100644 --- a/tools/architecture/check_post_refactor_final_ready.py +++ b/tools/architecture/check_post_refactor_final_ready.py @@ -76,6 +76,7 @@ def check_apps_directory(failures: list[str]) -> None: allowed = { "README.md", "esp32_lvgl", + "linux_cardputer_zero", "nrf52_node", "linux_uconsole_gtk", "linux_sim_shell", @@ -188,6 +189,7 @@ def check_phase12_docs(failures: list[str]) -> None: "`legacy/app_implementations` roots", "Safe to delete now?", "Deletion condition", + "unavailable-on-failure", ], failures, ) @@ -231,17 +233,17 @@ def check_phase12_docs(failures: list[str]) -> None: "Batch 4 root legacy elimination", "Next work is not architecture refactor", "feature work", - "targeted fallback deletion", + "targeted remaining fallback deletion", ], failures, ) require_tokens( "docs/audits/PHASE11_RENDERER_DESCRIPTOR_CONSUMPTION_REPORT.md", [ - "fallback-only", + "deleted after LinuxSim/uConsole fallback burn-down", "Phase 11 does not rewrite real GTK widgets", "Phase 11 does not create LVGL widgets", - "Phase 11 does not delete fallback", + "LinuxSim and GTK renderer fallbacks are deleted", ], failures, )