4runr-os 2.9.41 → 2.9.43

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.
@@ -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.41";
147
+ const PACKAGE_VERSION: &str = "2.9.43";
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)),
@@ -408,58 +408,22 @@ fn render_option_details(f: &mut Frame, area: Rect, state: &AppState) {
408
408
  .border_style(Style::default().fg(TEXT_DIM))
409
409
  .style(Style::default().bg(BG_PANEL));
410
410
 
411
- // CRITICAL: Render block first to clear and establish boundaries
412
- let inner = block.inner(area);
411
+ // CRITICAL: Use the standard Ratatui pattern - Paragraph with .block()
412
+ // This is more reliable than rendering Block and Paragraph separately
413
+ let paragraph = Paragraph::new(content)
414
+ .block(block)
415
+ .wrap(Wrap { trim: true })
416
+ .style(Style::default().bg(BG_PANEL)); // Ensure background fills the block
413
417
 
414
- // CRITICAL: Validate inner area to prevent index out of bounds panic
415
- // Ratatui panics if area coordinates exceed terminal buffer
418
+ // Validate area before rendering
416
419
  let terminal_size = f.size();
417
- let safe_inner = Rect {
418
- x: inner.x.min(terminal_size.width.saturating_sub(1)),
419
- y: inner.y.min(terminal_size.height.saturating_sub(1)),
420
- width: inner.width.min(terminal_size.width.saturating_sub(inner.x)),
421
- height: inner.height.min(terminal_size.height.saturating_sub(inner.y)),
422
- };
423
-
424
- // DEBUG: Log block inner area
425
- unsafe {
426
- if LOG_COUNT % 10 == 1 {
427
- eprintln!("[SETUP-PORTAL] Block outer: x={}, y={}, w={}, h={}",
428
- area.x, area.y, area.width, area.height);
429
- eprintln!("[SETUP-PORTAL] Block inner (original): x={}, y={}, w={}, h={}",
430
- inner.x, inner.y, inner.width, inner.height);
431
- eprintln!("[SETUP-PORTAL] Terminal size: {}x{}", terminal_size.width, terminal_size.height);
432
- eprintln!("[SETUP-PORTAL] Block inner (safe): x={}, y={}, w={}, h={}",
433
- safe_inner.x, safe_inner.y, safe_inner.width, safe_inner.height);
434
-
435
- // Warn if we had to clamp
436
- if inner.x != safe_inner.x || inner.y != safe_inner.y ||
437
- inner.width != safe_inner.width || inner.height != safe_inner.height {
438
- eprintln!("[SETUP-PORTAL] ⚠️ WARNING: Inner area was clamped to fit terminal bounds!");
439
- }
440
- }
441
- }
442
-
443
- // Validate area before rendering block
444
420
  if area.width == 0 || area.height == 0 ||
445
421
  area.x >= terminal_size.width || area.y >= terminal_size.height {
446
- eprintln!("[SETUP-PORTAL] ⚠️ ERROR: Invalid block area, skipping render");
447
- return;
448
- }
449
-
450
- f.render_widget(block, area);
451
-
452
- // Validate safe_inner before rendering paragraph
453
- if safe_inner.width == 0 || safe_inner.height == 0 {
454
- eprintln!("[SETUP-PORTAL] ⚠️ ERROR: Invalid inner area (zero size), skipping paragraph render");
422
+ eprintln!("[SETUP-PORTAL] ⚠️ ERROR: Invalid area, skipping render");
455
423
  return;
456
424
  }
457
425
 
458
- // Then render paragraph content only within the safe inner area
459
- let paragraph = Paragraph::new(content)
460
- .wrap(Wrap { trim: true });
461
-
462
- f.render_widget(paragraph, safe_inner);
426
+ f.render_widget(paragraph, area);
463
427
  }
464
428
 
465
429
  fn render_error_box(f: &mut Frame, area: Rect, state: &AppState) {
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "4runr-os",
3
- "version": "2.9.41",
3
+ "version": "2.9.43",
4
4
  "type": "module",
5
- "description": "4Runr AI Agent OS - Secure terminal interface for AI agents. v2.9.41: Fixed Setup Portal index out of bounds panic - added bounds validation and clamping for safe area rendering. Added comprehensive debug logging for Setup Portal rendering diagnostics. v2.9.40: Fixed Setup Portal rendering. ⚠️ Pre-MVP / Development Phase",
5
+ "description": "4Runr AI Agent OS - Secure terminal interface for AI agents. v2.9.43: Release prep. v2.9.42: Reverted Setup Portal to standard Ratatui pattern - simplified rendering to fix content overlap and mixing. ⚠️ Pre-MVP / Development Phase",
6
6
  "main": "dist/index.js",
7
7
  "bin": {
8
8
  "4runr": "dist/index.js",