4runr-os 2.9.15 → 2.9.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -883,12 +883,22 @@ impl App {
883
883
  // Use new navigation system - render based on current screen
884
884
  let current = self.state.navigation.current_screen();
885
885
 
886
+ // DEBUG: Log render decisions
887
+ #[cfg(debug_assertions)]
888
+ {
889
+ eprintln!("[RENDER] Current screen: {:?}", current);
890
+ eprintln!("[RENDER] Base screen: {:?}", self.state.navigation.base_screen);
891
+ eprintln!("[RENDER] Overlay stack: {:?}", self.state.navigation.overlay_stack);
892
+ }
893
+
886
894
  match current {
887
895
  Screen::Boot => {
888
896
  use crate::ui::boot;
889
897
  boot::render_boot(f, f.size(), &self.state);
890
898
  }
891
899
  Screen::Main => {
900
+ #[cfg(debug_assertions)]
901
+ eprintln!("[RENDER] Rendering Main screen (layout)");
892
902
  use crate::ui::layout;
893
903
  layout::render(f, &self.state);
894
904
  }
@@ -909,12 +919,16 @@ impl App {
909
919
  agent_list::render(f, &self.state);
910
920
  }
911
921
  Screen::ConnectionPortal => {
922
+ #[cfg(debug_assertions)]
923
+ eprintln!("[RENDER] Rendering Connection Portal (standalone)");
912
924
  // Render Connection Portal as standalone screen (not overlay)
913
925
  // This eliminates double-rendering and improves performance
914
926
  use crate::ui::connection_portal;
915
927
  connection_portal::render(f, &self.state);
916
928
  }
917
929
  Screen::SetupPortal => {
930
+ #[cfg(debug_assertions)]
931
+ eprintln!("[RENDER] Rendering Setup Portal (standalone)");
918
932
  // Render Setup Portal as standalone screen (not overlay)
919
933
  // This eliminates double-rendering and improves performance
920
934
  use crate::ui::setup_portal;
@@ -86,6 +86,21 @@ fn main() -> Result<()> {
86
86
  let current_screen = app.state.navigation.current_screen();
87
87
  let is_portal_active = matches!(current_screen, Screen::ConnectionPortal | Screen::SetupPortal);
88
88
 
89
+ // DEBUG: Log portal detection
90
+ #[cfg(debug_assertions)]
91
+ {
92
+ static mut LOG_COUNT: u64 = 0;
93
+ unsafe {
94
+ LOG_COUNT += 1;
95
+ if LOG_COUNT % 100 == 0 {
96
+ eprintln!("[MAIN] Current screen: {:?}, Is portal active: {}", current_screen, is_portal_active);
97
+ eprintln!("[MAIN] Base screen: {:?}, Overlay stack: {:?}",
98
+ app.state.navigation.base_screen,
99
+ app.state.navigation.overlay_stack);
100
+ }
101
+ }
102
+ }
103
+
89
104
  // Only update base screen state when NOT in a portal
90
105
  // Portals are standalone screens and don't need base screen updates
91
106
  if !is_portal_active {
@@ -143,8 +143,8 @@ fn render_header(f: &mut Frame, area: Rect, state: &AppState) {
143
143
  };
144
144
 
145
145
  // Line 1: Brand + version + mode + uptime - Bug 3 fix: Use "4Runr." with dot (matches brand logo)
146
- // Use npm package version (2.9.15) - matches package.json
147
- const PACKAGE_VERSION: &str = "2.9.15";
146
+ // Use npm package version (2.9.16) - matches package.json
147
+ const PACKAGE_VERSION: &str = "2.9.16";
148
148
  let brand_line = Line::from(vec![
149
149
  Span::styled("4Runr.", Style::default().fg(BRAND_PURPLE).add_modifier(Modifier::BOLD)),
150
150
  Span::styled(" AI AGENT OS", Style::default().fg(BRAND_VIOLET)),
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "4runr-os",
3
- "version": "2.9.15",
3
+ "version": "2.9.16",
4
4
  "type": "module",
5
- "description": "4Runr AI Agent OS - Secure terminal interface for AI agents. v2.9.15: Portal complete isolation (pauses base screen state updates). v2.9.14: Portal standalone rendering. v2.9.13: Instant typing (0ms latency), 120 FPS animations. ⚠️ Pre-MVP / Development Phase",
5
+ "description": "4Runr AI Agent OS - Secure terminal interface for AI agents. v2.9.16: Portal complete isolation (pauses base screen state updates). v2.9.14: Portal standalone rendering. v2.9.13: Instant typing (0ms latency), 120 FPS animations. ⚠️ Pre-MVP / Development Phase",
6
6
  "main": "dist/index.js",
7
7
  "bin": {
8
8
  "4runr": "dist/index.js",