4runr-os 2.9.13 → 2.9.15
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.
|
Binary file
|
package/mk3-tui/src/app.rs
CHANGED
|
@@ -909,20 +909,14 @@ impl App {
|
|
|
909
909
|
agent_list::render(f, &self.state);
|
|
910
910
|
}
|
|
911
911
|
Screen::ConnectionPortal => {
|
|
912
|
-
//
|
|
913
|
-
|
|
914
|
-
layout::render(f, &self.state);
|
|
915
|
-
|
|
916
|
-
// Then render the Connection Portal overlay on top
|
|
912
|
+
// Render Connection Portal as standalone screen (not overlay)
|
|
913
|
+
// This eliminates double-rendering and improves performance
|
|
917
914
|
use crate::ui::connection_portal;
|
|
918
915
|
connection_portal::render(f, &self.state);
|
|
919
916
|
}
|
|
920
917
|
Screen::SetupPortal => {
|
|
921
|
-
//
|
|
922
|
-
|
|
923
|
-
layout::render(f, &self.state);
|
|
924
|
-
|
|
925
|
-
// Then render the Setup Portal overlay on top
|
|
918
|
+
// Render Setup Portal as standalone screen (not overlay)
|
|
919
|
+
// This eliminates double-rendering and improves performance
|
|
926
920
|
use crate::ui::setup_portal;
|
|
927
921
|
setup_portal::render(f, &self.state);
|
|
928
922
|
}
|
package/mk3-tui/src/main.rs
CHANGED
|
@@ -80,14 +80,24 @@ fn main() -> Result<()> {
|
|
|
80
80
|
// │ STEP 1: UPDATE ANIMATIONS (runs EVERY loop iteration) │
|
|
81
81
|
// └─────────────────────────────────────────────────────────┘
|
|
82
82
|
|
|
83
|
-
//
|
|
84
|
-
|
|
83
|
+
// Check if portal is active - if so, skip base screen state updates
|
|
84
|
+
// This prevents base screen from affecting portal performance
|
|
85
|
+
use crate::screens::Screen;
|
|
86
|
+
let current_screen = app.state.navigation.current_screen();
|
|
87
|
+
let is_portal_active = matches!(current_screen, Screen::ConnectionPortal | Screen::SetupPortal);
|
|
85
88
|
|
|
86
|
-
//
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
app.
|
|
89
|
+
// Only update base screen state when NOT in a portal
|
|
90
|
+
// Portals are standalone screens and don't need base screen updates
|
|
91
|
+
if !is_portal_active {
|
|
92
|
+
// Uptime - always update from real clock (OUTSIDE poll block)
|
|
93
|
+
app.state.uptime_secs = start_time.elapsed().as_secs();
|
|
94
|
+
|
|
95
|
+
// Spinner - update on timer (every 150ms) - OUTSIDE poll block
|
|
96
|
+
if last_tick.elapsed() >= Duration::from_millis(150) {
|
|
97
|
+
app.tick(); // Advances spinner_frame
|
|
98
|
+
last_tick = Instant::now();
|
|
99
|
+
app.request_render("animation_tick"); // Request render for animation update
|
|
100
|
+
}
|
|
91
101
|
}
|
|
92
102
|
|
|
93
103
|
// ┌─────────────────────────────────────────────────────────┐
|
package/mk3-tui/src/ui/layout.rs
CHANGED
|
@@ -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.
|
|
147
|
-
const PACKAGE_VERSION: &str = "2.9.
|
|
146
|
+
// Use npm package version (2.9.15) - matches package.json
|
|
147
|
+
const PACKAGE_VERSION: &str = "2.9.15";
|
|
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.
|
|
3
|
+
"version": "2.9.15",
|
|
4
4
|
"type": "module",
|
|
5
|
-
"description": "4Runr AI Agent OS - Secure terminal interface for AI agents. v2.9.
|
|
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",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"bin": {
|
|
8
8
|
"4runr": "dist/index.js",
|