4runr-os 2.9.66 → 2.9.68
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
|
@@ -641,6 +641,23 @@ impl App {
|
|
|
641
641
|
|
|
642
642
|
// === MAIN INPUT HANDLING ===
|
|
643
643
|
match key.code {
|
|
644
|
+
// F2 - Open Setup Portal (Gateway options) from main screen
|
|
645
|
+
KeyCode::F(2) => {
|
|
646
|
+
self.state.navigation.navigate_to_base(Screen::SetupPortal);
|
|
647
|
+
self.state.setup_portal.reset();
|
|
648
|
+
if let Some(ws) = ws_client {
|
|
649
|
+
self.state.setup_portal.detecting = true;
|
|
650
|
+
if let Ok(id) = ws.send_command("setup.detect", None) {
|
|
651
|
+
self.state.pending_setup_detect_id = Some(id);
|
|
652
|
+
self.add_log("[SETUP] Detecting Gateway options...".to_string());
|
|
653
|
+
} else {
|
|
654
|
+
self.state.setup_portal.detecting = false;
|
|
655
|
+
self.state.setup_portal.error = Some("Failed to start detection".to_string());
|
|
656
|
+
}
|
|
657
|
+
}
|
|
658
|
+
self.state.logs.push_back("[NAV] Opening Setup Portal (F2)...".into());
|
|
659
|
+
self.request_render("open_setup_portal");
|
|
660
|
+
}
|
|
644
661
|
// Typing - ALL characters go to command input (immediate render for responsiveness)
|
|
645
662
|
KeyCode::Char(c) => {
|
|
646
663
|
// CRITICAL: Always set focused when typing to show cursor
|
package/mk3-tui/src/main.rs
CHANGED
|
@@ -610,9 +610,11 @@ fn main() -> Result<()> {
|
|
|
610
610
|
}
|
|
611
611
|
|
|
612
612
|
// BACK TO PHASE 1.1: Clear every frame on Setup Portal (no corruption, but flickers)
|
|
613
|
-
//
|
|
614
|
-
|
|
613
|
+
// Flicker debug: log CLEAR then DRAW so we can confirm flicker = clear then redraw.
|
|
614
|
+
let on_setup_portal = matches!(current_screen, crate::screens::Screen::SetupPortal);
|
|
615
|
+
if on_setup_portal {
|
|
615
616
|
terminal.autoresize()?;
|
|
617
|
+
debug_log::log_flicker_debug("CLEAR_BEFORE", &format!("switching={}", switching_to_setup_portal));
|
|
616
618
|
terminal.clear()?;
|
|
617
619
|
if switching_to_setup_portal {
|
|
618
620
|
#[cfg(debug_assertions)]
|
|
@@ -628,6 +630,9 @@ fn main() -> Result<()> {
|
|
|
628
630
|
terminal.draw(|f| app.render(f))?;
|
|
629
631
|
let render_duration = render_start.elapsed().as_millis() as u64;
|
|
630
632
|
app.record_render(render_duration);
|
|
633
|
+
if on_setup_portal {
|
|
634
|
+
debug_log::log_flicker_debug("DRAW_DONE", &format!("ms={}", render_duration));
|
|
635
|
+
}
|
|
631
636
|
|
|
632
637
|
// Update previous screen tracking
|
|
633
638
|
previous_screen = Some(current_screen);
|
package/mk3-tui/src/ui/layout.rs
CHANGED
|
@@ -144,7 +144,7 @@ fn render_header(f: &mut Frame, area: Rect, state: &AppState) {
|
|
|
144
144
|
|
|
145
145
|
// Line 1: Brand + version + mode + uptime - Bug 3 fix: Use "4Runr." with dot (matches brand logo)
|
|
146
146
|
// Use npm package version (2.9.24) - matches package.json
|
|
147
|
-
const PACKAGE_VERSION: &str = "2.9.
|
|
147
|
+
const PACKAGE_VERSION: &str = "2.9.68";
|
|
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.68",
|
|
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.68: F2 opens Setup Portal from main. v2.9.67: Flicker debug. ⚠️ Pre-MVP / Development Phase",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"bin": {
|
|
8
8
|
"4runr": "dist/index.js",
|