4runr-os 2.9.63 → 2.9.65

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.
@@ -609,19 +609,25 @@ fn main() -> Result<()> {
609
609
  terminal.clear()?;
610
610
  }
611
611
 
612
- // When on Setup Portal: autoresize (always) + clear (only on first frame to avoid flicker)
613
- // Order matters: resize buffer to match console size BEFORE clearing so we clear the entire visible area.
612
+ // When on Setup Portal: explicit size sync + clear (only on first frame to avoid flicker)
613
+ // Phase 3: Query real terminal size and force resize BEFORE clearing, so buffer matches console.
614
614
  if matches!(current_screen, crate::screens::Screen::SetupPortal) {
615
- terminal.autoresize()?;
616
615
  // Only clear when we JUST entered Setup Portal (first frame), not on every navigation
617
616
  if switching_to_setup_portal {
617
+ // Phase 3: Explicitly query terminal size and resize buffer to match before clearing
618
+ // This fixes windowed-mode corruption on Windows where autoresize() may not catch the right size.
619
+ let (cols, rows) = crossterm::terminal::size()?;
620
+ terminal.resize(Rect::new(0, 0, cols, rows))?;
618
621
  terminal.clear()?;
619
622
  #[cfg(debug_assertions)]
620
- eprintln!("[MAIN] ENTERED Setup Portal (autoresize + clear)");
623
+ eprintln!("[MAIN] ENTERED Setup Portal (explicit resize {}x{} + clear)", cols, rows);
621
624
  debug_log::log_screen(
622
625
  &format!("{:?}", previous_screen.as_ref().unwrap_or(&current_screen)),
623
626
  &format!("{:?}", current_screen),
624
627
  );
628
+ } else {
629
+ // While navigating on Setup Portal, still autoresize (no clear to avoid flicker)
630
+ terminal.autoresize()?;
625
631
  }
626
632
  }
627
633
 
@@ -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.63";
147
+ const PACKAGE_VERSION: &str = "2.9.65";
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.63",
3
+ "version": "2.9.65",
4
4
  "type": "module",
5
- "description": "4Runr AI Agent OS - Secure terminal interface for AI agents. v2.9.63: Setup Portal windowed fix, no flicker (clear only on enter). v2.9.62: Autoresize+clear. ⚠️ Pre-MVP / Development Phase",
5
+ "description": "4Runr AI Agent OS - Secure terminal interface for AI agents. v2.9.65: Setup Portal windowed - explicit size+resize before clear. v2.9.64: Double clear. ⚠️ Pre-MVP / Development Phase",
6
6
  "main": "dist/index.js",
7
7
  "bin": {
8
8
  "4runr": "dist/index.js",